我正在使用word2vec / doc2vec查找两个文档的文本相似性。 我研究了word2vec有两种方法:
但是我仍然坚持理解这两种方法在计算文本相似度时是如何工作的。 另外,哪种方法更适合当前任务。
答案 0 :(得分:2)
单词向量只是为单个单词建模。
但是,您随后可以使用这些每个单词的向量来创建较大文本的向量,或者较大文本之间的相似度计算。
将文本转换为单个固定宽度矢量的简单方法是对所有文本单词的单词矢量求平均。 (根据个别单词重要性的一些想法,这也可以是加权平均值。)这种文本向量通常可以很好地用作快速简单的基线。对于两个文本,所有词向量的两个平均值的余弦相似度就是两个文本的相似度。
诸如Type person name nr: [1] a
Type grade: (from 1 to 6) 1
Type person name nr: [2] b
Type grade: (from 1 to 6) 2
Type person name nr: [3] c
Type grade: (from 1 to 6) 3
Name [1]: a
Grade [1]: 1
Name [2]: b
Grade [2]: 2
Name [3]: c
Grade [3]: 3
(又称“段落向量”)的算法是获取文本向量的另一种方法。它不严格组合单词向量,而是使用类似于创建单词向量的过程来创建按文本的向量。
如果仅使用单词向量,则文本到文本相似性的另一个选项是“单词移动器的距离”(WMD)。 WMD度量不是将所有单词向量平均在一起,而是为文本创建单个向量,而是将文本中的所有单词在其各个单词向量的坐标处均视为“含义堆”。文本之间的距离是将一个文本的单词向量的质量“移动”到另一个文本向量时需要付出的努力。它很昂贵(因为每个这样的成对计算都是许多可能的单词到单词移位中的一个优化问题),但是与将文本折叠成单个摘要向量相比,保留了更多的区别。