我有一个脏文件,其中包含无效的英文单词,数字等。 我只想获取所有有效的英语单词,然后计算我的单词列表与有效英语单词总数的比率。
例如,如果我的文档有句子:
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
答案 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)