中文文本糾錯算法實現


向AI轉型的程序員都關注了這個號👇👇👇python

機器學習AI算法工程   公衆號:datayx程序員



文本糾錯又稱爲拼寫錯誤或者拼寫檢查,因爲純文本每每來源於手打或者OCR識別,極可能存在一些錯誤,所以此技術也是一大關鍵的文本預處理過程,通常存在兩大糾錯類型。web


1.拼寫錯誤面試

第一種是Non-word拼寫錯誤,表示此詞彙自己在字典中不存在,好比把「要求」誤寫爲「藥求」,算法



2.少字多字數據庫

中文文本糾錯比較難,很少說。上思路flask

方法有不少,本文講解基於拼音數組


思路:微信

1首先:本地得有一個正確字詞的數據庫 。命名 數據庫.txt網絡

格式:第一列正確字詞,第二列 詞頻 ,第三列 詞性

本文只用詞和詞頻。考慮詞性太難啦。




2.得有一個文檔txt,供編輯距離函數操做的。命名 編輯距離.txt
以下圖



3.加載 數據庫.txt 和 編輯距離.txt

4 輸入一個錯誤單詞(句子分詞獲得的單詞,或者單獨一個錯誤單詞),計算編輯距離,生成編輯距離詞集。

編輯距離須要比對 數據庫.txt 的單詞,計算距離

而後對錯誤單詞進行刪除字,增長字,修改字,替換字。增長刪除替換哪些字呀,確定得從 編輯距離.txt 文檔裏選取字插入或替換到錯誤單詞裏。最後生成編輯距離詞集


5 生成的編輯距離詞集 確定含有一些錯誤單詞,找出同時在編輯距離詞集和數據庫.txt 的單詞 ,即爲咱們候選正確詞集

6. 對候選正確詞進行分級。首先 pinyin.get獲得錯誤詞的拼音

而後遍歷 候選正確詞集的單詞,求取得拼音。

咱們根據候選詞的拼音對其重要性進行排序

若是候選詞的拼音與錯誤詞徹底匹配,則將候選詞放入一級數組

#若是候選詞的第一個詞的拼音與錯誤詞的第一個詞匹配,咱們將其按二級數組。不然咱們把候選短語放入三級數組.


7.找到正確單詞


若是一級數組存在, 獲得 的正確字詞是在 數據庫.txt 中的。考慮到獲得的詞可能有多個,前文提到數據庫.txt 第一列是詞,第二列是詞頻 。咱們應該返回一級數組中 詞在數據庫.txt 中詞頻最大的那個單詞

若是一級數組不存在,二級數組存在,,返回詞頻最大的那個單詞

不然:返回三級數組詞頻最大的那個單詞。



本文代碼 獲取:

關注微信公衆號 datayx  而後回覆  糾錯  便可獲取。

AI項目體驗地址 https://loveai.tech



代碼:

1導入包 和標點符號



2讀取 數據庫.txt
只讀取第一列和第二列 ,最後生成字典。
#獲得的是各單詞詞頻,如:{‘老師上課’: ‘3’, ‘老師傅’: ‘62’, ‘老師宿儒’: ‘老師上課’: ‘3’, ‘老師傅’: ‘62’, }



3.讀取編輯距離.txt



4. 計算錯誤單詞與數據庫.txt裏的單詞的編輯距離



5.找到候選正確詞集 。即編輯距離生成的詞同時又在數據庫.txt裏的詞



6.計算拼音,獲得一級數組,二級數組,三級數據。對候選正確詞進行分級



7.找到正確單詞


8.測試 對一個句子進行分詞 ,而後每一個單詞 拿去尋找正確單詞 ,最後將這些詞拼接爲正確句子



9.主函數






閱讀過本文的人還看了如下文章:


TensorFlow 2.0深度學習案例實戰


基於40萬表格數據集TableBank,用MaskRCNN作表格檢測


《基於深度學習的天然語言處理》中/英PDF


Deep Learning 中文版第一版-周志華團隊


【全套視頻課】最全的目標檢測算法系列講解,通俗易懂!


《美團機器學習實踐》_美團算法團隊.pdf


《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼


特徵提取與圖像處理(第二版).pdf


python就業班學習視頻,從入門到實戰項目


2019最新《PyTorch天然語言處理》英、中文版PDF+源碼


《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼


《深度學習之pytorch》pdf+附書源碼


PyTorch深度學習快速實戰入門《pytorch-handbook》


【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》


《Python數據分析與挖掘實戰》PDF+完整源碼


汽車行業完整知識圖譜項目實戰視頻(全23課)


李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材


筆記、代碼清晰易懂!李航《統計學習方法》最新資源全套!


《神經網絡與深度學習》最新2018版中英PDF+源碼


將機器學習模型部署爲REST API


FashionAI服裝屬性標籤圖像識別Top1-5方案分享


重要開源!CNN-RNN-CTC 實現手寫漢字識別


yolo3 檢測出圖像中的不規則漢字


一樣是機器學習算法工程師,你的面試爲何過不了?


前海徵信大數據算法:風險機率預測


【Keras】完整實現‘交通標誌’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類


VGG16遷移學習,實現醫學圖像識別分類工程項目


特徵工程(一)


特徵工程(二) :文本數據的展開、過濾和分塊


特徵工程(三):特徵縮放,從詞袋到 TF-IDF


特徵工程(四): 類別特徵


特徵工程(五): PCA 降維


特徵工程(六): 非線性特徵提取和模型堆疊


特徵工程(七):圖像特徵提取和深度學習


如何利用全新的決策樹集成級聯結構gcForest作特徵工程並打分?


Machine Learning Yearning 中文翻譯稿


螞蟻金服2018秋招-算法工程師(共四面)經過


全球AI挑戰-場景分類的比賽源碼(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在線識別手寫中文網站


中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程



不斷更新資源

深度學習、機器學習、數據分析、python

 搜索公衆號添加: datayx  



機大數據技術與機器學習工程

 搜索公衆號添加: datanlp

長按圖片,識別二維碼


本文分享自微信公衆號 - 機器學習AI算法工程(datayx)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索