比较两个字符串的相似度

Nic*_*ckP 3 python pandas

我有一组遗留数据,旨在将公司匹配在一起(基于许多不同的因素)。但是,我想仅根据来自不同配置文件的名称(并且可能有细微的差异)对比赛进行一些质量检查。

假设数据集如下:

匹配ID 左名 姓名权
1 柠檬农场 柠檬农场公司
2 桃树 桃树农场
3 番茄林 橙色猎豹农场

他们是用算法还是Python方式来知道例如1和2可能很好匹配而3很不匹配?这,没有任何机器学习等。

我想我需要以某种方式创造一个分数并消除它。但是,如果这是最佳实践,我会喜欢一些意见。

我的一些想法是查看模式、比较集合中的字母等。但是,我无法执行它们。

WeN*_*Ben 5

你可以尝试fuzzywuzzy使用分数,然后你只需要设置分数限制即可

from fuzzywuzzy import fuzz
df['score'] = df[['Name Left','Name Right']].apply(lambda x : fuzz.partial_ratio(*x),axis=1)
df
Out[134]: 
   Match ID     Name Left           Name Right  score
0         1    LemonFarms      Lemon Farms Inc     90
1         2     Peachtree      PeachTree Farms     89
2         3  Tomato Grove  Orange Cheetah Farm     13
Run Code Online (Sandbox Code Playgroud)