在公用变量“公司名称”上,我有两个需要在PostgreSQL中合并在一起的表。不幸的是,许多公司名称不完全匹配(即,一个表中为MICROSOFT,另一表中为MICROSFT)。我试图从两列中删除常用词,例如“corporate”或“inc”或“ltd”,以便在两个表中标准化名称,但是我在考虑其他策略时遇到了麻烦。有任何想法吗?

谢谢。

另外,如有必要,我可以在R中执行此操作。

最佳答案

您是否考虑过Fuzzystrmatch模块?您可以使用soundexdifferencelevenshteinmetaphonedmetaphone或它们的组合。

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/

10-13 04:10