找出句子之间的相似度分数
deep-learning 407
原文标题 :Find the similarity scores between sentences
我试图从我的数据中找到相似的句子,我的代码给了我一个输出,它基本上对相似的句子进行排名,如 RANK 1、2 和 3,其中 Rank 1 将是高度相似的句子。我用BM25找出来例如: 句子1:“这个人穿着一件红衬衫
等级一:“男孩穿着红色衬衫”
等级2:“男孩穿着衬衫”
等级3:“女孩穿着裙子”
我还想知道相似度得分,以了解句子的相似程度。那里需要帮助!
回复
我来回复-
Rohith Nambiar 评论
你可以用
SequenceMatcher
fromdifflib
from difflib import SequenceMatcher s = SequenceMatcher(None, "the boy is wearing a red shirt", "the boy is wearing a shirt") print(s.ratio())
输出
0.9285714285714286 # 1 being max
要么
你可以使用模糊库
fuzz.ratio("the boy is wearing a red shirt", "the boy is wearing a shirt") # 100 being max
要么
你可以使用 jellyfish 库
import jellyfish jellyfish.levenshtein_distance(u'jellyfish', u'smellyfish') # 2 jellyfish.jaro_distance(u'jellyfish', u'smellyfish') # 0.89629629629629 jellyfish.damerau_levenshtein_distance(u'jellyfish', u'jellyfihs') # 1
你可以在这个链接下找到大部分的文本相似度方法以及它们是如何计算的:https://github.com/luozhouyang/python-string-similarity#python-string-similarity
2年前