找出句子之间的相似度分数

乘风 deep-learning 407

原文标题Find the similarity scores between sentences

我试图从我的数据中找到相似的句子,我的代码给了我一个输出,它基本上对相似的句子进行排名,如 RANK 1、2 和 3,其中 Rank 1 将是高度相似的句子。我用BM25找出来例如: 句子1:“这个人穿着一件红衬衫

等级一:“男孩穿着红色衬衫”

等级2:“男孩穿着衬衫”

等级3:“女孩穿着裙子”

我还想知道相似度得分,以了解句子的相似程度。那里需要帮助!

原文链接:https://stackoverflow.com//questions/71492746/find-the-similarity-scores-between-sentences

回复

我来回复
  • Rohith Nambiar的头像
    Rohith Nambiar 评论

    你可以用SequenceMatcherfromdifflib

    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年前 0条评论