Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 不一致数据集的记录匹配算法_Algorithm_Pattern Matching_String Matching - Fatal编程技术网

Algorithm 不一致数据集的记录匹配算法

Algorithm 不一致数据集的记录匹配算法,algorithm,pattern-matching,string-matching,Algorithm,Pattern Matching,String Matching,我正在处理大量的产品数据集(约100万)。这些产品来自许多不同的来源,因此它们在表中列出数据的方式不一致。其中一个大问题是产品品牌名称的差异(约17000个独特品牌)。一些品牌有多达10个差异需要关联在一起 问题: 不一致间距: 喷射沸腾VS喷射油 标点符号:格兰杰VS格兰杰 噪音词:北面VS北面 分类系统:无敌舰队VS无敌雪橇 符号:菲尔和泰德与菲尔和泰德 拼写错误:巴塔哥尼亚VS帕特戈尼亚 其他奇怪之处:贝尔体育VS贝尔体育#81037 示例数据集 后果(如评论中所述) 不正确的关联

我正在处理大量的产品数据集(约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