如何处理tf-idf中非常罕见的术语?

时间:2012-10-18 07:54:44

标签: feature-extraction relevance tf-idf noise-reduction oov

我正在实施一个天真的“关键字提取算法”。我是自学成才,所以我缺乏在线文学中常见的术语和数学。

我找到了一份文件的“最相关的关键词”:

  1. 我计算当前文档中每个术语的使用频率。我们称之为 tf
  2. 我查看在整个文档数据库中使用这些术语的频率。我们称之为 df
  3. 我通过 r = tf / df 为每个字词计算相关权重 r
  4. 每个文档都是语料库的正确子集,因此没有文档包含不在语料库中的术语。这意味着我不必担心被零除。

    我按照 r 对所有字词进行排序,并保留许多顶级字词。这些是与本文档关系最密切的顶级关键字。本文档中常见的术语更为重要。整个文档数据库中常见的术语不太重要。

    我认为这是tf-idf的一种天真形式。

    问题在于,当整个数据库中的术语非常罕见但在当前文档中出现时,它们似乎具有太高的 r 值。

    由于样本量小,这可以被认为是某种人工制品。什么是最好的方式或通常的方法来弥补这一点?

    • 丢弃整体数据库中不常见的术语,而不是某个阈值。如果是这样,该阈值是如何计算的?这似乎取决于太多因素是硬编码值。
    • 是否可以通过某种数学函数对其进行加权或平滑,例如反平方或余弦?

    我已经尝试在网上搜索并阅读 tf-idf ,但我发现的大部分内容都与比较文档有关,我对此并不感兴趣。解释与行话和公式的比率。

    (事实上我的项目是这个问题的概括。我真的在Stack Exchange网站上使用标签,因此术语总数很少,停用词无关紧要,低使用率标签可能比低版本更常见 - 标准案例中的用语。)

1 个答案:

答案 0 :(得分:3)

我花了很多时间尝试针对特定的tf-idf信息进行有针对性的谷歌搜索,并挖掘了许多文档。

最后,我找到了一份简明扼要的解释并附有公式的文件,即使我可以理解:麦格理大学计算机系的罗伯特戴尔Document Processing and the Semantic Web, Week 3 Lecture 1: Ranking for Information Retrieval

第20页:

PDF page 20

我缺少的两件事是考虑到集合中的文档数量,并使用逆 df 的对数而不是直接使用逆 df