繁体   English   中英

gensim的LSA模型使用哪个tf-idf公式?

[英]Which formula of tf-idf does the LSA model of gensim use?

有许多不同的方法可以计算tf和idf。 我想知道gensim在其LSA模型中使用了哪个公式。 我一直在浏览其源代码lsimodel.py ,但是对我而言,创建文档项矩阵的位置并不明显(可能是由于内存优化lsimodel.py )。

一篇LSA论文中 ,我读到文档项矩阵的每个单元都是该单词在该文档中的对数频率除以该单词的熵:

tf(w, d) = log(1 + frequency(w, d))
idf(w, D) = 1 / (-Σ_D p(w) log p(w))

但是,这似乎是tf-idf的非常特殊的表述。 tf-idf更常见的形式是:

tf(w, d) = frequency(w, d)
idf(w, D) = log(|D| / |{d ∈ D: w ∈ d}|)

我还注意到, TfIdfModel如何实现TfIdfModel本身存在一个问题 但是,我没有看到lsimodel.py导入TfIdfModel ,因此只能假定lsimodel.py具有自己的tf-idf实现。

据我了解, lsimodel.py不会执行tf-idf编码步骤。 您可以在gensim的API文档中找到一些详细信息-有一个专用的tf-idf模型,可以使用该模型对文本进行编码,然后将其输入LSA模型。 tfidfmodel.py 源代码看来,遵循了您列出的tf-idf的两个定义中的后者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM