信息检索简介中的TF-IDF和Rocchio分类

时间:2017-02-13 19:55:58

标签: classification information-retrieval

我在信息检索简介中的Vector Space Classification(链接章节)中查看表14.1,例14.1说"显示表13.1中五个文件的tf-idf向量表示如果(1 + log tf) * log(4/df)使用公式tf > 0。然而,当我看表14.1时,似乎没有将这个TF-IDF公​​式应用于文档向量。

表13.1中的文件是:

1: Chinese Beijing Chinese
2: Chinese Chinese Shanghai
3: Chinese Macao
4: Tokyo Japan Chinese

和表14.1中的向量的术语权重是:

vector Chinese Japan Tokyo Macao Beijing Shanghai
d1     0       0     0     0     1.0     0
d2     0       0     0     0     0       1.0
d3     0       0     0     1.0   0       0
d4     0       0.71  0.71  0     0       0

如果我将TF-IDF公​​式应用于Japan的{​​{1}}维度,我会得到:

d4

为什么我的计算结果与文本中包含的结果不同?

1 个答案:

答案 0 :(得分:1)

您已正确计算tf-idf。当文字说

时,文字有点误导
  

表14.1显示了五个文档的tf-idf向量表示   见表13.1。

它实际上显示了标准化为单位长度的tf-idf向量表示

详情:
文件4有三个单词"东京","日本"和"中文"。
你正确地计算了两个"东京"的TF-IDF权重。和"日本" 应该是 log10(4)≈0.60。 "中国"在所有文件中,所以IDF部分 它的重量是log(4/4)= 0和"中国"的重量。是零。 所以文档4的向量是

Chinese Japan Tokyo Macao Beijing Shanghai
   0    0.60  0.60    0      0       0

但是这个向量的长度是sqrt(0.60 ^ 2 + 0.60 ^ 2)≈0.85要获得单位长度的向量,所有分量除以0.85给出文本中的向量

Chinese Japan Tokyo Macao Beijing Shanghai
   0    0.71  0.71    0      0       0

值得注意的是,我们使用单位长度矢量的原因是调整不同长度的文档。如果没有这种调整,长文档通常会比短文档更好地匹配查询。