7
使用gensim.models.Word2Vec
庫,可以提供一個模型和一個「單詞」,您可以在其中找到最相似的單詞列表:根據單詞的矢量(不是單詞本身)獲得與本詞最相似的單詞
model = gensim.models.Word2Vec.load_word2vec_format(model_file, binary=True)
model.most_similar(positive=[WORD], topn=N)
我不知道是否有可能給系統作爲輸入模型和一個「載體」,並要求系統返回頂部類似的話(它的載體是非常接近給定矢量)。類似的東西來:
model.most_similar(positive=[VECTOR], topn=N)
我需要這個功能的雙語環境,在其中我有2款(英語和德語),以及爲我需要找到自己最相似的德國考生一些英語單詞。 我想要做的是從英文模式獲取每個英文單詞的載體:
model_EN = gensim.models.Word2Vec.load_word2vec_format(model_file_EN, binary=True)
vector_w_en=model_EN[WORD_EN]
,然後查詢這些載體的德國模式。
model_DE = gensim.models.Word2Vec.load_word2vec_format(model_file_DE, binary=True)
model_DE.most_similar(positive=[vector_w_en], topn=N)
我已經在word2vec包中使用原始距離函數在C中實現了這個功能。但是,現在我需要它在Python中,以便能夠將它與我的其他腳本集成。
您是否知道gensim.models.Word2Vec
圖書館或其他類似的圖書館是否已經有這樣的方法?我需要自己實施嗎?
是否'most_similar(..)'分數返回給你呢?我描繪了一個自定義函數,它爲矢量中的每個單詞調用'most_similar',將ALL的結果添加到同一個列表中,然後對得分和返回進行排序。 – nbryans
謝謝nbryans。如果沒有現成的方法來實現這一點,我必須按如下方式實現它:詞彙表中的每個單詞從模型中獲取其相應的向量。計算輸入向量和返回值的餘弦相似度。然後返回最頂級的相似者。但是,我認爲這種方法可能存在。這似乎不是。 – amin