如何使用 tf-idf 选择停用词? (非英语语料库)
Posted
技术标签:
【中文标题】如何使用 tf-idf 选择停用词? (非英语语料库)【英文标题】:How to select stop words using tf-idf? (non english corpus) 【发布时间】:2013-05-31 10:03:47 【问题描述】:我已经成功评估了给定语料库的tf-idf function。如何找到每个文档的停用词和最佳词?我知道给定单词和文档的低 tf-idf 意味着它不是选择该文档的好词。
【问题讨论】:
i /think/ tf-idf 将边缘化非常常见的术语(例如停用词),即使您没有将它们标记为停用词。至少这是我的理解。 SOLR 已经支持 i18n,因此它可能有多种语言的停用词列表。 【参考方案1】:停用词是那些在文档中非常常见的词,因此失去了代表性。观察这一点的最佳方法是测量一个术语出现在文档中的数量,并过滤出现在其中超过 50% 的文档,或者前 500 个或您必须调整的某种类型的阈值。
文档中最好的(更具代表性的)术语是那些具有较高 tf-idf 的术语,因为这些术语在文档中很常见,而在集合中很少见。
作为一个简短的说明,正如@Kevin 指出的那样,集合中非常常见的术语(即停用词)无论如何都会产生非常低的 tf-idf。但是,它们会改变一些计算,如果您假设它们是纯噪声,这将是错误的(根据任务,这可能不是真的)。此外,如果包含它们,您的算法会稍微慢一些。
编辑: 正如@FelipeHammel 所说,您可以直接使用IDF(记住反转顺序)作为与df(成反比)成比例的度量。这对于排名目的是完全等效的,因此选择前“k”个术语。然而,不可能使用它来根据比率进行选择(例如,出现在超过 50% 的文档中的单词),尽管一个简单的阈值可以解决这个问题(即,选择 idf 低于特定值的术语) .通常,使用固定数量的术语。
我希望这会有所帮助。
【讨论】:
另外,如果他已经拥有每个术语的 IDF,他可以使用它而不是“测量一个术语出现在的文档数量”,因为两者都是“等价的”。 谨防搭配、首字母缩略词。否则,“与门”中的“与”和“美国外交政策”中的“我们”将被丢弃。早期的 IME 毯子小写往往很糟糕,并且“正确”处理大小写(/标点符号/数字)是特定于域的。【参考方案2】:来自“信息检索简介”一书:
tf-idf
为术语t
分配文档d
中的权重,即
-
当
t
在少量文档中多次出现时最高(因此为这些文档提供了高辨别力);
当term
在文档中出现的次数较少或出现在许多文档中时较低(因此提供的相关性信号不太明显);
当term
出现在几乎所有文档中时最低。
因此tf-idf
最低的词可以被视为停用词。
【讨论】:
以上是关于如何使用 tf-idf 选择停用词? (非英语语料库)的主要内容,如果未能解决你的问题,请参考以下文章