【问题标题】:Inverse Document Frequency Formula逆文档频率公式
【发布时间】:2015-11-23 14:57:08
【问题描述】:

我无法手动计算 tf-idf 的值。 Python scikit 不断吐出与我预期不同的值。

我一直在读这个

idf(term) =  log(# of docs/ # of docs with term)

如果是这样,如果没有包含该术语的文档,您不会得到除以零的错误吗?

为了解决这个问题,我读到你这样做了

log (# of docs / # of docs with term + 1 )

但是如果这个词出现在每个文档中,你会得到 日志 (n/n+1) 这是负面的,这对我来说真的没有意义。

我没有得到什么?

【问题讨论】:

    标签: python statistics nlp scikit-learn nltk


    【解决方案1】:

    您描述的技巧实际上称为Laplace smoothing(或加法,或加一平滑),并假设将相同的和加到分数的另一部分 - 在您的情况下为提名者,在原始情况下为分母。

    换句话说,您应该在文档总数中加 1:

    log (# of docs + 1 / # of docs with term + 1)
    

    顺便说一句,通常最好使用较小的 summand,尤其是在小语料库的情况下:

    log (# of docs + a / # of docs with term + a),

    其中 a = 0.001 或类似的值。

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 1970-01-01
      • 2023-03-08
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2017-06-13
      相关资源
      最近更新 更多