1. 中文NLP筆記:中文自然語言處理的一般流程

圖片發自簡書App

今天開始一起學習中文自然語言處理


中文NLP一般流程

1. 獲取語料

? 語料,是NLP任務所研究的內容

? 通常用一個文本集合作為語料庫(Corpus)

? 來源:

? 已有語料

? ? 積累的文檔

? 下載語料

? ? 搜狗語料、人民日報語料

? 抓取語料



2. 語料預處理

? 1.語料清洗

? 留下有用的,刪掉噪音數據

? 常見的數據清洗方式

? ? 人工去重、對齊、刪除和標注等,或者規則提取內容、正則表達式匹配、根據詞性和命名實體提取、編寫腳本或者代碼批處理等。

? 2.分詞

? 將文本分成詞語

? 常見的分詞算法

? ? 基于字符串匹配的分詞方法、基于理解的分詞方法、基于統計的分詞方法和基于規則的分詞方法

? 3.詞性標注

? 給詞語打詞類標簽,如形容詞、動詞、名詞等

? ? 在情感分析、知識推理等任務中需要

? 常見的詞性標注方法

? ? 基于規則

? ? 基于統計

? ? 如基于最大熵的詞性標注、基于統計最大概率輸出詞性和基于 HMM 的詞性標注。

? 4.去停用詞

? 去掉對文本特征沒有任何貢獻作用的字詞,比如標點符號、語氣、人稱等



3. 特征工程

? 把分詞表示成計算機能夠計算的類型,一般為向量

? 常用的表示模型

? 詞袋模型(Bag of Word, BOW)

? ? TF-IDF

? 詞向量

? ? One-hot

? ? Word2Vec



4. 特征選擇

? 選擇合適的、表達能力強的特征

? 常見的特征選擇方法

? 有 DF、 MI、 IG、 CHI、WLLR、WFO



5. 模型訓練

? 機器學習模型

? KNN、SVM、Naive Bayes、決策樹、GBDT、K-means 等

? 深度學習模型

? ? CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN

? 注意過擬合、欠擬合問題

? 過擬合:在訓練集上表現很好,但是在測試集上表現很差。

? ? 常見的解決方法有:

增大數據的訓練量;

增加正則化項,如 L1 正則和 L2 正則;

特征選取不合理,人工篩選特征和使用特征選擇算法;

采用 Dropout 方法等。

?

欠擬合:就是模型不能夠很好地擬合數據

? ? 常見的解決方法有:

添加其他特征項;

增加模型復雜度,比如神經網絡加更多的層、線性模型通過添加多項式使模型泛化能力更強;

減少正則化參數,正則化的目的是用來防止過擬合的,但是現在模型出現了欠擬合,則需要減少正則化參數。

? 注意梯度消失和梯度爆炸問題



6. 評價指標

? 錯誤率、精度、準確率、精確度、召回率、F1 衡量。

? ROC 曲線、AUC 曲線



7. 模型上線應用

? 第一就是線下訓練模型,然后將模型做線上部署

? 第二種就是在線訓練,在線訓練完成之后把模型 pickle 持久化


學習資料:

《中文自然語言處理入門實戰》

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容