使用 nltk 绘制 50 个最不常见的单词

Not*_*cky 2 python plot nlp nltk

如何绘制 50 个最不常见的单词?

也许是我想得太复杂了。这是我得到这些词的方式:

distr = nltk.FreqDist(word for word in items)
words = distr .keys()
seldomwords = words [:50]
Run Code Online (Sandbox Code Playgroud)

我现在该如何绘制这个?

通过plot函数,FreqDist我得到所有或仅x个最常见的单词。

我尝试过类似的东西:

distr .plot(:50)
Run Code Online (Sandbox Code Playgroud)

但这在语法上是不正确的。

alv*_*vas 5

这有点奇怪,但最简单的方法是

  • 首先你必须从中提取最不常见的项目FreqDist
  • 然后重新创建最不常见的项目并将其反馈到新的 FreqDist 对象中
  • 使用FreqDist.plot()新的 FreqDist。

[代码]:

>>> from nltk import FreqDist
>>> fd = FreqDist(list('aaabbbbbcccccdddddddd'))
>>> last_two = FreqDist(dict(fd.most_common()[-2:]))
>>> last_two.plot()
Run Code Online (Sandbox Code Playgroud)

[出去]:

在此输入图像描述

[代码]:

>>> from nltk import FreqDist
>>> fd = FreqDist(list('aaabbbbbcccccdddddddd'))
>>> last_two = FreqDist(dict(fd.most_common()[-2:]))
>>> last_two.plot()
>>> last_three = FreqDist(dict(fd.most_common()[-3:]))
>>> last_three.plot()
Run Code Online (Sandbox Code Playgroud)

[出去]:

在此输入图像描述