我使用單詞嵌入來查找兩個句子之間的相似度。使用word2vec,如果一個句子是英語,另一個是荷蘭語(儘管不是很好),我也會得到一個相似性度量。跨多種語言的語義相似度
所以我開始想知道是否可以計算兩種不同語言的兩個句子之間的相似性(沒有明確的翻譯),特別是如果語言有一些相似之處(英語/荷蘭語)?
我使用單詞嵌入來查找兩個句子之間的相似度。使用word2vec,如果一個句子是英語,另一個是荷蘭語(儘管不是很好),我也會得到一個相似性度量。跨多種語言的語義相似度
所以我開始想知道是否可以計算兩種不同語言的兩個句子之間的相似性(沒有明確的翻譯),特別是如果語言有一些相似之處(英語/荷蘭語)?
我們假設您的句子相似性方案僅使用單詞向量作爲輸入 - 就像簡單的單詞向量平均方案或Word Mover's Distance一樣。
應該可以做你所建議的東西,但前提是:
這第二質量不會自動保證。事實上,鑑於word2vec模型的隨機初始化以及算法/實現引入的其他隨機化,即使後續訓練運行完全相同的數據也不會將單詞放入完全相同的位置。因此,在完全獨立的英語/荷蘭語語料庫上訓練的單詞向量不可能在相同的座標處放置相同的單詞。
但是,您可以根據某些錨點/參考詞對(您知道應該有相似的向量)學習兩個空間之間的代數轉換。然後,您可以將該轉換應用於兩個集合中的一個集合中的所有單詞,這會導致您在「規範」單詞集合的可比較座標空間內具有這些「外來」單詞的向量。
實際上在第一word2vec論文之一被用於這種想法:
「Exploiting Similarities among Languages for Machine Translation」
如果你要對你的語言文字載體設置一個應用類似的轉變,然後用那些轉換後的向量作爲你的句子 - 向量方案的輸入,這些句子向量可能與另一種語言的句子向量有一些有用的可比性,在同一座標空間中從單詞向量自舉。
更新:有一個非常有趣的recent paper管理同時培養多種語言的文字載體,利用語料庫包括每個單一的語言包括原始的句子,並排列成行的句子是一個(小)集在兩種語言中都是相同的。 Gensim還不支持這種模式,但在未來的重構中有discussion of supporting it。
另請參閱'**更新**'只是添加到我的答案的底部。 – gojomo
@gojomo將跟進此事。 – utengr