問題 :我使用帶有向量的手套預訓練模型來重新訓練我的模型,例如#cars,訓練后我想在我的域中找到相似的詞,但我的詞不在我的域語料庫中,我相信它來自手套的向量。model_2.most_similar(positive=['spacious'], topn=10)[('bedrooms', 0.6275501251220703), ('roomy', 0.6149100065231323), ('luxurious', 0.6105825901031494), ('rooms', 0.5935696363449097), ('furnished', 0.5897485613822937), ('cramped', 0.5892841219902039), ('courtyard', 0.5721820592880249), ('bathrooms', 0.5618442893028259), ('opulent', 0.5592212677001953), ('expansive', 0.555268406867981)]在這里,我期望域語料庫中提到的腿部空間、汽車的寬敞功能。我們如何在具有相似向量的同時排除手套向量?
2 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
在一組簡單的通用詞向量中可能沒有足夠的信息來按使用領域過濾鄰居。
您可以嘗試使用混合加權:將與'spacious'
、 和的相似之處組合起來'cars'
,然后返回該組合中的最高結果——這可能會有所幫助。
positive
為該most_similar()
方法提供一個以上的單詞可能會近似于這一點。如果您確定某些主要的干擾/重疊來源,您甚至可以使用negative
單詞示例,類似于 word2vec 如何找到類比的候選答案(盡管這也可能會抑制與兩個域合法相關的有用結果,例如'roomy'
)。例如:
candidates = vec_model.most_similar(positive=['spacious', 'car'], negative=['house'])
(除了使用像“car”或“house”這樣的單個詞之外,您還可以嘗試使用由定義域的許多詞組合而成的向量。)
但是,一個明顯的區別聽起來像是一個研究項目,而不是使用現成的庫/向量很容易實現的東西——并且可能需要更復雜的方法和數據集。
您還可以嘗試使用僅在來自感興趣領域的文本數據集上訓練的一組向量——從而確保單詞的詞匯和意義都在該領域內。
添加回答
舉報
0/150
提交
取消