簡體   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