Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Levenshtein-distance-Python-UDF作为SQL连接中的模糊匹配代理_Python_Sql_Statistics_Amazon Redshift_Levenshtein Distance - Fatal编程技术网

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

Levenshtein-distance-Python-UDF作为SQL连接中的模糊匹配代理,python,sql,statistics,amazon-redshift,levenshtein-distance,Python,Sql,Statistics,Amazon Redshift,Levenshtein Distance,我看到一篇论坛帖子,描述了一种用红移创建Python UDF的方法: 有关红移中Python UDF的更多信息: 我通过select public.levenshtein'walk'、'cake'-等函数检查了许多输出,效果非常好 我希望在t1上的两个表之间的联接中使用这个概念进行模糊匹配。first_name+last_name=t2。first_name+last_name 是否有人熟悉一个神奇的范围,或者可以从经验中提出一些建议,其中一个记录应该介于两者之间,以被视为可能的匹配?也就是说,

我看到一篇论坛帖子,描述了一种用红移创建Python UDF的方法:

有关红移中Python UDF的更多信息:

我通过select public.levenshtein'walk'、'cake'-等函数检查了许多输出,效果非常好

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


是否有人熟悉一个神奇的范围,或者可以从经验中提出一些建议,其中一个记录应该介于两者之间,以被视为可能的匹配?也就是说,最小和最大levenshtein s,t应被视为可能的匹配。

这取决于您的具体情况。当您提供一个训练数据集时,可以将其视为一个简单的机器学习问题—您可以针对数据运行该函数,以查看不同类型对的值,并根据该值设置范围。如果你匹配名字,错误的代价是相当高的,无论是同一个人的假阴性不匹配,还是不同人的假阳性匹配,所以我选择soundex而不是leuvenstein。如果姓氏仅在一个字母上不同,那么对于非常不同的姓氏,AFAIK-Leuvenstein距离将等于一,但这可能是两种情况——姓氏实际上相同,但拼写不同,或者姓氏实际上不同,但差异是一个字母。Soundex更适合区分此类情况。

谢谢;我需要像Levenstein这样的soundex的UDF吗?有关于在Redshift中实现soundex的信息吗?试试我熟悉的fuzzy for Python;有没有办法知道实际创建包的代码?因为我需要它才能在Redshifttry中创建一个用户定义的函数。下载包并作为自定义库上传?哇,我不知道这是可能的