也许这是一个愚蠢的问题,但是我在使用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”的单词.它给了我一本字典,但是我所有的价值观都是一个.而且我知道例如“ baby”一词在我的语料库中是五到六次…而且它仍然给“ baby:1” …所以它不能按照我想要的方式起作用…
有人能帮我吗?