這是通用算法的東西太多,所以請不要停止閱讀,如果你在文本中看到的Solr(請跳到第3行)拼寫校正算法
Solr中,對於拼寫檢查組件我設置extendedResults得到的頻率更正的單詞,然後選擇具有最佳頻率的單詞。我理解基於編輯距離的拼寫檢查算法。舉一個例子:
查詢到Solr:馬裏安
拼寫檢查文本返回:海洋(頻率:120),市場(頻率:900)等。我在這裏的字典是基於索引單詞。
所以我選擇了市場(更多的頻率),然而哪個是錯誤的,因爲我的意圖是海洋。兩者的編輯距離爲2.
現在我該如何改進這種算法來選擇海洋而不是市場(基於比編輯距離和頻率更多的東西)?
我是否也必須包含一些「soundex」算法呢?
我正在尋找簡單的東西,我可以快速實施。
我甚至嘗試過使用Peter Norvig的拼寫校正算法(這很棒),但是我又碰到了同樣的問題。
添加soundex **聲音對我很好。對於一個給定的詞,如果你找到一個好的「soundex」,然後建議給用戶。如果不是,則繼續處理另外兩個變量:頻率和距離。 – vulkanino 2012-03-01 11:58:28