我在网上找到了以下计算TFIDF的代码:
https://github.com/timtrueman/tf-idf/blob/master/tf-idf.py
我在函数 def idf(word, documentList) 中添加了“1+”,这样我就不会出现除以 0 的错误:
return math.log(len(documentList) / (1 + float(numDocsContaining(word,documentList))))
但我对两件事感到困惑:
- 在某些情况下我会得到负值,这是正确的吗?
- 我对第 62、63 和 64 行感到困惑。
Code:
documentNumber = 0
for word in documentList[documentNumber].split(None):
words[word] = tfidf(word,documentList[documentNumber],documentList)
TFIDF 是否应该仅在第一个文档上计算?
- 不会。Tf-idf 是非负值 tf 乘以非负值 idf,因此它永远不可能为负数。这段代码似乎正在实现这个词在维基百科上已经存在很多年了(同时)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)