向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.主函數
閱讀過本文的人還看了如下文章:
基於40萬表格數據集TableBank,用MaskRCNN作表格檢測
《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼
2019最新《PyTorch天然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
【Keras】完整實現‘交通標誌’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
如何利用全新的決策樹集成級聯結構gcForest作特徵工程並打分?
Machine Learning Yearning 中文翻譯稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公衆號添加: datayx
機大數據技術與機器學習工程
搜索公衆號添加: datanlp
長按圖片,識別二維碼
本文分享自微信公衆號 - 機器學習AI算法工程(datayx)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。