识别网络爬取后的产品,进行价格比较

我目前正在开发一个价格比较网站,为此我爬取了一些电子商务网站,并从它们的HTML页面中提取了一些数据,如价格、标题、元数据等。现在我需要确定从不同网站爬取的两个产品是否实际上是同一个产品,并为它们分配一个共同的标签。
例如,假设网站1的产品标题是以下字符串:
Smartphone Samsung Galaxy S6 4G 32GB
而网站2对同一产品的标题是这个字符串:
Samsung Galaxy S6 White

我如何确定这两个产品实际上是同一个产品,我希望在我的网站上将其标记为“三星Galaxy S6”?我考虑使用一些机器学习技术,如分类或聚类。然而,分类可能需要一组已经格式良好的产品标签(并且需要频繁更新)作为可能的类别,例如类别”Samsung Galaxy S6“,有这样的东西吗?而且有如此多的类别,这可能不可行。

我使用Apache Nutch进行爬取,使用Solr进行索引和搜索。如果有针对这些的特定库或工具,将非常有帮助,但我的问题不仅仅是针对这些,我很乐意阅读任何建议。

谢谢


回答:

我在我的项目中做过类似的事情,我们用ID标记人名,因此同一个人可以用全名、首字母缩写或仅用名字等方式列出,我们将其标记为同一个ID。

因此,对于你的情况,这将涉及为你的产品构建一个倒排索引,然后扫描标题字段以查找产品名称,并将它们标记为特定的产品ID。这样,所有三星Galaxy S6都会映射到同一个产品。

这不需要进行任何学习,你只需要有一个数据库来提取所有独特的产品,并在你的产品数据库发生变化时更新你的索引。

所有这些都可以在索引时通过为Solr编写一个更新处理器来完成。

实现有点复杂,无法在这里全部说明,所以我只是概述了可能对你有帮助的基本思路。

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

发表回复

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