在公用变量“公司名称”上,我有两个需要在PostgreSQL中合并在一起的表。不幸的是,许多公司名称不完全匹配(即,一个表中为MICROSOFT,另一表中为MICROSFT)。我试图从两列中删除常用词,例如“corporate”或“inc”或“ltd”,以便在两个表中标准化名称,但是我在考虑其他策略时遇到了麻烦。有任何想法吗?
谢谢。
另外,如有必要,我可以在R中执行此操作。
最佳答案
您是否考虑过Fuzzystrmatch模块?您可以使用soundex
,difference
,levenshtein
,metaphone
和dmetaphone
或它们的组合。
fuzzystrmatch documentation
SELECT something
FROM somewhere
WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold
例如,从 MICROSOFT 到 MICROSFT 的levenshtein距离为一(1)。
levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')
上面的返回零(0)。结合使用levenshtein和dmetaphone可以帮助您解决许多拼写错误的问题。
关于database - 匹配模糊字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8929573/