Levenshtein将Python UDF作为SQL连接中的模糊匹配代理

时间:2018-02-09 15:32:24

标签: python sql statistics amazon-redshift levenshtein-distance

我遇到了一篇论坛帖子,其中介绍了在Redshift中创建Python UDF的方法:https://community.periscopedata.com/r/y715m2

有关Redshift中的Python UDF的更多信息:https://docs.aws.amazon.com/redshift/latest/dg/udf-python-language-support.html

我通过函数检查了一些输出(比如select public.levenshtein('walk', 'cake')) - 它运行得很好。

我希望在t1.first_name+last_name = t2.first_name+last_name上的两个表之间的连接中使用此概念进行模糊匹配。

是否有人熟悉一个“魔法范围”(或者可以根据经验提出一些建议),其中记录应该被视为可能的匹配?即。什么应该将min和max levenshtein(s,t)视为可能的匹配。

1 个答案:

答案 0 :(得分:1)

这取决于您的具体情况。当您提供训练数据集时,可以将其视为一个简单的机器学习问题 - 您可以针对数据运行该函数以查看不同类型对的值,并根据该值设置范围。如果您匹配名称,则错误的成本非常高,无论是假阴性(对同一个人不匹配)还是误报(对不同的人匹配)的情况,所以我会选择soundexleuvenstein。 AFAIK Leuvenstein距离对于非常不同的姓氏,如果它们仅在一个字母中不同,则它们将等于1,但这可能是两种情况 - 当姓氏实际上相同但拼写不同时,或者当姓氏实际上不同但是差异时是一封信。 Soundex更适合区分这类案件。