Python:查找方法以匹配两个数据框中的相似但不相同的名称

时间:2020-10-21 09:47:02

标签: python pandas nlp sequence

我有两个数据框,一个包含客户打开的服务请求,第二个包含客户的订单。 我想在客户名称上合并这两个数据框,但是问题是名称不相同,因为它们来自两个不同的来源。 只是一个虚构的例子:数据框1可以有“ Facebook,Inc.”。数据框2可以是“ facebook社交媒体”。

我尝试使用SequenceMatcher(从difflib导入SequenceMatcher)在数据帧1中以每个客户的比率最高的结果进行搜索,但是准确性不够好。

我很高兴听到遇到相同问题的人们的想法。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用fuzzywuzzy库或经过优化的editdistance包中的Levenstein距离。优化的Levenstein距离仅使用最后两行,而不是经典的二维矩阵。为了计算相似度,请使用下一个公式:

ratio = 1 - levenstein(a, b) / max(len(a), len(b))

此外,您可以使用Damerau-Levenstein修改。它允许计算字符转置而不是删除/插入操作。

https://pypi.org/project/pyxDamerauLevenshtein/