计算具有不同向量数的两个图节点之间的余弦相似度

时间:2013-12-28 10:10:57

标签: math vector machine-learning nlp

我正在实施题为“Efficient Graph-Based Semi-Supervised Learning of Structured Tagging Models”的论文作为我研究的一部分。

作为本文第3部分的图形构建过程的一部分,我需要定义某种相似性度量来计算连接一对节点的每条边的边缘权重。根据该论文,我必须为此创建一个PMI(Pointwise Mutual Information)向量。我要做的是计算每个令牌上发生的特征的PMI。

本文将每个n-gram命名为“type”,并将其中每个n-gram命名为“token”。

作为一个例子,如果我们将x2-x3-x4作为我们当前的类型,它发生在两个上下文x1-x2-x3-x4-x5和x6-x2-x3-x4-x7中,我必须计算一组与x2-x3-x4类型相关的功能。但不知何故,这个程序似乎很复杂而且不清楚。这就是我得到的:

  • 我应该计算每个令牌上每个功能的PMI。这导致每个标记的PMI向量,最终结果将是当前类型的PMI向量数组。数组大小将等于给定类型的标记数。现在作为最后一步,我应该测量不同节点的相似性。但问题是每种类型的结果矢量数组都有不同的大小,所以我无法将这些数组相互比较。

那么,解决方案是什么?我在这里犯了错误吗?

1 个答案:

答案 0 :(得分:0)

对于数据集中出现的每个三元组,您始终可以获得表1中列出的9个功能。对于1-2-3-4-5和6-2-3-4-7,您还可以计算{{ 3}}在(12345)和(62346),(234)和(234),(12)和(62),(45)和(47)之间,......注意一些PMI,如trigram,中心字,三字母中心字是0,但如果你选择的三元组不同,它们就不会出现。所以数组大小应该保留。