Python NLTK:计算单词列表并使用有效的英语单词生成概率

时间:2013-03-05 16:16:20

标签: python nlp nltk

我有一个脏文件,其中包含无效的英文单词,数字等。 我只想获取所有有效的英语单词,然后计算我的单词列表与有效英语单词总数的比率。

例如,如果我的文档有句子:

sentence= ['eishgkej he might be a good person. I might consider this.']

我想只计算"he might be a good person. I might consider this"并计算"might"

所以,我得到了答案2/10。

我正在考虑使用以下代码。但是,我需要更改行features[word] = 1,而不是更改要素的数量......

 all_words = nltk.FreqDist(w.lower() for w in reader.words() if w.lower() not in english_sw)

 def document_features(document):
     document_words = set(document)
     features = {}
     for word in word_features:
         if word in document_words:
             features[word] = 1
         else:
             features[word]=0
     return features

1 个答案:

答案 0 :(得分:1)

根据the documentation,您可以使用count(self, sample)返回FreqDist对象中单词的计数。所以我觉得你想要这样的东西:

 for word in word_features:
     if word in document_words:
         features[word] = all_words.count(word)
     else:
         features[word]= 0

或者你可以使用索引,即all_words[word]应该返回与all_words.count(word)相同的

如果您想要单词的频率,可以all_words.freq(word)

相关问题