产品价格比较工具:匹配相同商品的难题

我正在开发一个电商产品价格比较工具(使用Python),这个工具与camelcamelcamel.com有些相似,既是为了乐趣也是为了盈利。我在尝试从多个网站使用搜索词收集的列表中匹配相同商品时遇到了困难。我目前使用的是余弦相似度,并且考虑使用莱文斯坦算法来进行产品匹配,通过比较各个商品的标题来找出相同的商品。

例如,我有以下商品及其价格值,如下所示:

{    product_0: {        title: "Apple MacBook Air MMGF2HN/A 13.3-inch Laptop (Core i5/8GB/128GB/Mac OS X/Integrated Graphics)",        price: "xxxx",    },    product_1: {        title: "Apple MacBook Air MMGF2HN/A 13.3-inch Laptop (Core i5/8GB/128GB/Mac OS X/Integrated Graphics) cover",        price: "xyzy"    },    product_2: {        title: "Apple Macbook Air MMGF2HNA Notebook (Intel Core i5- 8GB RAM- 128GB SSD- 33.78 cm(13.3)- OS X El Capitan) (Silver)"        price: "xxyy"    },    product_3: {        title: "....",        price: "...."    },    ...    product_99: {        // product title and price    }}

当我对上述商品列表(数据)使用余弦相似度时,得到的值如下:

cosine(product_0 * product_1) = 0.973328526785cosine(product_0 * product_2) = 0.50251890763

但实际上,product_0product_1是两种不同的商品,但它们的余弦相似度值显示它们是相同的商品;而product_0product_2来自同一实体,但它们的余弦值显示它们是两种不同的商品。

我一直试图自己解决这个问题,我想在这里的stackoverflow上寻求一些建议/意见。我使用余弦相似度来匹配商品的相似性是否正确?如果不是,请指导我正确的方向。

我的基本想法是针对相同商品进行价格比较,即对各种相似产品进行语义分析。

感谢您的宝贵时间。


回答:

您可以对商品标题进行word2vec训练。使用Python的word2vec封装器时,结果代码看起来会像这样,而使用Gensim的model.word2vec时会略有不同但相似:

indexes, metrics = model.cosine(normalized_phrase)model.generate_response(indexes, metrics)

生成的响应将是按降序余弦相似度排序的标题向量。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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