我有两个表需要在 PostgreSQL 中的公共变量“公司名称”上合并在一起。不幸的是,许多公司名称并不完全匹配(即一张表中为 MICROSOFT,另一张表中为 MICROSFT)。我尝试从两列中删除常用词,例如“corporation”或“inc”或“ltd”,以便尝试标准化两个表中的名称,但我无法考虑其他策略。有任何想法吗?
Thanks.
另外,如果有必要,我可以在 R 中执行此操作。
您考虑过 fuzzystrmatch 模块吗?您可以使用soundex
, difference
, levenshtein
, metaphone
and dmetaphone
,或组合。
模糊匹配文档 http://www.postgresql.org/docs/8.3/static/fuzzystrmatch.html
SELECT something
FROM somewhere
WHERE levenshtein(item1, item2) < Carefully_Selected_Threshold
例如,编辑距离微软 to MICROSFT是一 (1)。
levenshtein(dmetaphone('MICROSOFT'), dmetaphone('MICROSFT')
以上返回零 (0)。结合使用 levenshtein 和 dmetaphone 可以帮助您匹配大量拼写错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)