英语中的“停用词”列表?

21

我正在为一些英语文本生成一些统计数据,并且希望跳过像"a"和"the"这样的不重要的单词。

  • 我在哪里可以找到这些无用词的列表?
  • 这些词的列表是否与英语中最常用的单词的列表相同?

更新:显然这些被称为“停用词”,而不是“跳过词”。


6
标题编辑完全合法,最重要的是,使其成为了一个真正的问题。你为什么要回滚它呢?看起来一个拥有13.9k声望值的人应该能够把一个问题表达成一个问题吧。 - belgariontheking
非英语停用词怎么处理? - adib
您可以在http://toolspot.org/list-english-stop-words.php找到停用词列表。 - Sunny
6个回答

21
谷歌中输入的魔法词是“停用词”。这会出现一个看起来合理的列表
MySQL也有内置的停用词列表,但这对我来说太全面了。例如,在我们的大学图书馆中,“third world”中的“third”被视为停用词而出现问题。

3
nltk是一个Python库,全称为自然语言工具包。它提供了许多资源,其中包括停用词语料库(由Porter等人编写),其中包含11种语言的2,400个停用词。即使不使用该工具包,您也可以使用这个停用词列表。 - alexis
我该如何在NLTK中访问这个由2,400个停用词组成的语料库? - Hamman Samuel
http://www.nltk.org/nltk_data/ - Thomas
1
NLTK中的英文停用词被标记化。因此,它将“shouldn't”列为“shouldn”。 - gidim

5

2
你的链接已失效,存档地址为:http://web.archive.org/web/20080501010608/http://www.dcs.gla.ac.uk/idom/ir_resources/linguistic_utils/stop_words - bobobobo

5
根据您所从事的英语子领域,您可能需要编制自己的停用词列表。一些通用的停用词在某些领域可能是有意义的。例如,“are”这个单词实际上可能是某些领域中的缩写/首字母缩略词。相反,您可能希望忽略某些特定于领域的词汇取决于您的应用程序,这些词汇在一般英语领域中可能不想忽略。例如,如果您正在分析医院报告语料库,您可能希望忽略像“history”和“symptoms”这样的单词,因为它们会出现在每份报告中,并且可能没有用处(从纯香草倒排索引的角度来看)。

否则,Google返回的列表应该是可以使用的。Porter Stemmer 使用此功能,Lucene搜索引擎实现使用此功能


4

获取大型文本语料库中单词频率的统计信息。忽略所有频率>某个数字的单词。


13
哈哈,这恰恰是我试图避免的工作! - Mark Harrison
他可能希望跳过一些单词(因为它们是英语中的句法糖),但这些单词并不像他想保留的单词那样常见(因为它们是该领域典型的)。我暂时想不到任何好的例子,也许有“thou”和“one”之类的。 - jprete

2
通常这些词出现在频率最高的文档中。假设你有一个全局单词列表:
{ Word Count }

有了单词列表,如果按照出现次数从高到低排序,你会得到一个图表(y轴是计数,x轴是单词),这是反对数函数。所有停用词都在左边,而“停用词”的停止点就是最高一阶导数的位置。
这个解决方案比使用字典更好:
- 这个解决方案是通用的,不受语言限制 - 这个方法学习哪些单词被视为“停用词” - 对于非常相似的集合,这个方法将产生更好的结果,并为集合中的项目生成唯一的单词列表 - 停用词可以在以后重新计算(这样就可以进行缓存,并且可以统计确定停用词可能已经从计算它们时发生了变化) - 这也可以消除基于时间或非正式单词和名称(例如俚语,或者如果您有一堆文件,其中公司名称作为标题)的单词
使用字典更好:
- 查找时间更快 - 结果预先缓存 - 简单易懂 - 别人已经想出了停用词。

2

我曾经在一段时间前使用了来自这里的德语停用词列表,在构建一个基于lucene.net的搜索应用程序时。该网站还包含了英文停用词列表,而且该网站上的列表显然是lucene项目默认使用的列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接