繁体   English   中英

Python 深度学习查找重复项

[英]Python Deep Learning find Duplicates

我想尝试用 Python 学习深度学习。 对于一个有用的场景,我想到的第一件事就是重复检查。

假设您有一个包含姓名、地址、电话、电子邮件的客户表,并且想要插入新客户。 例如:

In Table:
Max Test,Teststreet 5, 00642 / 58458,info@max.de
To Insert:
Max Test, NULL, (+49)0064258458, test@max.de

这应该被识别为重复条目。

是否已经有针对此用例的教程? 或者甚至可以通过深度学习来实现?

重复匹配是相似匹配的一种特例。 您可以将输入特征定义为单个字符或字段,然后训练您的网络。 这是一个二元分类问题(真/假),除非你想要一个相似度得分(95% 匹配)。 网络应该能够了解到标点符号和空格是不相关的,并且是至少一个匹配字段的“或函数”,以产生真正的正例。

听起来像是深度学习的一个相当简单的案例。

我不知道任何具体的教程,但我试图给你一些关键字来寻找。

您可以使用duplicates=dataset.duplicated()

它将返回所有重复的行

然后:

print(sum(duplicates))

打印重复行的计数。

在您的情况下,查找数字和类别数据的重复项应该更简单。 当它是自由文本时就会出现问题。 我认为您应该首先尝试模糊匹配技术。 Python 中有一个很好的距离度量标准,称为 Levenshtein 距离。 计算距离的库是python-Levenshtein。 它非常快。 看看使用这个距离度量是否能得到好的结果,如果你想进一步改进,你可以使用深度学习算法,如 RNN、LSTM 等,这些算法对文本数据有好处。

在关系数据库中寻找重复实例的问题是数据库和数据挖掘中的一个传统研究课题,称为“实体匹配”或“实体解析”。 深度学习也适用于该领域。

谷歌学者搜索“实体匹配”+“深度学习”可以找到很多相关的作品

我认为构建一些函数更容易,他们可以检查不同的输入方案,而不是训练一个网络来这样做。 困难的部分是构建足够大的数据集来正确训练您的网络。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM