【发布时间】:2017-03-31 23:47:00
【问题描述】:
先说说我对TfIdf度量的理解:
TF(t) = (词条 t 在文档中出现的次数) / (文档中词条的总数)
IDF(t) = log_e(文档总数 / 包含术语 t 的文档数)
my source, and good explanation
所以语料库中的每个单词都有 1 个 Idf 度量。
然而,对于语料库中的每个单词和每个文档,Tf 都“存在”。
假设一个词在 2 个文档中的 Tf=1,那么两个词的 TfIdf 应该相同,对吧?
我想在 R 中检查一下,这里是我的代码:
library(tm)
data("crude")
DTM <- DocumentTermMatrix(crude,control=list(weighting=weightTf))
DTM2 <- DocumentTermMatrix(crude,control=list(weighting=weightTfIdf))
M <- as.matrix(DTM)
M2 <- as.matrix(DTM2)
> M2[7:15,7:9]
Terms
Docs "if "is "may
237 0 0.00000000 0.00000000
242 0 0.00000000 0.00000000
246 0 0.00000000 0.00000000
248 0 0.01153447 0.01500669
273 0 0.00000000 0.00000000
349 0 0.00000000 0.00000000
352 0 0.03650470 0.00000000
353 0 0.00000000 0.00000000
368 0 0.00000000 0.00000000
> M[7:15,7:9]
Terms
Docs "if "is "may
237 0 0 0
242 0 0 0
246 0 0 0
248 0 1 1
273 0 0 0
349 0 0 0
352 0 1 0
353 0 0 0
368 0 0 0
为什么 TfIdf 不一样?我的谬误在哪里?
【问题讨论】: