如何根据word2vec计算短语相似度

时间:2017-03-19 04:12:55

标签: word2vec

我有数百万个句子,想要得到短语向量,所以我可以计算短语相似度。但问题是我不知道如何使用word2vec获取短语向量,或者有人知道其他工具吗?

2 个答案:

答案 0 :(得分:1)

这样做的简单方法就是将每个相应的单词向量元素添加到一起并重新规范化结果,为您提供句子向量。

在C#中,做一下这样的事情:

var vec = new double[dims];
foreach (var key in sentence)
{
    var tmp = model[key];
    for (var i = 0; i < dims; i++)
        vec[i] += tmp[i];
}

double len = 0;
for (var i = 0; i < dims; i++)
    len += vec[i] * vec[i];

len = Math.Sqrt(len);
var normal = new double[dims];
for (var i = 0; i < dims; i++)
    normal[i] = vec[i] / len;

return normal;

答案 1 :(得分:0)

要查找短语相似度,您必须使用单词向量(使用word2vec算法进行训练)来组合短语向量。

以下是使用word2vec获取短语向量的方法:How to calculate phrase similarity between phrases