Come si procede all'analisi di una pagina HTML con testo, elenchi, tabelle, intestazioni, ecc., In frasi libere?Analisi di HTML in frasi - come gestire tabelle/elenchi/intestazioni/ecc.?
Prendere ad esempio this wikipedia page. C'è/sono:
- testo libero: http://en.wikipedia.org/wiki/Neurotransmitter#Discovery
- liste: http://en.wikipedia.org/wiki/Neurotransmitter#Actions
- tavoli: http://en.wikipedia.org/wiki/Neurotransmitter#Common_neurotransmitters
Dopo fare in giro con il pitone NLTK, voglio testare tutti questi diversi metodi di annotazione del corpus (da http://nltk.googlecode.com/svn/trunk/doc/book/ch11.html#deciding-which-layers-of-annotation-to-include):
- Tokenizzazione parola: la forma ortografica del testo non identifica in modo univoco i token. Una versione tokenizzata e normalizzata, oltre alla versione ortografica convenzionale, può essere una risorsa molto conveniente.
- Frase Segmentazione: Come abbiamo visto nel capitolo 3, frase segmentazione può essere più difficile di quanto sembri. Alcuni corpora utilizzano quindi annotazioni esplicite per contrassegnare la segmentazione della frase.
- Paragrafo Segmentazione: I paragrafi e altri elementi strutturali (titoli, capitoli, ecc) possono essere esplicitamente annotati.
- Parte del discorso: La categoria sintattica di ogni parola in un documento.
- struttura sintattica: Una struttura ad albero che mostra la struttura costituente di una frase.
- Semantica Shallow: nome di entità e coreference annotazioni, etichette ruolo semantico.
- dialogo e del discorso: dialogo tag atto, struttura retorica
Una volta che si interrompe un documento in frasi sembra abbastanza semplice. Ma come si fa a scomporre qualcosa come l'HTML da quella pagina di Wikipedia? Ho molta familiarità con l'utilizzo di parser HTML/XML e l'attraversamento dell'albero, e ho provato a rimuovere i tag HTML per ottenere il testo normale, ma poiché la punteggiatura manca dopo la rimozione dell'HTML, NLTK non analizza le cose come le celle della tabella, o anche elenchi, correttamente.
Esiste qualche best practice o strategia per analizzare tali elementi con la PNL? O devi semplicemente scrivere manualmente un parser specifico per quella singola pagina?
Solo cercando alcuni puntatori nella giusta direzione, voglio davvero provare questo NLTK!
Hai provato a usare Punkt (è implementato in NLTK) sul testo messo a nudo per vedere se questo ti porta ovunque? – dmh
La mia osservazione informale è che in genere i parser sono cattivi nel gestire e rappresentare il testo visualizzato (al contrario della prosa in esecuzione). Se trovi o escogiti una buona soluzione, ti preghiamo di seguire qui! – tripleee