8
我有两个表,我需要在PostgreSQL中合并在公共变量“公司名称”上。不幸的是,许多公司名称并不完全匹配(即一张表中的MICROSOFT,另一张中的MICROSFT)。我尝试从“公司”或“inc”或“ltd”这两个栏目中删除常见单词,以试图在两个表格中标准化名称,但我在考虑其他策略时遇到了麻烦。有任何想法吗?匹配模糊字符串
谢谢。
另外,如果需要的话我可以在R.
我有两个表,我需要在PostgreSQL中合并在公共变量“公司名称”上。不幸的是,许多公司名称并不完全匹配(即一张表中的MICROSOFT,另一张中的MICROSFT)。我尝试从“公司”或“inc”或“ltd”这两个栏目中删除常见单词,以试图在两个表格中标准化名称,但我在考虑其他策略时遇到了麻烦。有任何想法吗?匹配模糊字符串
谢谢。
另外,如果需要的话我可以在R.
做到这一点你有没有考虑在fuzzystrmatch模块?您可以使用soundex
,difference
,levenshtein
,metaphone
和dmetaphone
或其组合。
SELECT something
FROM somewhere
WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold
例如从MICROSOFT到的Microsft的Levenshtein距离是一(1)。
levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')
以上返回零(0)。结合levenshtein和dmetaphone可以帮助你匹配大量的拼写错误。
另请考虑pg_trgm,我在重复数据删除方案中取得了很大的成功。 – maniek