我偶然看到一个论坛帖子,它描述了一种在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上的两个表之间的joins中使用这个概念进行模糊匹配。
有没有人熟悉一个“神奇的范围”(或者可以从经验中提出一些建议),在这个范围内,一项记录应该被认为是可能的匹配?即。最小和最大levenshtein (s,t)应该被认为是可能的匹配。
发布于 2018-02-10 01:03:55
这取决于你的具体情况。当您提供训练数据集时,可以将其视为一个简单的机器学习问题-您可以对数据运行该函数,以查看不同类型对的值,并基于此设置范围。如果你正在匹配名字,那么错误的代价是相当高的,无论是假阴性(同一个人不匹配)还是假阳性(不同人匹配),所以我会使用soundex而不是leuvenstein。对于非常不同的姓氏,如果只有一个字母不同,AFAIK Leuvenstein距离将等于1,但这可以是两种情况-当姓氏实际上相同但拼写不同时,或者当姓氏实际上不同但差异是一个字母时。Soundex更适合于区分这类情况。
https://stackoverflow.com/questions/48709146
复制相似问题