【发布时间】:2019-05-17 02:34:07
【问题描述】:
我有一个数据集,我想找到最接近的字符串匹配。为此,我以这种方式使用 FuzzyWuzzy
sol=process.extract(t,dev2,scorer=fuzz.token_sort_ratio)
其中 t 是字符串,dev2 是要比较的列表。我的问题是,有时它有非常相似的记录,而 FuzzyWuzzy 提供的选项似乎很缺乏。我已经测试了 token_sort、token_set、partial_token 排序和设置、ratio、partial_ratio 和 WRatio。
例如,字符串 Italy - Serie A 给了我以下 2 个最接近的匹配项。
Token_sort_ratio: (92, 'Italy - Serie D');(86, 'Italian - Serie A')
想要的显然是第二个,但逐个字符更接近第一个,这是不同的联盟。
这也发生在团队中。如果,假设我有一个字符串Buchtholz,我会在获得TSV Buchtholz之前获得Buchtholz II。
我现在的主要猜测是尝试更重地加权几个字符的存在和缺失,例如字符串末尾的单个大写字母,因此如果字母有差异或缺失,它的权重为不那么接近。或用于() 和特殊字符。
我不知道是否有办法考虑到这一点,或者你们有更好的方法来获得真正匹配的字符串。
【问题讨论】: