NLTK 可用于停用词的语言
Posted
技术标签:
【中文标题】NLTK 可用于停用词的语言【英文标题】:NLTK available languages for stopwords 【发布时间】:2019-07-01 14:24:18 【问题描述】:我想知道在哪里可以找到 NLTK 停用词支持的语言(及其键)的完整列表。
我在https://pypi.org/project/stop-words/ 中找到了一个列表,但它不包含每个国家/地区的密钥。因此,尚不清楚您是否可以通过简单的stopwords.words("Bulgarian")
检索列表。事实上,这会引发错误。
我查看了 NLTK 站点,有 4 个文档与“停用词”匹配,但没有一个文档描述了这一点。 https://www.nltk.org/search.html?q=stopwords&check_keywords=yes&area=default
他们的书中什么也没说: http://www.nltk.org/book/ch02.html#stopwords_index_term
那么,你知道我在哪里可以找到密钥列表吗?
【问题讨论】:
程序员相信语言的谎言:“语言”与“国家”有某种联系。不知何故,在美国使用的语言包括英语、西班牙语、纳瓦霍语、切罗基语等这一事实并没有被注册,更不用说没有名为“比利时语”或“伯利兹语”的语言了。 【参考方案1】:当您使用以下方法导入停用词时:
from nltk.corpus import stopwords
english_stopwords = stopwords.words(language)
您正在根据 fileid(语言)检索停用词。为了查看所有可用的停用词语言,您可以使用以下方法检索文件 ID 列表:
from nltk.corpus import stopwords
print(stopwords.fileids())
在 nltk v3.4.5 的情况下,这将返回 23 种语言:
['arabic',
'azerbaijani',
'danish',
'dutch',
'english',
'finnish',
'french',
'german',
'greek',
'hungarian',
'indonesian',
'italian',
'kazakh',
'nepali',
'norwegian',
'portuguese',
'romanian',
'russian',
'slovene',
'spanish',
'swedish',
'tajik',
'turkish']
【讨论】:
【参考方案2】: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']
【讨论】:
downvoted:这种方法不跨平台,也不兼容环境。 这不是一个好方法。另外,README
不是一种语言。【参考方案3】:
首先检查你是否下载了nltk
包。
如果没有,您可以使用以下方式下载它:
import nltk
nltk.download()
在此之后,您可以在以下路径中找到停用词语言文件。
C:/Users/username/AppData/Roming/nltk_data/corpora/stopwords
它支持21种语言(我几天前安装了nltk
,所以这个数字必须是最新的)。您可以在
nltk.corpus.stopwords.words('langauage')
【讨论】:
太棒了!谢谢,我不知道位置。我可以使用某些语言,但不能使用其他语言:)以上是关于NLTK 可用于停用词的语言的主要内容,如果未能解决你的问题,请参考以下文章