匹配模糊字符串

发布于 2024-12-28 01:14:01 字数 216 浏览 1 评论 0原文

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

谢谢。

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

I have two tables that I need to merge together in PostgreSQL, on the common variable "company name." Unfortunately many of the company names don't match exactly (i.e. MICROSOFT in one table, MICROSFT in the other). I've tried removing common words from both columns such as "corporation" or "inc" or "ltd" in order to try to standardize names across both tables, but I'm having trouble thinking of additional strategies. Any ideas?

Thanks.

Also, if necessary I can do this in R.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

做个ˇ局外人 2025-01-04 01:14:01

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

fuzzystrmatch 文档

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

例如,距离 < strong>MICROSOFT 到 MICROSFT 是一 (1)。

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

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

Have you considered the fuzzystrmatch module? You can use soundex, difference, levenshtein, metaphone and dmetaphone, or a combination.

fuzzystrmatch documentation

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

For example the levenshtein distance from MICROSOFT to MICROSFT is one (1).

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

The above returns zero (0). Combining levenshtein and dmetaphone could help you match lots of misspellings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文