【问题标题】:Matching fuzzy strings匹配模糊字符串
【发布时间】:2012-02-14 07:40:30
【问题描述】:

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

谢谢。

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

【问题讨论】:

    标签: database string postgresql matching fuzzy


    【解决方案1】:

    您考虑过fuzzystrmatch 模块吗?您可以使用soundexdifferencelevenshteinmetaphonedmetaphone,或组合使用。

    fuzzystrmatch documentation

    SELECT something
    FROM somewhere
    WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold
    

    例如,从 MICROSOFTMICROSFT 的 levenshtein 距离是一 (1)。

    levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')
    

    以上返回零 (0)。结合使用 levenshtein 和 dmetaphone 可以帮助您匹配很多拼写错误。

    【讨论】:

    • 另外考虑 pg_trgm ,我在重复数据删除方案中取得了很大的成功。
    猜你喜欢
    • 2014-11-02
    • 2018-05-31
    • 2021-04-19
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多