如何在 NLTK 中为停用词添加更多语言?

Posted

技术标签:

【中文标题】如何在 NLTK 中为停用词添加更多语言?【英文标题】:How Can I Add More Languages to Stopwords in NLTK? 【发布时间】:2014-02-17 12:28:01 【问题描述】:

我正在使用带有停用词的 NLTK 来使用 Alejandro Nolla 在http://blog.alejandronolla.com/2013/05/15/detecting-text-language-with-python-and-nltk/ 描述的方法检测文档的语言,并且效果相当好。

我还在使用一些未包含在 NLTK 停用词包中的其他语言,例如捷克语和罗马尼亚语,它们与其他语言一样得到错误匹配。这些是停用词中的语言:

[“丹麦语”、“荷兰语”、“英语”、“芬兰语”、“法语”、“德语”、“匈牙利语”、“意大利语”、“挪威语”、“葡萄牙语”、“俄语”、“西班牙语” ', '瑞典语', '土耳其语']

如何扩展 NLTK 支持的语言列表?我可以添加其他可用的停用词列表吗?有没有我可以用来创建添加我自己的停用词列表的文档化方法?

【问题讨论】:

如果有人会发现它有用,我在我现在已解散的项目中使用的额外停用词列表可以在 Github 上免费获得:github.com/Xangis/extra-stopwords 【参考方案1】:

在谷歌上搜索“罗马尼亚停用词”可以找到大量资源。

如果你想自己做这件事,你只需要找到所有文本类型中常见的单词。 (您链接到的文章对停用词的解释相当差。)好的候选词是冠词、助词(如果您的语言有它们,并且它们是孤立出现的)、连词、代词和某些类型的副词。

Automatically Building a Stopword List for an Information Retrieval System (Rachel Tsz-Wai Lo, Ben He, Iadh Ounis; University of Glasgow, 2008) (PDF) 记录了一种自动查找停用词的方法。我没有看过方法或其结果。

https://github.com/berkmancenter/mediacloud/blob/master/script/mediawords_generate_stopwords.pl 似乎有一个实现。 (评论有其他名称而不是文章;不确定这是怎么回事。)

【讨论】:

切线,enroweb.com/IMG/pdf/StopwordList_preprint.pdf 的第 2 节有一个很好的单段历史摘要。 谢谢,这就是问题的第二部分。知道如何编辑/更改 NLTK 中的内容吗? 如果是github.com/mhawthorne/antonym/tree/master/lib/nltk-data/corpora/…,它只是一个简单的文本文件,每行一个单词,文件名就是语言。 (我猜那是某人的克隆,但懒得追查主人。此外,自述文件表明它是从另一个项目复制的。) 澄清一下,我所要做的就是将一个每行包含一个单词的名为“romanian”的文件复制到我的 NLTK 数据目录中,然后 NLTK 将其拾取并开始使用它。就我而言,它是 ~/nltk_data/corpora/stopwords/

以上是关于如何在 NLTK 中为停用词添加更多语言?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 nltk 或 python 删除停用词

为啥这些词被认为是停用词?

NLTK 和停用词失败 #lookuperror

将单词添加到 nltk 停止列表

NLTK 停用词列表

朴素贝叶斯的 nltk 词干和停用词