应该使用哪种模型/技术来比较超市产品名称

我有一个包含超市产品项目的数据库(包括名称、描述、价格、库存等)。

我想在这些超市之间进行价格比较,但为此我需要知道超市A和B是否指的是同一个产品。

例如,我发现超市A有一个名为Leche Evaporada GLORIA Azul Paquete 6un Lata 400g的产品,而超市B有一个名为Leche Evaporada Gloria Azul Pack 6 Unid x 400 g的产品,这些指的是同一个产品。

我指出我将需要对这些情况进行语义比较。我对这类问题是新手,所以我真的不知道什么是最好的解决方案,以免低估问题或过度处理它。

我目前正在做的事情效果不是很好:

  1. 我只使用产品名称。
  2. 从这些产品名称中删除停用词。
  3. 将句子转换为单词数组。
  4. 获取每个单词的频率。
  5. 如果一个单词的频率<=1,则删除它。
  6. 用这些单词创建一个字典(词袋),我将用它来将一个单词数组(转换的句子)映射到一个特征向量上。
  7. 然后我用所有特征向量“训练”一个TFIDF模型。
  8. 进行比较(结果不佳)。

我使用Python作为编程语言,并使用gensim来创建模型、字典(词袋)和进行比较。

编辑:其他例子:

Leche Fresca UHT GLORIA Entera Bolsa 946ml == Leche Entera UHT Gloria Bolsa 946 mlYogurt Griego Gloria con Miel y Granola Vaso 115 g == Yogurt Griego GLORIA Batido con Miel Vaso 115gLeche sin Lactosa GLORIA Mocaccino Botella 330ml == Shake Mocaccino UHT Gloria Frasco 330 ml.

回答:

我认为解决这个问题的有效方法是根据相似度分数来比较产品。例如,我会使用Jaro-Winkler距离来比较两个产品描述,如果描述匹配到定义的阈值,我会比较价格。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注