我正在尝试编写一个简单的程序来比较不同供应商的产品价格。 不同的供应商可能会将同一产品称为不同的东西。
例如,以下三个字符串指的是同一产品:
或者以下两个字符串是相同的产品:
此外 - 有些产品不一样,但相似(例如,Full Cream 2L Milk可能包含各种类似产品。)
我对每种产品的唯一信息是标题和价格。
目前推荐的匹配产品字符串的技术是什么?
从我的谷歌搜索和阅读其他SO线程,我发现:
您会使用上述技术之一,还是会使用其他技术?
此外,有没有人知道任何示例代码,甚至是这类问题的库?我似乎找不到任何东西。
(例如,我看到有些人在计算大型数据集的Jaro-Winkler距离时遇到了性能问题。我希望可能存在算法的分布式实现(例如使用Mahout),但不是'能找到具体的东西。)
答案 0 :(得分:6)
您会使用上述技术之一,还是会使用其他技术?
如果我真的这样做,我就不会用太多的机器学习。我敢肯定大多数大公司都有一个品牌和产品名称的数据库,并使用它来相当容易地匹配。可能需要一些数据卫生 - 但它不是ML问题。
如果您没有该数据库,我会说简单。将所有内容转换为要素向量并执行最近邻搜索。使用它来创建一个工具来帮助您创建数据库。 IE:你自己将第一个“A2全脂牛奶2L”标记为“牛奶”,然后看看它最近的邻居是否是牛奶。给自己一个快速标记“是”和“需要审核”的方法,或者类似的选项。
对于您建议的简单数据,它可以在90%的时间内工作 - 您应该能够轻松地获取数据。我做过类似的工作,一天就标出数千份文件。
拥有自己的数据库后,解决这些问题应该非常简单。您可以重用代码来创建数据库来处理“看不见的”数据。