0

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

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

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
4

1 回答 1

1

根据文档,您可以使用它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)

于 2013-03-05T16:50:58.490 回答