NLTK(FreqDist)

本系列博客为学习《用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()

该方法会返回出现次数最多的项。

猜你喜欢

转载自blog.csdn.net/csdn_lzw/article/details/80390768