2016-09-30 10 views
0

私は単純なワードカウントプログラムを作成しましたが、nltk(下記参照)を使用してリストからよく使われる単語をフィルタリングしようとしています。ストップワードをフィルタリングする

私の "周波数"リストに私の "停止"フィルタを適用するにはどうすればよいですか?

#Start 
from nltk.corpus import stopwords 
import re 
import string 
frequency = {} 
document_text = open('Import.txt', 'r') 
text_string = document_text.read().lower() 
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string) 

for word in match_pattern: 
    count = frequency.get(word,0) 
    frequency[word] = count + 1 

frequency = {k:v for k,v in frequency.items() if v>1} 

stop = set(stopwords.words('english')) 
stop = list(stop) 
stop.append(".") 

import csv 

with open('Export.csv', 'w') as csvfile: 
    writer = csv.writer(csvfile) 
    for key, value in frequency.items(): 
     writer.writerow([key, value]) 

答えて

1
stop = set(stopwords.words('english')) 
stop.(".") 

frequency = {k:v for k,v in frequency.items() if v>1 and k not in stop} 

stopはまだsetですが、理解をしているとき、あなたのfrequency辞書のキーを確認してください。後でリストをやり直すことはできます。

私はそれをセットとして保持するのは、リストを検索するよりもセットを検索するほうがずっと効率的だからです。

関連する問題