4

我有电子产品目录。我将它们保存在 SQL DB 中的字段/列中,例如 Title、Mfg Part Nr、UPC 等。然后我通过外部网站爬取列出了例如 Amazon的电子产品。在大多数情况下,这会产生一些 HTML 文本,尽管我可以找出标题。我需要比较这个 HTML 文本(外部网站上的网页的结果)是否描述了我拥有的产品。

我知道这种比较并不准确,即我不希望这能在 100% 的时间内纠正。有没有办法做到这一点?

虽然很难提供一个完整的例子,但让我们将比较限制在两个产品的标题上。

我拥有的标题:摩托罗拉 Talkabout MH230R 便携式 - 双向收音机 - FRS/GMRS 22 频道 - 黄色(3 件装)

亚马逊的标题:摩托罗拉 MH230TPR Giant 可充电两路收音机 3 件装,FRS/GMRS

这些代表相同的产品。有什么方法可以确定这些是否相似/相同?简单的文本比较是行不通的。

如果有工具可以解决这个问题,那就太好了。如果不是,我会很感激我可以用来进一步研究这个领域的算法或一些指针。

我知道 C# 和 Java。在比较图像和寻找最佳点时,我使用了一些与数值分析相关的 AI/神经网络——尤其是反向传播和遗传算法。然而,我不知道如何处理文本数据。

如果这个问题不清楚,请告诉我,我会尽量澄清我的描述。谢谢你们。

4

1 回答 1

1

当然有很多算法可以处理字符串中的文本相似性和距离度量(有关它们的简短列表,请查看 wikipedia)。以下是一些如何更具体地解决该问题的想法:

  • 建立一个包含品牌名称的字典,当两个产品字符串共享相同的品牌名称时,在你的整体相似度函数中赋予它较高的权重。
  • 如果更长的数字匹配,则给它一个高相似度值。
  • 以消除连字符和其他东西的方式规范化输入文本字符串。
  • 使用一种以上的相似性度量。

通常,如果您设法将有关此类字符串的知识放入您编写的代码中,而不是使用通用方法,您将获得更好的结果……但是,由于您来自 AI/神经网络背景……您可以找出什么如果您生成输入字符串的有用描述符,则通过机器学习技术使字符串相似。为此,您需要足够大的已正确分配的匹配产品字符串库。

但也许你需要一些非常简单的东西?然后查看agrep

于 2013-05-06T17:22:45.390 回答