2 回答

TA貢獻1943條經驗 獲得超7個贊
是wup_similarity的,內部使用單個標記的同義詞集來計算相似度
Wu-Palmer Similarity: Return a score denoting how similar two word senses are, based on the depth of the two senses in the taxonomy and that of their Least Common Subsumer (most specific ancestor node).
因為cricket和的祖先節點football是相同的。wup_similarity將返回1。
如果你想解決這個問題,使用wup_similarity不是一個好的選擇。最簡單的基于令牌的方法是擬合 avectorizer然后計算相似度。例如。
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
corpus = ["football is good,cricket is bad", "cricket is good,football is bad"]
vectorizer = CountVectorizer(ngram_range=(1, 3))
vectorizer.fit(corpus)
x1 = vectorizer.transform(["football is good,cricket is bad"])
x2 = vectorizer.transform(["cricket is good,football is bad"])
cosine_similarity(x1, x2)
不過,還有更智能的方法可以測量語義相似度。其中一個可以輕松試用的是 Google 的 USE Encoder??吹竭@個鏈接

TA貢獻1775條經驗 獲得超8個贊
這種方式語義相似性有點棘手,因為即使您使用上下文計數(n-gram > 5),您也無法很好地處理反義詞(例如黑色和白色)。在使用不同的方法之前,您可以嘗試使用淺解析器或依賴解析器來提取可以用作維度的主謂關系或主謂賓關系(例如 )。如果這不能為您提供預期的相似性(或適合您的應用程序的值),請使用在非常大的數據上訓練的詞嵌入。
添加回答
舉報