7
votes

Analysing HTML dans des phrases - Comment gérer les tables / listes / rubriques / etc.

Comment allez-vous à l'analyse d'une page HTML avec du texte gratuit, des listes, des tables, des en-têtes, etc., en phrases?

prendre Cette page Wikipedia par exemple. Il y a / sont:

  • Texte libre: http://fr.wikipedia.org/wiki/neurotransmitter#discoveryy
  • listes: http://fr.wikipedia.org/wiki/neuroTransMitter#Afr.com >
  • Tables: NLTK , je veux tester toutes ces méthodes d'annotation corpus différentes (de < un href = "http://nltk.googlecode.com/svn/trunk/doc/book/ch11.html#deciding-qui-layers-f-notation-a-include" rel = "nofollow"> http: // nltk.googlecode.com/svn/trunk/doc/book/ch11.html#deciding-Lhich-layers-of-notation-a-include ):
    • Tobenisation de mot : La forme orthographique du texte n'identifie pas sans ambiguïté ses jetons. Une version jointe et normalisée, en plus de la version orthographique conventionnelle, peut être une ressource très pratique.
    • Segmentation de phrase : Comme nous l'avons vu au chapitre 3, la segmentation de la phrase peut être plus difficile qu'elle ne le semble. Certaines corprées utilisent donc des annotations explicites pour marquer la segmentation des phrases.
    • Segmentation des paragraphes : paragraphes et autres éléments structurels (en-têtes, chapitres, etc.) peuvent être explicitement annotés.
    • partie de la parole : la catégorie syntaxique de chaque mot dans un document.
    • Structure syntaxique : une structure arborescente montrant la structure constituante d'une phrase.
    • Semantiques peu profondes : Entité nommée et annotations de base, étiquettes de rôle sémantique.
    • dialogue et discours : Tags de dialogue, structure rhétorique

      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.

      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?

      Juste à la recherche de quelques pointeurs dans la bonne direction, veulent vraiment essayer cette NLTK!


2 commentaires

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!


4 Réponses :


1
votes

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 pour l'importer dans l'univers NLTK.


0 commentaires

1
votes

Je devais écrire des règles spécifiques aux documents XML que j'analysais.

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.

est un segment de phrase;
  • sont des paragraphes; sont des jetons

    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.


  • 0 commentaires

    0
    votes

    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: xxx


    0 commentaires

    0
    votes

    comme alexis répondit, Python-Goose peut être une bonne option.

    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) , vous pouvez obtenir les phrases d'une page HTML stockée dans le tableau parsed_sencences . .


    0 commentaires