为什么`nltk.corpus`中的语言数量因操作系统而异?

时间:2018-02-06 10:45:30

标签: python-3.x nlp nltk

我在两台不同的机器(Mac和Linux)上运行相同的代码,尽管两台机器运行相同版本的nltk,但它们提供不同语言的停用词列表(14为Mac) ,17 Linux)。

import nltk
nltk.__version__
from nltk.corpus import stopwords
stopwords.ensure_loaded
stopwords_dict = {lang:stopwords.words(lang) for lang in stopwords.__dict__.get('_fileids')}
stopwords_dict.keys()
len(stopwords_dict.keys())

两台计算机nltk中的'3.2.5'版本相同,但语言数量不同:

苹果

dict_keys(['danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'portuguese', 'russian', 'spanish', 'swedish', 'turkish'])

14

的Linux

dict_keys(['kazakh', 'swedish', 'spanish', 'danish', 'english', 'italian', 'portuguese', 'dutch', 'turkish', 'arabic', 'romanian', 'russian', 'french', 'hungarian', 'german', 'finnish', 'norwegian'])
17

我未能在nltk文档中找到答案。

1 个答案:

答案 0 :(得分:1)

我完全忘记了nltk和"它为数十个语料库和训练有素的模型提供的内置支持"是两件不同的事情。这就解释了为什么即使nltk版本相同,语料库也可能不同。

正如@alvas在评论中指出的那样,解决方案就是更新nltk_data

 nltk.download("stopwords")

可以找到nltk_data提供的资源的完整列表here