Comment allez-vous à l'analyse d'une page HTML avec du texte gratuit, des listes, des tables, des en-têtes, etc., en phrases? p>
prendre Cette page Wikipedia par exemple. Il y a / sont: p>
Une fois que vous cassez un document en phrases, il semble assez simple. Mais comment allez-vous briser quelque chose comme le HTML de cette page Wikipedia? Je suis très familière avec des analyseurs HTML / XML et je traverse l'arborescence, et j'ai essayé simplement de supprimer les balises HTML pour obtenir le texte brut, mais que la ponctuation est manquante après le retrait de HTML, NLTK n'analyse pas des objets comme les cellules de table, ou même des listes, correctement. P>
Y a-t-il des meilleures pratiques ou une stratégie pour analyser les choses avec PNL? Ou devez-vous simplement écrire manuellement un analyseur spécifique à cette page individuelle? P>
Juste à la recherche de quelques pointeurs dans la bonne direction, veulent vraiment essayer cette NLTK! P>
4 Réponses :
On dirait que vous supprimez tout HTML et générant un document plat, qui confond l'analyseur puisque les pièces détachées sont collées ensemble. Depuis que vous êtes expérimenté avec XML, je suggère de mapper vos entrées sur une simple structure XML qui maintient les pièces séparées. Vous pouvez le rendre aussi simple que vous le souhaitez, mais peut-être que vous voudrez peut-être conserver des informations. Par exemple, il peut être utile de signaler des titres, des en-têtes de section, etc. En tant que tel. Lorsque vous avez un arbre XML fonctionnel qui conserve les morceaux séparés, utilisez xmlcorpusreader code> pour l'importer dans l'univers NLTK. P>
Je devais écrire des règles spécifiques aux documents XML que j'analysais. P>
Ce que j'ai fait était d'avoir une cartographie des balises HTML aux segments. Cette cartographie était basée sur l'étude de plusieurs documents / pages et déterminer ce que représentent les balises HTML. Ex.
Si vous souhaitez travailler avec XML, vous pouvez représenter les nouveaux mappages sous forme de balises. Ex.
Si vous voulez travailler sur du texte brut, vous pouvez représenter les mappages comme un ensemble de caractères (ex. [Phraseend] [Phraseend]), comme l'étiquetage de POS ou EOS. P>
Vous pouvez utiliser des outils tels que Python-Goose qui vise à extraire des articles à partir de pages HTML.
Sinon, j'ai fait le petit programme suivant qui donne un type de bons résultats: p>
comme alexis répondit, Python-Goose peut être une bonne option. p>
Il y a aussi TOKENISANTE DE SPESTION HTML , une (nouvelle) bibliothèque qui vise à résoudre ce problème exacte . Sa syntaxe est très simple. Dans une ligne, parsed_sencences = HTMLSenseCeTokenizer (). Feed (exemple_html_one) code>, vous pouvez obtenir les phrases d'une page HTML stockée dans le tableau
parsed_sencences code>. P>.
Avez-vous essayé d'utiliser Punkt (c'est mis en œuvre dans NLTK) sur le texte dépouillé pour voir si cela vous amène n'importe où?
Mon observation informelle est que les analyseurs sont généralement mauvaises pour la manipulation et la représentation du texte d'affichage (par opposition à la prose en cours d'exécution). Si vous trouvez ou conçoit une bonne solution, veuillez faire un suivi ici!