[英]What is the best approach to measure a similarity between texts in multiple languages in python?
所以,我有一個任務,我需要測量兩個文本之間的相似性。 這些文本是雜貨店產品的簡短描述。 它們總是包括產品的名稱(例如牛奶),它們可能包括生產商和/或尺寸,還可能包括產品的一些其他特征。
我有一整套這樣的文本,然后,當新的文本到來時,我需要確定我的數據庫中是否有類似的產品,並衡量它們的相似程度(從 0 到 100%)。
問題是:文本可能有兩種不同的語言:烏克蘭語和俄語。 此外,如果有外國品牌(如Coca Cola
),它會用英文寫。
我解決這個任務的最初想法是獲取多語言詞嵌入(不同語言的相似詞位於附近)並找到這些文本之間的距離。 但是,我不確定這會有多有效,如果可以,從什么開始。
因為我擁有的每個文本只是一組產品特征,一些基於上下文的詞嵌入可能不起作用(我不確定這個陳述,這只是我的假設)。
到目前為止,我一直在嘗試熟悉MUSE框架,但是我遇到了faiss
安裝的問題。
因此,我的問題是:
注意:我有 Windows 10(以防某些庫不能在 Windows 上運行),我需要該庫來處理烏克蘭語和俄語。
提前感謝您的幫助! 任何建議將不勝感激!
您可以嘗試采用Faiss
的Milvus來搜索相似向量。 在 windows 操作系統中安裝 docker 很容易。
數據是否包含大量數字信息(例如營養成分)? 如果是,這可以用來在一定程度上比較產品。 我的建議是不要將其視為語言問題,而應將其視為模式匹配,因為這些文本可能是使用翻譯記憶庫的半自動方法生成的。 因此,跨語言的相似文本可能具有相似的形式,如果是這樣,則應將其用於比較。
多語言文本比較不是一項簡單的任務,我認為沒有任何相當好的開箱即用解決方案。 是的,存在多語言嵌入,但必須對其進行微調才能處理特定的下游任務。
詞嵌入在語言內部是有意義的,但不能轉移到其他語言。 對這個陳述的一個觀察是:如果兩個詞在句子中同時出現很多,它們的嵌入可以彼此靠近。 因此,由於兩種通用語言之間沒有一對一的映射,因此您無法比較詞嵌入。
但是,如果兩種語言與一對一的映射詞足夠相似,您可能會相信您的想法。
總而言之,如果沒有翻譯,您的想法不再適用於兩種通用語言。
假設您的任務是關於細粒度的實體識別。 我認為您有一個定義明確的實體:品牌、尺寸等......因此,這些定義產品的每個特征都可以是一個向量,這意味着您的產品可以用一個矩陣來表示。 您可以使用嵌入來表示每個特征。 或者嵌入和 one-hot 向量的混合。
這里是如何。
Coca Cola
to ru Кока-Кола, en Coca Cola
。這里沒有明確的答案,您需要進行試驗和測試,看看什么是最好的解決方案。 您可以創建一個測試集並為您的解決方案制定基准。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.