gpt4 book ai didi

sql - 模糊匹配两个哈希表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:33 25 4
gpt4 key购买 nike

我正在寻找有关如何最好地匹配包含字符串键/值对的两个哈希表的想法。

这是我面临的实际问题:我将结构化数据导入到数据库中。我需要更新数据库中已有的记录,但是,源中的任何值都可能发生变化,因此我没有可靠的 ID。

我正在考虑模糊匹配两行,source 和 DB,并做出“有根据的”猜测是否应该更新或插入。

任何想法将不胜感激。

解决方案

解决方案基于 Ben Robinson 的帖子。工作得很好,允许在这里和那里有小的不匹配以及基于自定义键的权重。

require 'rubygems'
require 'amatch'

class Hash
def fuzzy_match(hash, key_weights = {})
sum_total = 0
sum_weights = 0

self.keys.each do |key|
weight = key_weights[key] || 1
next if weight == 0

weight *= 10000
match = self[key].to_s.levenshtein_similar(hash[key].to_s) * weight
sum_total += match
sum_weights += weight
end

sum_total.to_f / sum_weights.to_f
end
end

最佳答案

我用过 Levenshtein Distance最近在做模糊匹配。我计算两个可能的匹配字符串之间的距离,并为匹配项提供一个与距离成反比的分数。然后我做一个 weighted average跨字段的分数以确定记录的分数,并允许更重要的字段比不太重要的字段更重要。它用于 CRM 应用程序,其中有来自许多不同来源的潜在客户。客户需要将这些与现有的潜在客户/机会/客户/经销商等进行匹配。需要对匹配分数和不匹配分数的阈值进行一些调整。最后,我们得到了大约 1% 的误报率,我认为这确实非常好。

关于sql - 模糊匹配两个哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com