Python nltk.clean_html pas mis en œuvre
J'ai essayé d'utiliser
myNews=urlopen(url).read()
myNews=nltk.clean_html(myNews)
J'obtiens l'erreur suivante:
Fichier "/usr/local/lib/python2.7/dist-packages/nltk-3.0.0-py2.7.egg/nltk/util.py" de ligne, 346, dans clean_html
soulever NotImplementedError ("Pour supprimer les balises HTML, utiliser BeautifulSoup de get_text() la fonction")
NotImplementedError: Pour supprimer des balises HTML, utiliser BeautifulSoup de get_text() la fonction
Quand je regarde dans le fichier util.py je peux voir qu'il n'est pas mis en œuvre:
def clean_html(html):
raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
Ne devrait-elle pas être mise en œuvre?
Vous devez vous connecter pour publier un commentaire.
clean_html()
etclean_url()
est un mignon fonction dans NLTK qui a été abandonné depuis BeautifulSoup fait un meilleur travail et d'analyse de langage de balisage, voir https://github.com/nltk/nltk/commit/39a303e5ddc4cdb1a0b00a3be426239b1c24c8bbVoici BeautifulSoup de la documentation: http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Que les autres de répondre à des notes, ntlk abandonné cette fonction et recommande que "Pour supprimer les balises HTML, utiliser BeautifulSoup de get_text() la fonction". Belle Soupe est probablement la voie à suivre si vous êtes l'extraction de texte à partir d'un élément particulier, mais si vous voulez le texte pour une page entière à mon humble avis, aller avec le nltk fonction. Voici une comparaison entre les deux approches:
Avec le nltk fonction je reçois un bon nettoyage résultat (voir ici, le post est allé plus de 30 000 caractères max donc j'ai dû le mettre dans un pastebin pour être en mesure de post). Et avec une Belle Soupe:
Comme vous pouvez le voir si vous faites défiler à travers elle, la Belle Soupe version comprend beaucoup de non-texte visible. Pas très jolie.
si votre code est
Vous pouvez utiliser
au lieu de cela, voir les autres réponses pour la raison.