【发布时间】:2012-09-01 17:30:18
【问题描述】:
我正在处理大量产品数据集(约 100 万)。这些产品来自许多不同的来源,因此它们列出数据的方式不一致。最大的问题之一是差异产品品牌名称(约 17,000 个独特品牌)。有些品牌有多达 10 个差异需要关联在一起。
问题:
- 间距不一致: 喷射沸腾 VS 喷射沸腾
- 标点符号:格兰杰VS格兰杰
- 噪音词: The North Face VS North Face
- 分类法: Armada VS Armada Skis
- 符号: Phil and Teds VS Phil&Teds
- 拼写错误: Patagonia VS Pategonia
- 其他怪事: 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