自然語言處理N天-Day0101中文自然語言處理的完整機(jī)器處理流程

新建 Microsoft PowerPoint 演示文稿 (2).jpg

說明:本文依據(jù)《中文自然語言處理入門實(shí)戰(zhàn)》完成。目前網(wǎng)上有不少轉(zhuǎn)載的課程,我是從GitChat上購買。

第一課 中文自然語言處理的完整機(jī)器處理流程

教程從對象和內(nèi)容對NLP的技術(shù)點(diǎn)進(jìn)行了劃分。教程認(rèn)為不夠完整,但是又不提出一個(gè)完整的來……

主要流程

  • 獲取語料
  • 語料預(yù)處理
  • 特征工程
  • 特征選擇
  • 模型訓(xùn)練
  • 評價(jià)指標(biāo)
  • 模型上線應(yīng)用
  • 模型重構(gòu)

獲取語料

語料庫Corpus:一個(gè)文本集合
語料庫集合Corpora:多個(gè)文本集合

常規(guī)語料庫獲取

已有的語料庫,或是從網(wǎng)上獲取標(biāo)準(zhǔn)開放數(shù)據(jù)集。教程提到中文漢語有搜狗語料、人民日報(bào)語料,同時(shí)另一個(gè)業(yè)內(nèi)公認(rèn)的語料庫是WIKI中文語料庫。
該語料庫獲取方式:
https://dumps.wikimedia.org/zhwiki/20181201/
在該網(wǎng)站獲取,有兩類可以下載使用,讀者可以選擇最新的

  1. zhwiki-20181201-pages-articles1.xml-p1p162886.bz2 這個(gè)是WIKI中文的articles1,你會(huì)發(fā)現(xiàn)還有2、3、4、5……大小在150mb左右,適用于小型模型
  2. zhwiki-20181201-pages-articles.xml.bz2 這個(gè)是WIKI中文的articles,應(yīng)該是上面幾個(gè)的整合,大小在1.5G左右

語料預(yù)處理

在一個(gè)完整的中文自然語言處理工程應(yīng)用中,語料預(yù)處理大概會(huì)占到整個(gè)50%-70%的工作量,所以開發(fā)人員大部分時(shí)間就在進(jìn)行語料預(yù)處理。下面通過數(shù)據(jù)洗清、分詞、詞性標(biāo)注、去停用詞四個(gè)大的方面來完成語料的預(yù)處理工作。
1.數(shù)據(jù)清洗
在語料中找到感興趣的東西,把不感興趣的、視為噪音的內(nèi)容清洗刪除。
包括對于原始文本提取標(biāo)題、摘要、正文等信息,對于爬取的網(wǎng)頁內(nèi)容,去除廣告、標(biāo)簽、HTML、JS 等代碼和注釋等。常見的數(shù)據(jù)清洗方式有:人工去重、對齊、刪除和標(biāo)注等,或者規(guī)則提取內(nèi)容、正則表達(dá)式匹配、根據(jù)詞性和命名實(shí)體提取、編寫腳本或者代碼批處理等。
記住一條Rubbish in Rubbish out,剛開始嫌煩沒有做好,會(huì)很大程度影響到后續(xù)工作。做好原始數(shù)據(jù)的保存,最好能保存下每一步的操作記錄,方便回溯。

2.分詞
中文語料數(shù)據(jù)為一批短文本或者長文本,比如:句子,文章摘要,段落或者整篇文章組成的一個(gè)集合。一般句子、段落之間的字、詞語是連續(xù)的,有一定含義。而進(jìn)行文本挖掘分析時(shí),我們希望文本處理的最小單位粒度是詞或者詞語,所以這個(gè)時(shí)候就需要分詞來將文本全部進(jìn)行分詞。
常見的分詞算法

  • 基于字符串匹配的分詞方法
  • 基于理解的分詞方法
  • 基于統(tǒng)計(jì)的分詞方法
  • 基于規(guī)則的分詞方法
    當(dāng)前中文分詞算法的主要難點(diǎn)有歧義識別和新詞識別。
    目前新詞識別大多使用CNN處理,HanLP有成熟的接口使用。文本消歧還沒有看。

