我有关于联属网络营销数据源的问题。
例如来自亚马逊或其他电子商店合作伙伴。我正在尝试导入他们的产品数据,但希望避免重复(如果两家商店销售相同的产品)。
例如亚马逊:产品标题:iPhone 5 16GB 黑色
而另一家商店使用产品标题:iPhone 5 16GB
。
它们应该被列为一种产品,现在假设我有 10 家商店销售 iPhone 5。
当然它们还有更多的参数。我仍然需要一种算法来防止这种情况发生。就像产品参数的相似度匹配算法。
有谁有这方面的经验并可以告诉我,对于这种情况可以建议哪种算法?
可以在此处找到详细的参数列表GET Products
Documentation WebApi
非常感谢!
可以通过EAN号码来完成,但是如果没有提供这个号码怎么办。
最佳答案
在开发算法之前,您需要定义业务规则。如果您的情况是除标题之外的所有属性都匹配,那么您可以尝试对标题进行子字符串(一个是另一个的一部分)匹配或模糊匹配。
我们使用模糊字符串匹配 gem 来查找重复的公司。
假设差异仅存在于标题上,您可以通过分析标题部分来为算法注入(inject)更多智能。在您的示例中,标题部分可以是型号、版本、容量和颜色。对于这个例子:
required_attributes = [model, version, capacity]
optional_attributes = [color]
并定义每个产品类别的属性。将此与模糊匹配相结合,即使存在拼写错误,您也应该能够获得良好的匹配,并且以下内容应该匹配:
iPhone 5 16GB Black
iPhone 5 16GB
iPone 5 16GB White
关于mysql - Rails : A way to check for duplicate item in DB? 联盟数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067647/