如何使用 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 选择停用词? (非英语语料库)的主要内容,如果未能解决你的问题,请参考以下文章

NLP-词向量:如何理解TF-IDF?

贝叶斯_文本分析

机器学习 - 文本分析案例 - 新闻分析

如何使用 nltk 从大文本语料库中仅提取英文单词?

01 文本分析随记

通俗理解TF-IDF