也许这是个愚蠢的问题,但是我在用Python从语料库中提取十个最常见的单词时遇到了问题。这就是我目前所掌握的。(顺便说一句,我使用NLTK阅读一个语料库,每个10.txt文件有两个子类别)import re
import string
from nltk.corpus import stopwords
stoplist = stopwords.words('dutch')
from collections import defaultdict
from operator import itemgetter
def toptenwords(mycorpus):
words = mycorpus.words()
no_capitals = set([word.lower() for word in words])
filtered = [word for word in no_capitals if word not in stoplist]
no_punct = [s.translate(None, string.punctuation) for s in filtered]
wordcounter = {}
for word in no_punct:
if word in wordcounter:
wordcounter[word] += 1
else:
wordcounter[word] = 1
sorting = sorted(wordcounter.iteritems(), key = itemgetter, reverse = True)
return sorting
如果我用我的语料库打印这个函数,它会给我一个后面有“1”的所有单词的列表。它给了我一本字典,但我所有的价值观都是一本。我知道例如“宝贝”这个词在我的语料库里是五到六倍。。。但还是有“宝贝:1”。。。所以它不能按我想要的方式工作…
有人能帮我吗?