我正在做一些涉及文档比较的工作。为此,我正在分析每个文档,并基本上计算一些关键词出现在每个文档上的次数。例如:
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]
。但在这里我意识到可以通过两种不同的方法来完成:
遵循第一种方法,归一化的结果将是:
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)
对于这个具体案例:
答案 0 :(得分:1)
假设您有两个向量A
和B
,则使用x
作为A
和y
的归一化常量作为{{的归一化常量1}}。由于您在计算单词出现次数,我们可以假设为B
和x > 0
。
对于下面显示的余弦距离,归一化常数将被抵消。很容易看出,你最终会在枚举器中得到一个常量y > 0
,并且在分母处得到一个相同的常量1/(xy)
。所以你可以取消1/(xy)
。
对于欧几里德距离,情况并非如上。我列出了一个示例,假设1/(xy)
和A
是2-d向量。 n维向量只是一个简单的扩展。 B
和A'
分别是B'
和A
的规范化向量。
将B
的非标准化版本与dist(A,B)
的标准化版本进行比较,您可以看到:您选择的标准化常量(最大值或总和)决定dist(A',B')
上的权重,{ {1}}和相互作用的术语。因此,不同的归一化常数会为您提供不同的距离。
如果这是为了某些信息检索目的或主题提取,您是否尝试TF-IDF?这可能比纯粹计算术语的出现更好。