4

我正在做一些涉及文档比较的工作。为此,我正在分析每个文档,并且基本上计算了某些关键字在每个文档中出现的次数。例如:

Document 1:                          Document 2:
    Book   -> 3                          Book   -> 9
    Work   -> 0                          Work   -> 2
    Dollar -> 5                          Dollar -> 1
    City   -> 18                         City   -> 6

所以在计数过程之后,我将所有这些数字序列存储在一个向量中。这个数字序列将代表每个文档的特征向量。

Document 1: [ 3,  0,  5, 18]
Document 2: [ 9,  2,  1,  6]

最后一步是对范围内的数据进行归一化[0 1]。但在这里我意识到这可以通过两种不同的方法来完成:

  1. 将每个数字序列除以总重复次数
  2. 将每个数字序列除以最大重复次数

按照第一种方法,标准化的结果将是:

Document 1: [ 0.11538,  0.00000,  0.19231, 0.69231]   (divided by 26)
Document 2: [ 0.50000,  0.11111,  0.05556, 0.33333]   (divided by 18)

在采用第二种方法时,结果将是:

Document 1: [ 0.16667,  0.00000,  0.27778, 1.00000]   (divided by 18)
Document 2: [ 1.00000,  0.22222,  0.11111, 0.66667]   (divided by  9)

对于这种特定情况:

  • 这两种方法中哪一种会增强特征向量的表示和比较?
  • 结果会一样吗?
  • 这些方法中的任何一种在特定的相似性度量(欧几里得、余弦)下会更好吗?
4

1 回答 1

1

符号

假设您有两个向量AB,您将x其用作 的归一化常数Ay的归一化常数B。由于您正在计算单词出现次数,我们可以假设x > 0y > 0

余弦距离

对于下面显示的余弦距离,将抵消归一化常数。很容易看出,你最终会1/(xy)在 enumerator 处得到一个常数,1/(xy)在 denominator 处得到一个相同的常数。所以你可以取消1/(xy)

在此处输入图像描述

欧几里得距离

对于欧几里得距离,情况并非如此。我在下面列出了一个示例,假设A并且B是二维向量。n 维向量只是一个简单的扩展。A'和分别是和B'的归一化向量。AB

在此处输入图像描述

比较 的dist(A,B)未归一化版本和 的归一化版本dist(A',B'),您可以看到:您选择的归一化常数(最大值或总和)决定了 的权重x1^2+x2^2y1^2+y2^2交互项。因此,不同的归一化常数会给你不同的距离。

特征向量

如果这是出于某些信息检索目的或主题提取,您是否尝试过 TF-IDF?这可能比纯粹计算术语的出现更好。

于 2012-12-05T02:57:18.450 回答