请教个问题,想算两个字符串相似度,主要用于简称和全称的匹配。
但我用下面几种方法算出来的都是 str3的相似度更高。
有没有哪个方法可以得出2的相似度更高?类似拿源串中的每个中文字到另外一个串中查看包含率,下面代码中str2包含所有str1的内容,str3包含率低一些。
目前想到的可以用jieba来分词,但不确定其分词准确性,看大家有没有更好的方案
import difflib as diff
from fuzzywuzzy import fuzz
str1='邮储银行北京分行'
str2='中国邮政储蓄银行股份有限公司北京分行'
str3='中国工商银行北京分行'
print(diff.SequenceMatcher(None, str1, str2).ratio())
print(diff.SequenceMatcher(None, str1, str3).ratio())
print(diff.SequenceMatcher(None, str1, str2).quick_ratio())
print(diff.SequenceMatcher(None, str1, str3).quick_ratio())
print(fuzz.ratio(str1,str2))
print(fuzz.ratio(str1,str3))
print(fuzz.partial_ratio(str1,str2))
print(fuzz.partial_ratio(str1,str3))
print(fuzz.token_sort_ratio(str1,str2))
print(fuzz.token_sort_ratio(str1,str3))