我在NLTK中有一个函数来生成一个一致的列表,看起来像
concordanceList = ["this is a concordance string something",
"this is another concordance string blah"]
我有另一个函数返回一个Counter字典,其中包含concordanceList中每个单词的计数
def mostCommonWords(concordanceList):
finalCount = Counter()
for line in concordanceList:
words = line.split(" ")
currentCount = Counter(words)
finalCount.update(currentCount)
return finalCount
我遇到的问题是如何最好地从结果计数器中删除停用词,这样,当我打电话时
mostCommonWords(concordanceList).most_common(10)
结果不只是{“the”:100,“is”:78,“that”:57}。
我认为预处理文本以删除停用词是不合适的,因为我仍然需要将索引字符串作为语法语言的实例。基本上,我问是否有一种更简单的方法来做到这一点,而不是为停用词创建一个停用词计数器,将值设置为低,然后再制作另一个计数器:
stopWordCounter = Counter(the=1, that=1, so=1, and=1)
processedWordCounter = mostCommonWords(concordanceList) & stopWordCounter
应该将所有停用词的计数值设置为1,但它看起来很黑。
编辑:另外,我实际上在制作这样的stopWordCounter时遇到了麻烦,因为如果我想要包含像“和”这样的保留字,我会收到无效的语法错误。计数器具有易于使用的联合和交集方法,这将使任务相当简单;是否有相同的词典方法?