Algorithm 不一致数据集的记录匹配算法
我正在处理大量的产品数据集(约100万)。这些产品来自许多不同的来源,因此它们在表中列出数据的方式不一致。其中一个大问题是产品品牌名称的差异(约17000个独特品牌)。一些品牌有多达10个差异需要关联在一起 问题:Algorithm 不一致数据集的记录匹配算法,algorithm,pattern-matching,string-matching,Algorithm,Pattern Matching,String Matching,我正在处理大量的产品数据集(约100万)。这些产品来自许多不同的来源,因此它们在表中列出数据的方式不一致。其中一个大问题是产品品牌名称的差异(约17000个独特品牌)。一些品牌有多达10个差异需要关联在一起 问题: 不一致间距: 喷射沸腾VS喷射油 标点符号:格兰杰VS格兰杰 噪音词:北面VS北面 分类系统:无敌舰队VS无敌雪橇 符号:菲尔和泰德与菲尔和泰德 拼写错误:巴塔哥尼亚VS帕特戈尼亚 其他奇怪之处:贝尔体育VS贝尔体育#81037 示例数据集 后果(如评论中所述) 不正确的关联
后果(如评论中所述)
- 不正确的关联将导致在产品搜索中显示不相关的品牌,从而削弱表示层的可用性
- 缺少关联将导致同一品牌在过滤器列表中多次显示,从而削弱表示层的可用性
欢迎使用任何可能有帮助的算法、软件模式或过程 好吧,我的方法是使用一些距离度量来量化短语之间的相似性,然后根据它们的距离对术语进行聚类 您可以从一个经典的文本度量开始,比如Levenshtein距离(您可以很容易地找到许多实现),它基本上是编辑距离,或者从一个字符串到另一个字符串所需的操作数,其中操作可以是替换、插入或删除 从你给出的例子来看,Levenshtein似乎是合理的 对于集群来说,有大量的算法,同样,谷歌很容易找到大量的实现。聚类基本上是在一定的距离度量下查找彼此接近的对象组(簇)。在您的案例中,这些术语组彼此相似 一旦看到结果,您可以尝试使用您对数据的了解进行手动调整(例如指定“&”接近“and”等),从而稍微调整一下距离度量
祝你好运 1、2、3和5看起来很容易。我不明白。6可以通过字典或百科全书资源文件(查找最接近的匹配项)修复。7:同样的情况?简单。是基本品牌名称与品牌+他们的产品。EX:LiquidLogic vs LiquidLogic Kayak。他们是同一品牌,需要联系在一起。看看我刚才添加的数据集。增加了复杂性,因为你有像Columbia vs Columbia River Sports这样的品牌匹配,实际上是两个不同的品牌。你可以解析所有不同的单词,然后放入哈希表中。然后重新开始,但这次使用哈希表/哈希映射来比较解析的行。然后,对于每一个相似的单词,你会添加另一个更深的分支。你需要知道的一件有用的事情是:1,缺少有效名称匹配的后果;第二,错误匹配的后果。我认为这些可能会影响任何算法。即使是采用神经网络来学习所有单词也会很好。
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