2009-12-09 44 views
1

我目前正在開發一個項目,在該項目中,我必須將大量用戶生成的名稱與規範格式中的相同名稱的單獨列表進行匹配。問題在於用戶生成的名稱包含許多拼寫錯誤,縮寫以及簡單無效的數據,因此很難與規範化數據進行交叉引用。任何建議方法來做到這一點?在模糊數據上交叉引用數據庫

這不一定要實時完成,在這種情況下,精度比速度更重要。

本目前的思路是:

  1. 使用像Lucene的或獅身人面像現有的搜索實現,我相信使用類似Levenshtein距離這個做在規範數據庫中的用戶輸入的名稱進行模糊搜索。
  2. 在SOUNDEX哈希上的交叉引用(據推測,它是根據名稱的聲音而不是拼寫來計算的)而不是使用實際名稱。
  3. 上述

任何人的一些組合對任何這些還是自己的想法任何反饋?

我的一個擔心是上述方法都不能很好地處理縮寫。任何人都可以指引我使用某些機器學習方法來實際搜索擴展縮寫(或者告訴我我瘋了)?提前致謝。

回答

1

首先,我將在Peter Norvig's post on spelling correction上討論的技術添加到列表中。

其次,我會問你在談論什麼樣的「用戶生成的名稱」。在處理了這兩個問題之後,我相信你用於街道名稱的啓發式算法與人名的啓發式算法有些不同。 (作爲一個簡單的例子,「博士」擴展到「驅動器」或「博士」?)

第三,我會看看一個組合使用測試,以建立一系列的結合各種技術的結果。

+0

謝謝,我覺得真的沒有完美的答案。我決定使用Lucene作爲交叉引用的主要方式,並使用不同的/自定義Analyzer來擴展縮寫並進行模糊搜索。 – ghempton 2009-12-22 19:50:11