我正在爲我正在處理的項目做一個CSV導入工具。 客戶端需要能夠在Excel中輸入數據,將它們導出爲CSV並將其上傳到數據庫。 例如,我有這個CSV記錄:字比較算法
1, John Doe, ACME Comapny (the typo is on purpose)
當然,這兩家公司都保存在一個單獨的表,並與外鍵鏈接,所以我需要在插入之前發現正確的公司ID。 我打算通過將數據庫中的公司名稱與CSV中的公司名稱進行比較來實現此目的。 如果字符串完全相同,則比較應返回0,並且返回某些值隨着字符串變得更加不同而返回更大值,但strcmp不會在此處將其切換,因爲:
「Acme Company」和「Acme Comapny 「應該有一個非常小的差異指數,但 」Acme公司「和」Cmea Mpnyaco「應該有非常大的差異指數 或」Acme公司「和」Acme Comp。「。即使字符數不同,也應該有一個很小的差異指數。 此外,「Acme公司」和「公司Acme」應返回0.
因此,如果客戶端在輸入數據時輸入類型,我可以提示他選擇他最想插入的名稱。
有沒有一個已知的算法來做到這一點,或者我們可以發明一個:) ?
對於庫:http://stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for – nawfal 2013-06-06 05:25:11