NLTK 停用词可用语言

NLTK available languages for stopwords

我想知道在哪里可以找到 NLTK 停用词支持的语言(及其键)的完整列表。

我在 https://pypi.org/project/stop-words/ 中找到了一个列表,但它不包含每个国家/地区的密钥。因此,不清楚是否可以通过简单地 stopwords.words("Bulgarian") 检索列表。事实上,这会引发错误。

我查看了 NLTK 站点,有 4 个文档匹配 "stopwords",但其中 none 描述了这一点。 https://www.nltk.org/search.html?q=stopwords&check_keywords=yes&area=default

他们的书中什么也没说: http://www.nltk.org/book/ch02.html#stopwords_index_term

那么,你知道在哪里可以找到密钥列表吗?

首先检查您是否下载了 nltk 个包。
如果没有,您可以使用以下方式下载它:

import nltk
nltk.download()

之后您可以在下面的路径中找到停用词语言文件。

C:/Users/username/AppData/Roming/nltk_data/corpora/stopwords

它支持 21 种语言(几天前我安装了 nltk,所以这个数字必须是最新的)。您可以在

中将文件名作为参数传递

nltk.corpus.stopwords.words('langauage')

os.listdir('/root/nltk_data/corpora/stopwords/')

['hungarian',
 'swedish',
 'kazakh',
 'norwegian',
 'finnish',
 'arabic',
 'indonesian',
 'portuguese',
 'turkish',
 'azerbaijani',
 'slovene',
 'spanish',
 'danish',
 'nepali',
 'romanian',
 'greek',
 'dutch',
 'README',
 'tajik',
 'german',
 'english',
 'russian',
 'french',
 'italian']

当您使用以下方式导入停用词时:

from nltk.corpus import stopwords
english_stopwords = stopwords.words(language)

您正在根据文件 ID(语言)检索停用词。为了查看所有可用的停用词语言,您可以使用以下方法检索文件 ID 列表:

from nltk.corpus import stopwords
print(stopwords.fileids())

对于 nltk v3.4.5,这 returns 23 种语言:

['arabic', 
 'azerbaijani', 
 'danish', 
 'dutch', 
 'english', 
 'finnish', 
 'french', 
 'german', 
 'greek',
 'hungarian', 
 'indonesian', 
 'italian', 
 'kazakh', 
 'nepali', 
 'norwegian', 
 'portuguese', 
 'romanian', 
 'russian', 
 'slovene', 
 'spanish', 
 'swedish', 
 'tajik', 
 'turkish']