本系列博客为学习《用Python进行自然语言处理》一书的学习笔记。
1.3节 P17
FreqDist继承自dict,所以我们可以像操作字典一样操作FreqDist对象。
在本例中,FreqDist中的键为单词,值为单词的出现总次数。
实际上FreqDist构造函数接受任意一个列表,它会将列表中的重复项给统计起来,
在本例中我们传入的其实就是一个文本的单词列表。我们可以看看每个单词对应的出现次数:
命令行输入
import nltk
from nltk.book import *
fdist1 = FreqDist(text1)
for key in fdist1:
print(key, fdist1[key])
输出结果
...
(u'pods', 4)
(u'yawed', 1)
(u'jewel', 2)
(u'gam', 3)
(u'Nelson', 3)
(u'Sperm', 135)
(u'volumes', 2)
(u'sleeves', 5)
(u'Shooting', 1)
(u'expands', 2)
(u'sash', 1)
FreqDist::plot(n)
该方法接受一个数字n,会绘制出现次数最多的前n项,在本例中即绘制高频词汇。
fdist1.plot(10)
累积频数图
fdist1.plot(10,cumulative=True)
FreqDist::tabulate(n)
该方法接受一个数字n作为参数,会以表格的方式打印出现次数最多的前n项。
fdist1.tabulate(15)
, the . of and a to ; in that ' - his it I
18713 13721 6862 6536 6024 4569 4542 4072 3916 2982 2684 2552 2459 2209 2124
FreqDist::most_common(n)
该方法接受一个数字n作为参数,返回出现次数最多的前n项列表。
fdist1.most_common(15)
Out[33]:
[(u',', 18713),
(u'the', 13721),
(u'.', 6862),
(u'of', 6536),
(u'and', 6024),
(u'a', 4569),
(u'to', 4542),
(u';', 4072),
(u'in', 3916),
(u'that', 2982),
(u"'", 2684),
(u'-', 2552),
(u'his', 2459),
(u'it', 2209),
(u'I', 2124)]
FreqDist::hapaxes():
该方法会返回一个低频项列表,低频项即出现一次的项。
FreqDist::max()
该方法会返回出现次数最多的项。