1. 获取网页
1.1 一般网页:
使用urllib包
>>> from urllib import urlopen
指定url
>>> url = "http://www.gutenberg.org/files/2554/2554.txt"
读入原始文档
>>> raw = urlopen(url).read()
Check:raw的类型是str
>>> type(raw)
<type 'str'>
1.2 特殊网页:
如使用1.1的方法读入wikipedia的网页会返回Access Deny,需要使用urllib2,手动添加header,让wiki以为是浏览器访问
使用urllib2包
>>> import urllib2
建立opener
>>> opener = urllib2.build_opener()
添加header
>>> opener.addheaders = [('User-agent', 'Mozilla/5.0')]
打开url
>>> infile = opener.open('http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes')
>>> type(infile)
<type 'instance'>
读入原始文档
>>> raw = infile.read()
2. 删除html标签
如果是txt或其他文本文件,跳过此步
>>> raw = nltk.clean_html(raw)
3. 删除多余信息。
由于没有内置功能,只能手动找到所需要信息的头和尾,截取中间部分
>>> raw.find("PART I")
5303
>>> raw.rfind("End of Project Gutenberg's Crime")
1157681
>>> raw = raw[5303:1157681]
4 从raw生成tokens
>>> tokens = nltk.word_tokenize(raw)
>>> type(tokens)
<type 'list'>
5 从tokens生成text
>>> text = nltk.Text(tokens)
>>> type(text)
<class 'nltk.text.Text'>
6. 从text生成vocab
>>> words = [w.lower() for w in text]
>>> vocab = sorted(set(words))
总结:
HTML----> ASCII (raw) ----> Text (tokens, text) ----> Vocab (words, vocab)