2011-12-12 99 views
2

我有一個數據庫,其中包含樂隊名稱以及與音樂相關的其他藝術家。現在我想檢查一個包含藝術家姓名的字符串,並查找相似或相同的藝術家以避免不同類型的拼寫。將字符串與來自mysql的值進行比較

我發現了php函數'similar_text',我相信,在循環過程中構建一個腳本來做這個比較是沒問題的。

做這樣的比較最好和最快的方法是什麼?

+1

它是一次性腳本?還是一個常規流程(如每日或每週)? –

+2

MySQL'soundex'函數也可以使用。 –

+0

每次上傳mp3文件時,都會讀取id3標籤並將其與數據庫進行比較。 'soundex'似乎很有趣。有沒有一篇好的文章提供一個mysql數據庫的用例? – madc

回答

1

這取決於您的數據大小。如果是微不足道[幾萬] - 然後運行夜間批處理作業,則是:從源數據

  • 提取獨特的藝術家姓名
  • 計算同音
  • 創建密鑰爲同音,價值字典 - 列表的藝術家列的原始字符串

在此階段,您必須決定是否要爲每個重命名進行自動合併或手動批准。從長遠來看,你可以有適當的拼寫助手錶,發現迄今爲止拼寫錯誤。那些案件可以在下次遇到時自動處理。

如果soundex不夠好,您可以嘗試使用php的similar_text,levenshtein函數對新添加的數據中找到的名稱與先前已經審查過的「已批准」藝術家名稱進行比較。

+0

這聽起來像是一個合適的解決方案。我會考慮的,如果沒有人提出更好的解決方案,我會堅持你的。謝謝! – madc

+0

我想,我會創建一個每晚腳本,將錯誤的藝術家排序。謝謝您的幫助。 – madc

相關問題