记录下书中的例子
1.1文本和词汇
首先得下载
importnltk
nltk.download()
下载器的Collections选项卡下,选择book然后下载
如果下载缓慢或者报错,建议找百度云的包效果是一样的
进入IDLE,输入from nltk.book import *,出现以下结果代表安装完成
from nltk.book import *
*** Introductory Examples for the NLTK Book ***Loading text1, ..., text9andsent1, ..., sent9
Type the name of the textorsentence to view it.
Type:'texts()' or 'sents()'to list the materials.
text1: Moby Dick by Herman Melville1851text2: Senseand Sensibility by Jane Austen 1811text3: The Book of Genesis
text4: Inaugural Address Corpus
text5: Chat Corpus
text6: Monty Pythonandthe Holy Grail
text7: Wall Street Journal
text8: Personals Corpus
text9: The Man Who Was Thursday by G . K . Chesterton1908
搜索文本
键入text.concordance("关键字")
结果还是挺明显的
相似的词(出现相似的上下文)
common_contexts(研究共用两个或两个以上的上下文)
频率分布
产生随机文本
当然也可以texte2.generate(),text3.generate(),每一篇文章的风格不同,书上说每次运行后,输出文本都会不同,实际上我的每次都相同
计数词汇(文本中出现的单词和标点符号)
这个是未去重的
获取词汇表
输出结果会按照英文字母顺序排序的所有唯一标识符(单词和标点)
sorted()是排序,单独set()也会得到,但未排序,然和使用len获取唯一项目类型(单词和标点符号)个数
单词平均使用
表示该篇文章每个单词平均使用16次
计算特定词占百分比
text4.count('')表统计该单词在文中出现的次数
然后讲了一些列表(书中翻译为链表,老是会联想到数据结构中的链表)的运算,就真是来水页数的
1.3计算语言:简单的统计
频率分布
FreqDist将统计各个标识符出现的次数,keys提供所有不同类型的列表(python3中需要按list(fdist.keys())这样写,不然会报错
这里vocabulary[:20]代表取出词频最高的20个词(含标点)
作图:
若不加上cumulative = True,即不考虑累加,则会显示出每个词的次数
只出现一次的词
可以看到有9002个词,在文中只出现一次
细粒度的选择词
这样就可以选择出在text1中的并且该词长度大于15的所有词
以下是在text5中所有长度超过7并且出现次数也超过7次的词
词语搭配和双连词
搭配是不经常在一起出现的词序列。因此 red wine 是,the wine 不是。
计算其他东西
这样会输出每个标识符的长度
这样得到了该文章中所有词的不同长度(也就是说他们由1,4,2...个字母组成,最长20,没有21的)
再键入,得到统计
也可以这样获取出现len最长的,和出现多少次
同样这里也可以绘图来直观的展示