跨多种语言的语义相似度

ute*_*ngr 2 nlp nltk gensim word2vec

我正在使用词嵌入来查找两个句子之间的相似性。使用 word2vec,如果一个句子是英语,另一个句子是荷兰语,我还可以获得相似性度量(尽管不是很好)。

所以我开始想知道是否有可能计算两种不同语言的两个句子之间的相似度(没有明确的翻译),特别是如果这些语言有一些相似之处(英语/荷兰语)?

goj*_*omo 7

假设您的句子相似度方案仅使用词向量作为输入 \xe2\x80\x93 ,就像简单的词向量平均方案或词移动器的距离一样。

\n\n

应该可以按照您的建议进行操作,前提是:

\n\n
    \n
  • 对于每种语言的单词,你都有很好的单词向量集
  • \n
  • 词向量的坐标空间是兼容的,这意味着两种语言中表示完全相同事物的词具有几乎相同的坐标(并且其他具有相似含义的词具有接近的坐标)
  • \n
\n\n

第二个质量并不能自动得到保证。事实上,考虑到 word2vec 模型的随机初始化以及算法/实现引入的其他随机化,即使在完全相同的数据上运行后续训练也不会将单词放置在完全相同的位置。因此,在完全独立的英语/荷兰语语料库上训练的词向量不太可能将等效的单词放置在相同的坐标处。

\n\n

但是,您可以根据某些锚点/参考词对(您知道应该具有相似的向量)学习两个空间之间的代数变换。然后,您可以将该转换应用于两个集合之一中的所有单词,这会导致您在“规范”单词集的可比坐标空间内获得这些“外国”单词的向量。

\n\n

事实上,第一个 word2vec 论文中就使用了这个想法:

\n\n

“利用语言之间的相似性进行机器翻译”

\n\n

如果您要对一种语言单词向量集应用类似的转换,然后使用这些转换后的向量作为句子向量方案的输入,这些句子向量可能与另一种语言的句子向量具有一些有用的可比性,从同一坐标空间中的词向量引导。

\n\n

更新:最近有一篇非常有趣的论文,它使用包含每种语言的原始句子和一组(较小的)已知含义的对齐句子的语料库,成功地同时训练多种语言的词向量。两种语言都一样。Gensim 尚不支持此模式,但正在讨论在未来的重构中 支持它。

\n