【问题标题】:What kind of model/technique should I use to compare supermarket product names [closed]我应该使用什么样的模型/技术来比较超市产品名称[关闭]
【发布时间】:2020-03-17 13:17:19
【问题描述】:

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

我想在这些超市之间进行价格比较,但是,我需要知道超市 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. 如果一个词的频率
  6. 使用这些词,我创建了一个字典(词袋),我将使用它来将一组词(转换后的句子)映射到特征向量。
  7. 然后我“训练”一个包含所有特征向量的 TFIDF 模型。
  8. 进行比较(没有很好的结果)。

我使用 python 作为 LP 和 gensim 来创建模型、字典(词袋)并进行比较。

编辑: 另一个例子:

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

【问题讨论】:

  • 我担心的也是因为 TFIDF 有很多上下文感知,我认为对于这种情况没有必要或不合适。
  • 你还有更多的例子吗?因为在您的示例中,没有任何 ML 的两个字符串之间的简单比较就足够了。
  • Leche Fresca UHT GLORIA Entera Bolsa 946 毫升 == Leche Entera UHT Gloria Bolsa 946 毫升 | Yogurt Griego Gloria con Miel y Granola Vaso 115 g == 酸奶 Griego GLORIA Batido con Miel Vaso 115g | Leche sin Lactosa GLORIA Mocaccino Botella 330 毫升 == Shake Mocaccino UHT Gloria Frasco 330 毫升。 @ThomaS
  • 将这些示例添加到您的问题中。不过,您可能对 Levenshtein 距离感兴趣。

标签: python machine-learning nlp artificial-intelligence gensim


【解决方案1】:

我认为这个问题的一个很好的解决方案是根据相似度分数比较产品。例如,我会使用Jaro-Winkler distance 比较两个产品描述,如果描述与定义的阈值匹配,我会比较价格。

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 2010-09-06
    • 2011-04-02
    相关资源
    最近更新 更多