我正在使用带有停用词的NLTK来使用Alejandro Nolla在http://blog.alejandronolla.com/2013/05/15/detecting-text-language-with-python-and-nltk/描述的方法来检测文档的语言,并且它工作得相当好.
我还在使用NLTK停用词包中未包含的一些其他语言,例如捷克语和罗马尼亚语,并且它们会像其他语言一样得到错误的匹配.这些是停用词中的语言:
[‘danish’,’dutch’,’english’,’finnish’,’french’,’german’,’hungarian’,’italian’,’norwegian’,’portuguese’,’russian’,’spanish’,’瑞典’,’土耳其’]
如何扩展NLTK支持的语言列表?是否还有其他可以添加的停用词列表?是否有一个文档化的方法可以用来创建添加我自己的禁用词列表?
解决方法:
谷歌搜索“罗马尼亚词汇”带来了大量的资源.
如果你想自己做,你只需要找到所有类型的文字中常见的单词. (你链接到的文章对停止词是什么有一个相当差的解释.)好的候选人是文章,粒子(如果你的语言有它们,它们是孤立的),连词,代词和某些类型的副词.
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似乎有一个实现. (评论的其他名称不是文章;不确定是什么.)