3.詞性標(biāo)注
就是對文本的每一句話拆分之后,每一個(gè)元素在該語句中的詞屬性。英文使用Spacy,中文使用HanLP都可以得到不錯(cuò)的結(jié)果。
常見的詞性標(biāo)注方法可以分為基于規(guī)則和基于統(tǒng)計(jì)的方法。

  • 基于最大熵的詞性標(biāo)注
  • 基于統(tǒng)計(jì)最大概率輸出詞性
  • 基于 HMM 的詞性標(biāo)注。

4.去停用詞
有現(xiàn)成的停用詞表,另外用戶也可以自定義。

特征工程

將分詞后的結(jié)果轉(zhuǎn)換為能夠計(jì)算的類型(就是向量)。
兩種常見模型:BOW詞袋模型和Word2vec詞向量模型。
Word2Vec主要包含兩個(gè)模型:跳字模型(Skip-Gram)和連續(xù)詞袋模型(Continuous Bag of Words,簡稱 CBOW),以及兩種高效訓(xùn)練的方法:負(fù)采樣(Negative Sampling)和層序Softmax(Hierarchical Softmax)。
值得一提的是,Word2Vec 詞向量可以較好地表達(dá)不同詞之間的相似和類比關(guān)系。除此之外,還有一些詞向量的表示方式,如 Doc2Vec、WordRank 和 FastText 等。

特征選擇

文本特征一般都是詞語,具有語義信息,使用特征選擇能夠找出一個(gè)特征子集,其仍然可以保留語義信息;但通過特征提取找到的特征子空間,將會(huì)丟失部分語義信息。所以特征選擇是一個(gè)很有挑戰(zhàn)的過程,更多的依賴于經(jīng)驗(yàn)和專業(yè)知識,并且有很多現(xiàn)成的算法來進(jìn)行特征的選擇。
說了一堆等于沒有說。
常見的特征選擇方法教程中列舉了這些縮寫,很不負(fù)責(zé),還是說默認(rèn)學(xué)習(xí)者都會(huì)了?

  • DF (Document Frequency)文檔頻率。通過統(tǒng)計(jì)特征詞出現(xiàn)的文檔數(shù)量,用來衡量某個(gè)特征詞的重要性
  • MI (Mutual Information)互信息法。用于衡量特征詞與文檔類別直接的信息量。互信息值表示特征項(xiàng)與類別的共現(xiàn)程度,互信息值越大,則兩者的共現(xiàn)概率越大。
  • IG (Information Gain)信息增益法。通過某個(gè)特征詞的缺失與存在的兩種情況下,語料中前后信息的增加,衡量某個(gè)特征詞的重要性。
  • CHI (Chi-square)卡方檢驗(yàn)法。表示特征項(xiàng)與類別的相關(guān)程度,統(tǒng)計(jì)量值越大,則兩者的相關(guān)程度越高。
  • WLLR (Weighted Log Likelihood Ration)加權(quán)對數(shù)似然。
  • WFO (Weighted Frequency and Odds)加權(quán)頻率和可能性
    我之前用的比較多的似乎是DF和MI。

模型訓(xùn)練

就是之前學(xué)習(xí)的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型。
機(jī)器學(xué)習(xí)模型:KNN、SVM、Naive Bayes、決策樹、GBDT、K-means 等
深度學(xué)習(xí)模型:CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等

評價(jià)指標(biāo)

就是對分類器的評估,看之前的教程即可https://www.toutiao.com/i6640740320759775748/

模型上線應(yīng)用

  1. 線下訓(xùn)練模型,然后將模型做線上部署,發(fā)布成接口服務(wù)以供業(yè)務(wù)系統(tǒng)使用。
  2. 在線訓(xùn)練,在線訓(xùn)練完成之后把模型 pickle 持久化,然后在線服務(wù)接口模板通過讀取 pickle 而改變接口服務(wù)。

模型重構(gòu)

隨著時(shí)間和變化,可能需要對模型做一定的重構(gòu),包括根據(jù)業(yè)務(wù)不同側(cè)重點(diǎn)對上面提到的一至七步驟也進(jìn)行調(diào)整,重新訓(xùn)練模型進(jìn)行上線。

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

推薦閱讀更多精彩內(nèi)容