2017-12-06更新:不少代码执行结果与书中不一致,是由于python的版本不一致。若是发现有问题,能够参考英文版:javascript
第三章,P87有一段处理html的代码:java
>>>raw = nltk.clean_html(html) >>>tokens = nltk.word_tokenize(raw) >>>tokens
但是咱们执行会有以下错误:python
>>> raw = nltk.clean_html(html) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2.7/site-packages/nltk/util.py", line 356, in clean_html raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function") NotImplementedError: To remove HTML markup, use BeautifulSoup's get_text() function
根据官方网站:介绍http://www.nltk.org/_modules/nltk/util.html
def clean_html(html):
raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
[docs]def clean_url(url):
raise NotImplementedError ("To remove HTML markup, use BeautifulSoup's get_text() function")
网站:http://stackoverflow.com/questions/10524387/beautifulsoup-get-text-does-not-strip-all-tags-and-javascript介绍:
之后的版本,彷佛不支持clean_html()和clean_url()这两个函数
Support for clean_html and clean_url will be dropped for future versions of nltk. Please use BeautifulSoup for now...it's very unfortunate.
有关处理HTML 的内容,能够使用http://www.crummy.com/software/BeautifulSoup/上的Beautiful Soup 软件包。web
安装:sudo pip install beautifulsoup4函数
以后替换书上的代码:网站
from __future__ import division import nltk, re, pprint from urllib import urlopen from bs4 import BeautifulSoup def read_html(): url = "http://news.bbc.co.uk/2/hi/health/2284783.stm" html = urlopen(url).read() soup = BeautifulSoup(html) text = soup.get_text() print text tokens = nltk.word_tokenize(text) print tokens def main(): read_html() if __name__ == '__main__': main()
上述脚本文件能够独立运行,运行结果与书上一致url