Introduction to Information Retrieval中的TF-IDF和Rocchio分类
TF-IDF and Rocchio classification in Introduction to Information Retrieval
我在 Introduction to Information Retrieval 中查看来自 Vector Space Classification(link 的章节)的 table 14.1,示例 14.1 说“显示了 tf-idf 向量表示Table 13.1 中的五个文档使用公式 (1 + log tf) * log(4/df)
if tf > 0
。然而,当我查看 Table 14.1 时,似乎没有将此 TF-IDF 公式应用于文档向量。
来自 table 13.1 的文档是:
1: Chinese Beijing Chinese
2: Chinese Chinese Shanghai
3: Chinese Macao
4: Tokyo Japan Chinese
Table14.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 公式应用于 d4
的 Japan
维度,我得到:
TF: 1 (term appears once in document 4)
DF: log(4 / 1) (term is present in only document 4)
TF-IDF Weight is thus: log(4) ~ .60
为什么我的计算结果和文中的不一样?
您 tf-idf 计算正确。当文字显示
时,文字有点误导
Table 14.1 shows the tf-idf vector representations of the five documents
in Table 13.1.
它实际上显示 tf-idf 向量表示 归一化为单位长度 。
详情:
文档 4 有三个词 "Tokyo"、"Japan" 和 "Chinese".
您正确计算了 "Tokyo" 和 "Japan" 的 TF-IDF 权重
应该是
log10(4) ≈ 0.60。 "Chinese" 在所有文档中,所以 IDF 部分
它的权重是 log(4/4) = 0,"Chinese" 的权重是零。
所以文档 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
可能值得注意的是,我们使用单位长度向量的原因是为了针对不同长度的文档进行调整。如果没有这种调整,长文档通常会比短文档更好地匹配查询。
我在 Introduction to Information Retrieval 中查看来自 Vector Space Classification(link 的章节)的 table 14.1,示例 14.1 说“显示了 tf-idf 向量表示Table 13.1 中的五个文档使用公式 (1 + log tf) * log(4/df)
if tf > 0
。然而,当我查看 Table 14.1 时,似乎没有将此 TF-IDF 公式应用于文档向量。
来自 table 13.1 的文档是:
1: Chinese Beijing Chinese
2: Chinese Chinese Shanghai
3: Chinese Macao
4: Tokyo Japan Chinese
Table14.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 公式应用于 d4
的 Japan
维度,我得到:
TF: 1 (term appears once in document 4)
DF: log(4 / 1) (term is present in only document 4)
TF-IDF Weight is thus: log(4) ~ .60
为什么我的计算结果和文中的不一样?
您 tf-idf 计算正确。当文字显示
时,文字有点误导Table 14.1 shows the tf-idf vector representations of the five documents in Table 13.1.
它实际上显示 tf-idf 向量表示 归一化为单位长度 。
详情:
文档 4 有三个词 "Tokyo"、"Japan" 和 "Chinese".
您正确计算了 "Tokyo" 和 "Japan" 的 TF-IDF 权重
应该是
log10(4) ≈ 0.60。 "Chinese" 在所有文档中,所以 IDF 部分
它的权重是 log(4/4) = 0,"Chinese" 的权重是零。
所以文档 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
可能值得注意的是,我们使用单位长度向量的原因是为了针对不同长度的文档进行调整。如果没有这种调整,长文档通常会比短文档更好地匹配查询。