2015-10-14 19 views
1

我的數據庫中有幾個名稱標題經常會被輕微更改創建和重新創建。通過手動觀察,人們可以很容易地將它們識別爲重複,並進行小的拼寫更改。對於例如使用百分比匹配標識自由文本關鍵字重複項

 Resort Inn, Res Ort inn, Rsort Inn etc
等。我正在尋找的是一種解決方案,它可以將搜索關鍵字的百分比匹配爲重複數據。源集可能不夠大,但參考集可能會傳入數百萬個數據。所以潛在的mysql「匹配」不可擴展。此外,參考集是在mysql和sphinx索引。當前的重複邏輯不能完全捕獲所有重複項。例如

 
Moy Knn Resort 
Moy-Knn 
Moy Knn Resort 
Moeyy-Knn American Food 

所有這些都是根據我重複。但是第四個並沒有被捕獲。我知道他們看起來完全一樣,但是通過消除元音和其他東西進行比較後,一些百分比數字會有所幫助首選的解決方案主要是'php-sphinx',因爲大部分解決方案已經準備就緒或awk(如果可能並且適度舒適)。如果沒有,任何開源(python/perl等)邏輯都可以。

+0

你的意思是「我瞭解他們[不]看起來完全相同」 - 錯過了這個詞嗎? – barryhunter

+0

是,「不要」丟失 – user676500

回答

0

那麼可以使用類似 http://php.net/manual/en/function.levenshtein.php 給你一個實際的'百分比'。

但persumably你需要某種「第一通」比賽,給你可能的候選人(所以不需要超過幾百萬行的Levenshtein運行),

坦白說,我認爲將很難得到的東西的工作在獅身人面像,特別考慮你的最後一個例子。這是非常不同的。唯一可能會幫助的是 http://sphinxsearch.com/docs/current.html#conf-morphology 和Soundex/metaphone系統,您的'相似'的單詞將有一個很好的機會'聽起來'相同。

+0

使用形態學標準進行索引並沒有幫助。手動眼睛揉成一些個案,覺得擺脫元音,以及修剪前後多個字母,以單個字母可以讓我更接近一場比賽。也許隨後過濾的數據+形態學標準可以起作用。將張貼我的發現,但我很想聽聽更好的方法。 – user676500