中文自然語言處理流程

中文自然語言處理流程

獲取語料

語料,即語言材料。語料是語言學研究的內容。語料是構成語料庫的基本單元。所以,人們簡單地用文本作爲替代,並把文本中的上下文關係作爲現實世界中語言的上下文關係的替代品。我們把一個文本集合稱爲語料庫(Corpus),當有幾個這樣的文本集合的時候,我們稱之爲語料庫集合(Corpora)。(定義來源:百度百科)按語料來源,我們將語料分爲以下兩種:

1.已有語料

很多業務部門、公司等組織隨着業務發展都會積累有大量的紙質或者電子文本資料。那麼,對於這些資料,在允許的條件下我們稍加整合,把紙質的文本全部電子化就可以作爲我們的語料庫。

2.網上下載、抓取語料

如果現在個人手裏沒有數據怎麼辦呢?這個時候,我們可以選擇獲取國內外標準開放數據集,比如國內的中文漢語有搜狗語料、人民日報語料。國外的因爲大都是英文或者外文,這裏暫時用不到。也可以選擇通過爬蟲自己去抓取一些數據,然後來進行後續內容。

語料預處理

這裏重點介紹一下語料的預處理,在一個完整的中文自然語言處理工程應用中,語料預處理大概會佔到整個50%-70%的工作量,所以開發人員大部分時間就在進行語料預處理。下面通過數據洗清、分詞、詞性標註、去停用詞四個大的方面來完成語料的預處理工作。

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 等。

特徵選擇

同數據挖掘一樣,在文本挖掘相關問題中,特徵工程也是必不可少的。在一個實際問題中,構造好的特徵向量,是要選擇合適的、表達能力強的特徵。文本特徵一般都是詞語,具有語義信息,使用特徵選擇能夠找出一個特徵子集,其仍然可以保留語義信息;但通過特徵提取找到的特徵子空間,將會丟失部分語義信息。所以特徵選擇是一個很有挑戰的過程,更多的依賴於經驗和專業知識,並且有很多現成的算法來進行特徵的選擇。目前,常見的特徵選擇方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六種。

模型訓練

在特徵向量選擇好之後,接下來要做的事情當然就是訓練模型,對於不同的應用需求,我們使用不同的模型,傳統的有監督和無監督等機器學習模型, 如 KNN、SVM、Naive Bayes、決策樹、GBDT、K-means 等模型;深度學習模型比如 CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN 等。這些模型在後續的分類、聚類、神經序列、情感分析等示例中都會用到,這裏不再贅述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章