使用 python 或其他 etl 工具进行非结构化数据比较

unstructured data comparision using python or other etl tools

我正在收集与来自不同供应商的电子产品相关的数据(来自网站或 API),我需要一种方法来从每个供应商中找到类似的产品,并 link 在主数据库中找到它们。例如:供应商 1 列出的名称为 'Samsung galaxy Note 4 ',供应商 2 列出的名称为 'galaxy note 4 black 16 GB',供应商 3 的名称为 'galaxy note 4',我需要将它们全部 link 作为单个产品存储参考不同的供应商。我进行了搜索,发现可以使用 Talend 和 Kettle 等 ETL 并使用 levenshtein、metaphone 等算法或使用 python 的 FuzzyWuzzy 来完成此类分析。它适用于不到 50% 的数据。我的问题是

  1. 在这种情况下,我应该使用什么类型的工具或包来获得最佳结果?
  2. 无论工具或代码有多好,正确性的最终决定都必须由人来决定,有没有更简单的方法来使用 GUI 作为最终检查来实现此映射。例如在 python 中,类似于连接到两个表并在 ui(浏览器)中显示该数据并允许用户拖放到正确的数据。

我正在寻找包或工具的名称来帮助我处理问题。 我将非常感谢您的回答。

如果您已经在使用 Talend,可以使用一些组件对您的数据执行模糊匹配。 tFuzzyMatch 适用于所有用户。 tRecordMatching 和 tMatchGroup 可供平台产品客户使用。

首先,您可以使用 tFuzzyMatch 将主流中的列与查找流中的参考列进行比较,并输出显示距离的主流数据。匹配类型包括 Levenshtein、Metaphone 和 Double Metaphone。您将在 Talend 帮助中心找到围绕 Levenshtein 和 Metaphone 的场景:https://help.talend.com/display/TalendComponentsReferenceGuide60EN/tFuzzyMatch

此外,tFuzzyMatching 和 tRecordMatching(对于平台客户:https://help.talend.com/display/TalendComponentsReferenceGuide60EN/tRecordMatching ) are capable of matching data records between different data sources. tMatchGroup ( for Platform customers: https://help.talend.com/display/TalendComponentsReferenceGuide60EN/tMatchGroup)可以在单个数据源中找到相似的数据记录。