mysql - php根據相似性尋找重複資料怎麼實現?

來源:互聯網
上載者:User
關鍵字 php sublime-text mysql nginx
有一個具有幾千條資料的表,資料庫用的mysql,想尋找一個演算法根據資料的相似性尋找重複的資料,並將其羅列出來,有能提供方法或思路的兄弟們歡迎來湊,先謝過了!

回複內容:

有一個具有幾千條資料的表,資料庫用的mysql,想尋找一個演算法根據資料的相似性尋找重複的資料,並將其羅列出來,有能提供方法或思路的兄弟們歡迎來湊,先謝過了!

1.首先,題主應該選一個相似性的計算維度,比如content欄位,type欄位等;
2.其次,題主考慮一下各個欄位的權重,比如type欄位必須相同,則讓type欄位使用typeWeight(例如賦值0.8)作為乘積的因子,而content欄位本身是比較長的,所以需要計算出一個hash值,比如使用md5計算出一個32位hash值,然後把這個hash值按照16進位計算得到10進位數,再給一個權重contentWeight(例如0.2),另外再選取一個欄位,比如description描述欄位,再給一個權重descriptionWeight...
3.最後得到一個當前插入到表中的記錄綜合hash,typeWeight(contentHashcontentWeight+descriptionHash*descriptionWeight +...),可能會涉及到大整數計算,不過PHP有BCMATH擴充可以使用,最終得到一個數值的綜合hash值,儲存到資料庫的一個欄位中,這個東西就可以理解為本條記錄的特徵值。

看你的需求,方法還是挺多而來,比如說2個字串的距離,如漢明距離。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.