2013-03-05 186 views
0

我有一個髒文檔,其中包含無效的英文單詞,數字等 我只想將所有有效的英文單詞,然後計算我的列表的比例的字數與有效英文單詞的總數。Python 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

有你試圖在字典中查找單詞,例如共發現? – 2013-03-05 16:22:06

+0

「english_sw」和「word_features」的定義在哪裏? – askewchan 2013-03-05 16:33:56

+0

oh english_sw是「詞典」,如WordNet,如拉斯曼斯所說.. – user976856 2013-03-05 16:38:27

回答

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)