绘制书籍的ConditionalFreqDist

时间:2014-09-17 09:38:06

标签: python plot ipython nltk

使用nltk(已导入)。玩古腾堡语料库

import nltk
from nltk.corpus import gutenberg

检查出fileids,找到一个我可以玩的文件:

gutenberg.fileids()

我做了一个小代码来找到最常用的单词(为图表选择一些)

kjv_text = nltk.Text(kjv)

from collections import Counter
for words in [kjv_text]:
    c = Counter(words)
print c.most_common()[:100] # top 100

kjv_text.dispersion_plot(["LORD", "God", "Israel", "king", "people"])

直到这里它完美无缺。然后我尝试实现ConditionalFreqDist,但得到一堆错误:

cfd2 = nltk.ConditionalFreqDist((target, fileid['bible-kjv.txt']) 
                           for fileid in gutenberg.fileids() 
                           for w in gutenberg.words(fileid) 
                           for target in ['lord'] 
                           if w.lower().startswith(target))
cfd2.plot()

我试图改变一些事情,但总是会遇到一些错误。任何可以告诉我我做错了什么的专家?

由于

1 个答案:

答案 0 :(得分:1)

这是错误的:

fileid in:

cfd2 = nltk.ConditionalFreqDist((target, fileid['bible-kjv.txt']) 

应该引用它所在的元素(在这种情况下是gutemberg文本列表中的第4个元素)。 所以这条线应该说:

cfd2 = nltk.ConditionalFreqDist((target, fileid[3])