计算 NLTK 语料库中的非停用词
Counting non stop words in an NLTK corpus
在使用 NLTK 的 python 中,我如何计算按类别过滤的文档中的非停用词数量?
我可以弄清楚如何按类别过滤语料库中的单词,例如类别“新闻”的棕色语料库中的所有单词是:
text = nltk.corpus.brown.words(categories=category)
另外,我可以弄清楚如何获取特定文档的所有单词,例如棕色语料库中文档“cj47”中的所有单词是:
text = nltk.corpus.brown.words(fileids='cj47')
然后我可以遍历结果并计算不是停用词的单词,例如
stopwords = nltk.corpus.stopwords.words('english')
for w in text:
if w.lower() not in stopwords:
#found a non stop words
但是如何将它们放在一起以便按类别过滤特定文档?如果我尝试同时指定类别和过滤器,例如
text = nltk.corpus.brown.words(categories=category, fields=’cj47’)
我收到一条错误消息:
ValueError: Specify fields or categories, not both
获取类别的文件 ID:
fileids = nltk.corpus.brown.fileids(categories=category)
对于每个文件,统计非停用词:
for f in fileids:
words = nltk.corpus.brown.words(fileids=f)
sum = sum([1 for w in words if w.lower() not in stopwords])
print "Document %s: %d non-stopwords." % (f, sum)
在使用 NLTK 的 python 中,我如何计算按类别过滤的文档中的非停用词数量?
我可以弄清楚如何按类别过滤语料库中的单词,例如类别“新闻”的棕色语料库中的所有单词是:
text = nltk.corpus.brown.words(categories=category)
另外,我可以弄清楚如何获取特定文档的所有单词,例如棕色语料库中文档“cj47”中的所有单词是:
text = nltk.corpus.brown.words(fileids='cj47')
然后我可以遍历结果并计算不是停用词的单词,例如
stopwords = nltk.corpus.stopwords.words('english')
for w in text:
if w.lower() not in stopwords:
#found a non stop words
但是如何将它们放在一起以便按类别过滤特定文档?如果我尝试同时指定类别和过滤器,例如
text = nltk.corpus.brown.words(categories=category, fields=’cj47’)
我收到一条错误消息:
ValueError: Specify fields or categories, not both
获取类别的文件 ID:
fileids = nltk.corpus.brown.fileids(categories=category)
对于每个文件,统计非停用词:
for f in fileids: words = nltk.corpus.brown.words(fileids=f) sum = sum([1 for w in words if w.lower() not in stopwords]) print "Document %s: %d non-stopwords." % (f, sum)