更新:我現在已經寫了一個PHP擴展名爲php_ssdeep爲ssdeep C API,以方便在PHP模糊哈希和哈希比較本身。可以找到更多的信息over at my blog。我希望這對人們有幫助。在文檔管理應用程序檢查文檔的重複和類似文件
我參與編寫一個自定義文檔管理應用程序在Linux上,它將存儲各種文件格式(潛在的1000個文件),並且我們需要能夠檢查文本文件是否已經上傳以防止數據庫中的重複。
本質上講,當一個用戶上傳,我們希望能夠與那些要麼重複或包含類似內容的文件列表展示他們的新文件。這將允許他們選擇其中一個已存在的文件或繼續上傳自己的文件。
類似的文件將通過其類似sentances也許關鍵字動態生成的列表內容尋找確定。然後,我們可以向用戶顯示百分比匹配,以幫助他們找到重複項。
你能推薦這個過程中的任何包和一個如何在過去所做的任何想法?
直接重複我認爲可以通過獲取所有文本內容和
- 剝離空白
- 刪除標點
- 轉換爲大寫或小寫
然後形成一個完成MD5哈希與任何新文檔進行比較。如果用戶編輯文檔以添加額外的段落符號,則將這些項目剝離應有助於防止找不到模糊。有什麼想法嗎?
此過程也可能作爲夜間工作運行,如果計算要求太高而無法實時運行,我們可以在下次登錄時通知用戶任何重複項。然而,實時將是首選。
使用MD5散列只會幫助您處理兩個完全相同的文檔。如果只有一個字符不同,則生成的MD5散列並不相近(這是散列點之一)。因此,這不適合尋找類似的文件... – Franz 2009-11-13 13:30:01
我意識到這一點。這就是爲什麼我提到用於查找精確匹配而不是類似文件的技術。 – Treffynnon 2009-11-13 14:33:28