过滤掉停用词

时间:2016-09-30 15:30:00

标签: python nltk stop-words

我创建了一个简单的字数统计程序,我正在尝试使用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 个答案:

答案 0 :(得分: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字典的键。之后您仍然可以再次停止列表。

我将其保留为集合的原因是因为搜索集比搜索列表更有效。