匹配来自不同列表的项目

我正在尝试将来自两个不同网站的对象进行配对。由于它们没有使用通用ID,所以我需要手动完成这项工作。

其中一个网站还采用了一种奇怪的方式来内部识别项目。我不知道如何将它们配对。目前,我尝试使用它们似乎共同采用的方式来划分项目:- 类别(室内使用、室外使用、纸张、金属、笔、食品用途等)- 产品(“微软小部件A”、“MS小部件B”)- 项目(10厘米红色、200米蓝色纸制等)

例如,项目可能是同一产品在某个网站(网站A)上的不同尺寸(1.5厘米、10厘米、100厘米),而另一个网站则以不同的方式“分割”。一个产品可以根据数量/颜色/尺寸划分为项目。这意味着我可以有网站A:产品小部件A,红色项目:10厘米、20厘米、100厘米;网站B:产品小部件A,项目:红色10厘米、红色20厘米、红色100厘米、蓝色10厘米、蓝色100厘米

另一个问题是类别定义方式不同,网站A可能称之为“用于水的户外小部件”,而另一个网站则有“户外”和“用于水的小部件”作为子类别。更糟糕的是,它们使用不同的措辞。

目前,为了尝试解决这个问题,我手动将网站A的主要类别与网站B进行配对,并将所有子类别的项目视为父类别的项目。这不是最佳方案,因为网站B的一些类别可能排列不同(例如,有像“相关”这样的子类别,基本上链接到其他主要类别)。对于产品,我只是使用Levenshtein算法比较所有项目的名称,并将匹配度较高的产品组合。我使用网站A来定义如何分组产品,结果不理想,我没有将所有“小部件A”分组在一起,而是为“小部件A,红色”、“小部件A,蓝色”等配对。

有没有人有改进的想法?目前我有的想法是:

  • 创建一个包含产品名称和主要项目特征的大字符串,并再次使用Levenshtein算法。
  • 使用网站B作为主要网站进行比较。

我不是AI专家,但我见过帮助定义对象的算法,但没有一个是用于配对的。我可能需要编写一些东西来分类项目的特征(红色,10厘米)。也许还可以使用类别名称(例如:网站A:“用于水的户外小部件”和网站B:类别:“户外”,产品:“用于水的小部件”)。


回答:

如果有人碰巧阅读到我的问题,我最终使用余弦相似度构建了一些东西。

例如,请看这个:使用sklearn查找两段文本在大量文档中的字符串相似度

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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