我正在開發一個系統,用戶可以使用相應的成分創建自己的pesonal食譜並保存它們(在mysql中)。在mysql中檢查大致相等字符串的腳本
問題是,每次一個成分被保存,我檢查它是否已經存在於成分表中,我比較成分的名稱。
如果我應該能夠從我想確保例如食譜做出正確的購物清單:
蘋果 - 蘋果 - 新鮮的蘋果 廣東話apear
所以,如果「蘋果」首先是創建和即時嘗試保存「蘋果」我想檢查類似的東西已經存在。
像什麼即時嘗試解釋的alghorithm已經存在嗎?
希望你有一些意見!
我正在開發一個系統,用戶可以使用相應的成分創建自己的pesonal食譜並保存它們(在mysql中)。在mysql中檢查大致相等字符串的腳本
問題是,每次一個成分被保存,我檢查它是否已經存在於成分表中,我比較成分的名稱。
如果我應該能夠從我想確保例如食譜做出正確的購物清單:
蘋果 - 蘋果 - 新鮮的蘋果 廣東話apear
所以,如果「蘋果」首先是創建和即時嘗試保存「蘋果」我想檢查類似的東西已經存在。
像什麼即時嘗試解釋的alghorithm已經存在嗎?
希望你有一些意見!
雖然可以使用soundex或Levenshtein distance,但它仍然需要找到該短語中的關鍵詞 - 可能有蘋果和蘋果,但可能有效,但可能含有「十幾個新鮮蘋果」 - 可能不會。
從我的經驗,在該應用程序沒有什麼比更多的手動算法:
假設這些單詞足夠相似並且可能足夠簡單,那麼您可能會對MySQL的SOUNDEX()
函數有一些好運。
文檔可以在這裏找到:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex
基本上,它是一個給定的單詞減少它代表一個四個字符的字符串。字符串應該與的聲音基本相同的任何兩個單詞相同。
我要去檢查出立即 – 2013-02-27 10:36:40
剛剛更新了更詳細一點的答案......我希望它能幫助! – Dan 2013-02-27 10:38:08
我認爲這個功能現在可以解決我的問題。謝謝你 – 2013-02-27 10:41:56
在mySql中,您可以使用SOUNDEX()
函數soundex。
如果你想實現它在PHP中存在levenshtein和similar_text功能
我要檢查Levenshtein。我想我會製作一個後端系統,就像你在說我可以標記那些錯誤的匹配。 – 2013-02-27 10:44:27
感謝您的回答 – 2013-02-27 13:57:51