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))))
しかし、私は2つのことで混乱しています:
- 場合によっては負の値が表示されますが、これは正しいですか?
- 62行目、63行目、64行目と混同しています。
コード:
documentNumber = 0
for word in documentList[documentNumber].split(None):
words[word] = tfidf(word,documentList[documentNumber],documentList)
TFIDF は最初のドキュメントのみで計算する必要がありますか?