我目前正致力于开发一个价格比较网站,我会抓取一些电子商务网站并从其HTML页面中提取一些数据,如价格,标题,元数据等。我现在需要两个识别从不同网站抓取的两个产品实际上是相同的,并为它们分配一个共同的标签
例如,假设站点1具有以下字符串作为产品的标题:
“智能手机三星Galaxy S6 4G 32GB ”
并且站点2具有该字符串作为同一产品的标题:
“三星Galaxy S6 White ”
如何确定这两种产品是否实际上是同一产品,我想在我的网站上将其标记为“Samsung Galaxy S6”? 我曾想过使用一些机器学习技术,如分类或聚类。但是,分类可能需要大量已经格式良好的产品标签(加上经常更新的)作为可能的类别,例如班级“三星Galaxy S6 ”,有这样的事吗?此外,如此庞大的课程数量可能也不可行。
我使用Apache Nutch 进行抓取,使用 Solr 进行索引和搜索。如果有任何特定的图书馆或工具,那将是非常有帮助的,但我的问题不是专门针对那些人,我将非常乐意阅读任何建议。
由于
答案 0 :(得分:1)
我为我的项目做了类似的事情,我们用他们的ID标记人名,所以基本上同一个人可以将他们的名字列为全名或姓名首字母,或者只列出名字等等。我们将其标记为相同的ID。
因此,对于您的情况,这基本上需要为您的产品构建倒排索引,然后扫描产品名称的标题字段并将其标记为特定产品ID。这样三星Galaxy S6就可以映射到同一产品。
这不需要进行任何学习,只需要让数据库从中获取所有独特的产品,并在产品数据库发生变化时不断更新索引。
所有这些都可以通过为solr编写更新处理器在索引时完成。
实施起来有点复杂,所以我刚刚概述了可以帮助你的基本想法。