天天看點

《Clojure資料分析秘笈》——2.10節修正拼寫錯誤

本節書摘來自華章社群《clojure資料分析秘笈》一書中的第2章,第2.10節修正拼寫錯誤,作者(美)eric rochester,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

2.10 修正拼寫錯誤

拼寫錯誤是某些時間需要處理的問題。特别是當你試圖處理原始的文本資料時,拼寫錯誤會對你的工作造成較大影響。

《Clojure資料分析秘笈》——2.10節修正拼寫錯誤
《Clojure資料分析秘笈》——2.10節修正拼寫錯誤
《Clojure資料分析秘笈》——2.10節修正拼寫錯誤

上述結果解釋了原因。transpose沒有在訓練集中出現過,elder的出現次數比editor兩倍還多,是以上述結果是基于訓練集的拼寫修正。

2.10.3 實作原理

核心函數是edits-1和known-edits-2。它們在字元串空間上執行查詢,尋找與被檢查的單詞的編輯距離是1或2的那些已知單詞(在測試集中出現過的單詞)。在執行操作之前,單詞由split-word函數一分為二。可以組成一次編輯操作(edit)的處理過程由以下一系列函數定義:

delete-char:從一個單詞中删除一個字母(例如,word轉換為wod)。

transpose-char:交換兩個字母的順序(例如,word轉換為wrod)。

replace-split:使用字母表中的另一個字母替換一個字母(例如,word轉換為wobd)。

insert-split:向單詞中插入一個字母(例如,word轉換為wobrd)。

correct函數檢視所有在訓練集中出現過的傳回的編輯操作,并從中選出頻率最高的那個。

2.10.4 更多資訊