【问题标题】:Record Matching algorithms for an inconsistent dataset不一致数据集的记录匹配算法
【发布时间】:2012-09-01 17:30:18
【问题描述】:

我正在处理大量产品数据集(约 100 万)。这些产品来自许多不同的来源,因此它们列出数据的方式不一致。最大的问题之一是差异产品品牌名称(约 17,000 个独特品牌)。有些品牌有多达 10 个差异需要关联在一起。

问题:


  1. 间距不一致: 喷射沸腾 VS 喷射沸腾
  2. 标点符号:格兰杰VS格兰杰
  3. 噪音词: The North Face VS North Face
  4. 分类法: Armada VS Armada Skis
  5. 符号: Phil and Teds VS Phil&Teds
  6. 拼写错误: Patagonia VS Pategonia
  7. 其他怪事: Bell Sports VS Bell Sports #81037

示例数据集


Black Diamond
Black Diamond (Uda)
Black Diamond Co
Black Diamond Eq Ltd
Black Diamond Eqp #76800
Black Diamond Equipment
Black Dog Machine Llc
Black Dome Press
Black Dot
Black Dragon
Black Fire
Black Flys
Black Forest Girl
Black Gold
Black Hawk Inc.
Black Hills
Black Knight
Black Label
Black Magic
Black Marine
Black Market Bikes
Black Max
Black Opal
Black Ops
Black Rain Ordance Inc.
Black Rain Ordnance
Black Rapid
Black Ribbon
Black Rifle Disease Engineerin
Black River Bucks
Black Seal
Black Seed
Black Swan
Black Tower
Black Widow
Black's

后果(如评论中所建议)

  • 不正确的关联会导致在产品搜索中显示不相关的品牌,从而削弱表示层的可用性
  • 缺少关联会导致同一品牌在过滤器列表中显示多个,从而削弱表示层的可用性

我意识到这是一个很大的问题,可能超出了堆栈溢出文章所能解决的范围,但我正在寻找有关如何解决此问题的灵感。

欢迎任何可能有帮助的算法、软件模式或流程。

【问题讨论】:

  • 1,2,3 和 5 似乎很容易。没看懂 4. 6 可以通过字典或者百科资源文件修复(找最接近的匹配)。 7:同样的情况?容易。
  • 4.是基本品牌名称与品牌+他们制造的东西。例如:LiquidLogic 与 LiquidLogic Kayak。它们是同一个品牌,需要关联在一起。
  • 看看我刚刚添加的数据集。增加了复杂性,因为您有像 Columbia 与 Columbia River Sports 这样的品牌匹配,这实际上是 2 个不同的品牌
  • 您可以解析所有不同的单词,然后放入哈希表中。然后重新开始,但这次你使用你的哈希表/哈希图来比较你解析的行。然后,对于每个相似的词,你会更深地添加另一个分支。
  • 您需要知道的一个有用的事情是: 1,丢失有效名称匹配的后果; 2、匹配错误的后果。我认为这些可能会影响任何算法。

标签: algorithm pattern-matching string-matching


【解决方案1】:

好吧,我的方法是使用一些距离度量来量化短语之间的相似性,然后根据它们的距离对术语进行聚类。

你可以从一个经典的文本度量开始,比如 Levenshtein 距离(你会很容易找到很多实现),它基本上是编辑距离,或者你需要从一个字符串到另一个字符串的操作数,其中一个操作可以是替换、插入或删除。

从你给出的例子来看,Levenshtein 似乎是合理的。

对于聚类有大量的算法,这很容易通过谷歌搜索并找到大量的实现。聚类基本上是找到在一定距离度量下彼此接近的对象组(集群)。在您的情况下,这些将是彼此相似的术语组。

看到结果后,您可以尝试通过使用您对数据的了解进行手动调整(例如指定“&”接近“and”等)来稍微调整距离度量。

祝你好运!

【讨论】:

  • 即使调整神经网络来学习所有单词也可能很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
  • 2023-03-13
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
相关资源
最近更新 更多