gpt4 book ai didi

python - 比较两个名字的相似度并使用神经网络识别重复项

转载 作者:行者123 更新时间:2023-12-05 05:38:25 25 4
gpt4 key购买 nike

我有一个包含成对名称的数据集,它看起来像这样:

ID; name1; name2
1; Mike Miller; Mike Miler
2; John Doe; Pete McGillen
3; Sara Johnson; Edita Johnson
4; John Lemond-Lee Peter; John LL. Peter
5; Marta Sunz; Martha Sund
6; John Peter; Johanna Petera
7; Joanna Nemzik; Joanna Niemczik

我有一些标有标签的案例。所以我手动检查它们并确定它们是否重复。这些情况下的人工判断是:

1: Is a duplicate
2: Is not a duplicate
3: Is not a duplicate
4: Is a duplicate
5: Is not a duplicate
6: Is not a duplicate
7: Is a duplicate

(第7种情况是一个特殊情况,因为这里的语音也进入了游戏。但是,这不是主要问题,我可以忽略语音。)

第一种方法是计算每对的编辑距离并将它们标记为重复项,其中编辑距离例如小于或等于 2。这将导致以下输出:

1: Levenshtein distance: 2 => duplicate
2: Levenshtein distance: 11 => not a duplicate
3: Levenshtein distance: 4 => not a duplicate
4: Levenshtein distance: 8 => not a duplicate
5: Levenshtein distance: 2 => duplicate
6: Levenshtein distance: 4 => not a duplicate
7: Levenshtein distance: 2 => duplicate

这将是一种使用基于 Levinshtein 距离的“固定”算法的方法。

现在,我想使用神经网络/机器学习来完成这项任务:

我不需要神经网络来检测语义相似性,例如“hospital”和“clininc”。但是,我想避免 Levenshtein 距离,因为我希望 ML 算法能够将“John Lemond-Lee Peter”和“John LL. Peter”检测为潜在的重复项,但也不是 100% 确定.在这种情况下,Levenshtein 距离会导致相对较高的数字 (8),因为要添加相当多的字符。在像“John Peter”和“Johanna Petera”这样的情况下,Levenshtein 距离会导致较小的数字 (4),但实际上没有重复,对于这种情况,我希望 ML 算法能够检测到这可能不是重复的。所以我需要 ML 算法来“学习我需要检查重复项的方式”。通过我的标签,我将作为输入为 ML 算法提供我想要的方向。

我实际上认为这对于 ML 算法/神经网络来说应该是一项简单的任务,但我不确定。

如何在不使用显式距离度量(如 Levenshtein 距离、欧氏距离等)的情况下实现神经网络来比较名称对并识别重复项?

我认为可以将字符串转换为数字,神经网络可以使用它并根据我的标签样式学习检测重复项。因此无需指定距离度量。 我想到了一个人:我会把这个任务交给一个人,这个人会判断并做出决定。这个人对编辑距离或任何其他数学概念一无所知。所以我只想训练神经网络来学习做人类正在做的事情。当然,每个人都是不同的,这也取决于我的标签。

(编辑:到目前为止我看到的机器学习/神经网络解决方案(如 this )使用像 levenshtein 这样的度量作为特征输入。但正如我所说,我认为这应该是可能的在不使用这种距离度量的情况下向神经网络传授“人类判断”?关于我有成对名称的具体案例:使用编辑距离作为特征的 ML 方法有什么好处?因为它只会将那些名字对检测为具有低编辑距离的重复项。因此,如果两个名称之间的编辑距离小于 x,我可以使用简单的算法将一对标记为重复项。为什么改用 ML,会是什么额外的好处?)

最佳答案

根据我的经验,OpenAI 的 GPT-3 可以很好地处理此类任务(我用它来分析天体物理学文本)。你应该用自然语言描述一个任务,然后提供一些例子来进行小样本学习。这是我在 OpenAI Playground 中进行的快速实验(绿色文本由 GPT-3 生成):

enter image description here

关于python - 比较两个名字的相似度并使用神经网络识别重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72914328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com