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

时间:2015-10-28 11:31:46

标签: python etl data-analysis

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

  1. 在这种情况下,我应该使用什么类型的工具或包来获得最佳效果?
  2. 无论工具或代码有多好,最终必须由人做出关于正确性的决定,是否有更简单的方法来使用GUI作为最终检查来实现此映射。例如在python中就像连接到两个表并在ui(浏览器)中显示数据并允许用户拖放到正确的数据。
  3. 我正在寻找帮助我解决问题的软件包或工具的名称。 我真的很感激anwser。

1 个答案:

答案 0 :(得分:0)

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

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

此外,tFuzzyMatching和tRecordMatching(对于平台客户:https://help.talend.com/display/TalendComponentsReferenceGuide60EN/tRecordMatching)能够匹配不同数据源之间的数据记录。 tMatchGroup(适用于平台客户:https://help.talend.com/display/TalendComponentsReferenceGuide60EN/tMatchGroup)可以在单个数据源中找到类似的数据记录。