3

我需要创建一个与亚马逊、佣金连接和链接共享 API 和数据提要的数据库,然后匹配相同的产品以创建产品信息的比较。我的问题与匹配过程有关。我首先通过 SKU/UPC/ASIN 匹配产品,但这表现不佳,因为许多产品不包含此信息。我做了一些研究,发现最流行的技术是:

- 通过 TF-IDF 测量余弦相似度

-测量编辑距离/ levenshtein / Jaro-Winkler

在这项技术中,我使用了余弦相似度和 Jaro-Winkler

我如何进行匹配:

第 1 步:预处理

预处理将字符串转换为正常形式: 小写  过滤停用词(new、by、the ...)  去除空格  用单个空格字符替换所有出现的空格

第 2 步,索引:

在 Solr 核心 [核心 A] 和 CJ/Linkshare [核心 B] 中索引另一个核心中的亚马逊产品。索引的目标是限制字符串比较的次数(通过 TF-IDF 和 Jaro-Winkler)

第三步,匹配:

  1. 我首先从核心 B 中检索产品标题,使用该标题在核心 A 中进行 solr 搜索,然后获取前 30 个结果。
  2. 我通过 TF-IDF 测量我想要匹配的产品(查询)和 solr 搜索检索到的 30 个结果之间的相似性。我保留相似度 > 80% 的产品
  3. 按字母顺序对每个产品中的标记进行排序。然后将转换后的字符串与 Jaro Winkler 距离进行比较,并保持产品的相似度 > 80%(==> 这会在短语之间执行 Jaro Winkler 相似度)
  4. 在这里,我对两个字符串(要匹配的查询和产品)进行标记,并在标记之间进行比较。

但这种技术也表现不佳。示例:产品 1:Hugo Boss 的橙色,3 盎司淡香水喷雾 产品 2:Hugo Boss 的 In Motion Orange 淡香水喷雾 3 盎司

通过这种技术,产品 1 和 2 是相似的,但实际上它们是不同的。

我该如何改进这个算法?这是匹配产品的正确方法吗?如果我训练一个具有令牌权重的分类器(使用 Jaro Winkler)(通过 UPC 从匹配的产品中学习数据)并在最后一步使用这个分类器来匹配产品?

PS:我有不同类别的产品(健康、美容、电子产品、书籍、电影......),数据非常非结构化或不完整。

任何建议都会有所帮助

谢谢

邮件

4

0 回答 0