自然語言處理的一般流程

整個過程一般可以概括為四部分,語料預處理->特征工程->模型訓練->指標評價

第一部分:語料預處理

通過語料清洗、分詞、詞性標注、去停用詞四個大的方面來完成語料的預處理工作。
(1)語料清洗
數據清洗,顧名思義就是在語料中找到我們感興趣的東西,把不感興趣的、視為噪音的內容清洗刪除,包括對于原始文本提取標題、摘要、正文等信息。
對于爬取的網頁內容,去除廣告、標簽、HTML、JS 等代碼和注釋等。常見的數據清洗方式有:人工去重、對齊、刪除和標注等,或者規則提取內容、正則表達式匹配、根據詞性和命名實體提取、編寫腳本或者代碼批處理等。
(2)分詞
中文語料數據為一批短文本或者長文本,比如:句子,文章摘要,段落或者整篇文章組成的一個集合。一般句子、段落之間的字、詞語是連續的,有一定含義。
而進行文本挖掘分析時,我們希望文本處理的最小單位粒度是詞或者詞語,所以這個時候就需要分詞來將文本全部進行分詞。中文分詞方法將為
常見的分詞算法有:基于字符串匹配的分詞方法、基于理解的分詞方法、基于統計的分詞方法和基于規則的分詞方法,每種方法下面對應許多具體的算法。
當前中文分詞算法的主要難點有歧義識別新詞識別,比如:“羽毛球拍賣完了”,這個可以切分成“羽毛 球拍 賣 完 了”,也可切分成“羽毛球 拍賣 完 了”,如果不依賴上下文其他的句子,恐怕很難知道如何去理解。
(3)詞性標注
詞性標注,就是給每個詞或者詞語打詞類標簽,如形容詞、動詞、名詞等。這樣做可以讓文本在后面的處理中融入更多有用的語言信息。
詞性標注是一個經典的序列標注問題,不過對于有些中文自然語言處理來說,詞性標注不是非必需的。
比如,常見的文本分類就不用關心詞性問題,但是類似情感分析、知識推理卻是需要的,下圖是常見的中文詞性整理。


常見的詞性標注方法可以分為基于規則和基于統計的方法。其中基于統計的方法,如基于最大熵的詞性標注、基于統計最大概率輸出詞性和基于 HMM 的詞性標注。
(4)去停用詞
停用詞一般指對文本特征沒有任何貢獻作用的字詞,比如標點符號、語氣、人稱等一些詞。所以在一般性的文本處理中,分詞之后,接下來一步就是去停用詞。
但是對于中文來說,去停用詞操作不是一成不變的,停用詞詞典是根據具體場景來決定的,比如在情感分析中,語氣詞、感嘆號是應該保留的,因為他們對表示語氣程度、感情色彩有一定的貢獻和意義。

第二部分:特征工程

做完語料預處理之后,接下來需要考慮如何把分詞之后的字和詞語表示成計算機能夠計算的類型。
顯然,如果要計算我們至少需要把中文分詞的字符串轉換成數字,確切的說應該是數學中的向量。有兩種常用的表示模型分別是詞袋模型和詞向量。
詞袋模型(Bag of Word, BOW),即不考慮詞語原本在句子中的順序,直接將每一個詞語或者符號統一放置在一個集合(如 list),然后按照計數的方式對出現的次數進行統計。統計詞頻這只是最基本的方式,TF-IDF 是詞袋模型的一個經典用法。
詞向量是將字、詞語轉換成向量矩陣的計算模型。目前為止最常用的詞表示方法是 One-hot,這種方法把每個詞表示為一個很長的向量。
這個向量的維度是詞表大小,其中絕大多數元素為 0,只有一個維度的值為 1,這個維度就代表了當前的詞。
還有 Google 團隊的 Word2Vec,其主要包含兩個模型:跳字模型(Skip-Gram)和連續詞袋模型(Continuous Bag of Words,簡稱 CBOW),以及兩種高效訓練的方法:負采樣(Negative Sampling)和層序 Softmax(Hierarchical Softmax)。
值得一提的是,Word2Vec 詞向量可以較好地表達不同詞之間的相似和類比關系。除此之外,還有一些詞向量的表示方式,如 Doc2Vec、WordRank 和 FastText 等。

第三部分:模型訓練

在特征向量選擇好之后,接下來要做的事情當然就是訓練模型,對于不同的應用需求,我們使用不同的模型,傳統的有監督和無監督等機器學習模型,。
如 KNN、SVM、Naive Bayes、決策樹、GBDT、K-means 等模型;深度學習模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。
訓練過程需要關注以下幾點:
(1)注意過擬合、欠擬合問題,不斷提高模型的泛化能力
過擬合常見的解決方法有:
增大數據的訓練量;
增加正則化項,如 L1 正則和 L2 正則;
特征選取不合理,人工篩選特征和使用特征選擇算法;
采用 Dropout 方法等。
欠擬合常見的解決方法有:
添加其他特征項;
增加模型復雜度,比如神經網絡加更多的層、線性模型通過添加多項式使模型泛化能力更強;
減少正則化參數,正則化的目的是用來防止過擬合的,但是現在模型出現了欠擬合,則需要減少正則化參數。
(2)對于神經網絡,注意梯度消失和梯度爆炸問題

第四部分:指標評價

訓練好的模型,上線之前要對模型進行必要的評估,目的讓模型對語料具備較好的泛化能力。
對于二分類問題,可將樣例根據其真實類別與學習器預測類別的組合劃分為真正例(True Positive)、假正例(False Positive)、真反例(True Negative)、假反例(False Negative)四種情形,令 TP、FP、TN、FN 分別表示其對應的樣例數,顯然有 TP+FP++TN+FN=樣例總數。分類結果的“混淆矩陣”(Confusion Matrix)如下:


。具體有以下這些指標可以參考。
(1)錯誤率、精度、準確率、精確度、召回率、F1 衡量
錯誤率:是分類錯誤的樣本數占樣本總數的比例。
精度:是分類正確的樣本數占樣本總數的比例。
準確率,縮寫表示用 P。準確率是針對我們預測結果而言的,它表示的是預測為正的樣例中有多少是真正的正樣例。
精確度,縮寫表示用 A。精確度則是分類正確的樣本數占樣本總數的比例。Accuracy 反應了分類器對整個樣本的判定能力(即能將正的判定為正的,負的判定為負的)。
召回率,縮寫表示用 R。召回率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確。
F1 衡量,表達出對查準率/查全率的不同偏好。
(2)ROC 曲線、AUC 曲線
ROC 全稱是“受試者工作特征”(Receiver Operating Characteristic)曲線。我們根據模型的預測結果,把閾值從0變到最大,即剛開始是把每個樣本作為正例進行預測,隨著閾值的增大,學習器預測正樣例數越來越少,直到最后沒有一個樣本是正樣例。在這一過程中,每次計算出兩個重要量的值,分別以它們為橫、縱坐標作圖,就得到了 ROC 曲線。
AUC 就是 ROC 曲線下的面積,衡量學習器優劣的一種性能指標。AUC 是衡量二分類模型優劣的一種評價指標,表示預測的正例排在負例前面的概率。

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

推薦閱讀更多精彩內容