机器学习与商品归一去重

本文仅提供思路,希望对大家有帮助。

需求

大概需求是爬虫去抓商品,需要判断是否与库中已有商品重复。

每个电商网站都有商品的分类、品牌,标题、价格等基本信息,不同电商信息有细微不同是必然存在的。

思路

转换成机器学习的2分类问题。

已有商品在ES存储,基于新商品的标题、分类、品牌、价格(给一个上下浮动区间),召回相关性最高的N个商品,这一步是粗排。

接下来需要将新商品与N个最可能一样的商品做重复判定,这一步需要分类模型参与,特征的来源主要是商品标题。

特征

同样的商品,其标题在不同电商必然表达略有不同。

我们需要拿着新商品的标题,遍历N个最相似商品的标题,分别用model做分类预测,判断2个标题相似的概率,从而转化成一个2分类问题。

模型的原始输入输出是:

标题1,标题2 -> 相同/不相同

2个文本标题,需要向特征向量做转化,文本到底怎么变成特征呢?

我们可以对标题做几种不同的内容提取:

  • 仅提取中文部分
  • 仅提取英文部分
  • 仅提取数字部分

对于每一种提取内容,我们又有多种很传统的字符串距离算法,比如:

  • cosin距离(需要分词)
  • tf/idf距离(需要分词和词频)
  • 编辑距离
  • 最长匹配

无论如何,你可以在网上找到很多计算2个字符串相似度的算法,每一种距离都可以作为一个特征。

因此,最后我们得到的特征向量大概是这样的:

[中文cosin距离,中文编辑距离,英文cosin距离,英文编辑距离,数字Cosin距离,数字编辑距离…]

所以,现在只需要把特征向量交给model,得到相似/不相似,以及概率分别是多少。

训练

我们用网上的一些训练集来完成model训练,或者从业务中积累一定的这种数据:

文本1,文本2,是否相同

我们按照上述方式转换成特征向量,然后交给分类算法去fit训练一下得到model,整个业务就跑通了。

 

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~