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

我目前正在开发一个价格比较网站,为此我爬取了一些电子商务网站,并从它们的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

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

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