How to calculate the phrase similarity based on word2vec
我有几百万个句子,想得到短语向量,所以我可以计算短语相似度。但问题是我不知道如何使用 word2vec 来获取词组向量,或者有人知道其他工具吗?
最简单的方法是简单地将每个相应的词向量元素相加,然后重新规范化结果,得到一个句子向量。
在 C# 中,执行如下操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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; |
要找到短语相似度,你必须使用词向量(使用 word2vec 算法训练)来组合词组向量。
这里是如何使用 word2vec 获取词组向量:如何计算词组之间的词组相似度