天然語言處理項目流程

 

第一步:獲取語料

語料,即語言材料,是構成語料庫的基本單元。 因此,人們簡單地用文本做爲替代,並把文本中的上下文關係做爲現實世界中語言的上下文關係的替代品。咱們把一個文本集合稱爲語料庫(Corpus),當有幾個這樣的文本集合的時候,咱們稱之爲語料庫集合(Corpora)。(定義來源:百度百科)按語料來源,咱們將語料分爲如下兩種:正則表達式

一、已有語料

紙質或者電子文本資料==》電子化==》語料庫。算法

二、網上下載、抓取語料

國內外標準開放數據集(好比國內的中文漢語有搜狗語料、人民日報語料) 或 經過爬蟲。網絡

第二步:語料預處理

語料預處理大概會佔到整個50%-70%的工做量。機器學習

基本過程: 數據清洗==》分詞==》詞性標註==》去停詞學習

一、語料清洗

語料清洗:在語料中找到感興趣的內容,將不感興趣、視爲噪音的內容清洗刪除。包括:對於原始文本提取標題、摘要、正文等信息,對於爬蟲,去除廣告、標籤、HTML、JS等代碼和註釋。測試

常見數據清洗方式:人工去重、對齊、刪除和標註等,或規則提取內容、正則表達式匹配、根據詞性和命名實體提取,編寫腳本或代碼批處理等。大數據

二、分詞

分詞:將短文本和長文本處理爲最小單位粒度是詞或詞語的過程。spa

常見方法:基於字符串匹配的分詞方法、基於理解的分詞方法、基於統計的分詞方法和基於規則的分詞方法,其中每種方法下面對應許多具體的方法。3d

難點:歧義識別 和 新詞識別。 eg:「羽毛球拍賣完了」,這個能夠切分紅「羽毛 球拍 賣 完 了」,也可切分紅「羽毛球 拍賣 完 了」==》上下文信息code

三、詞性標註

詞性標註:對每一個詞或詞語打詞類標籤,是一個經典的序列標註問題。eg:形容詞、動詞、名詞等。有助於在後面的處理中融入更多有用的語言信息。

詞性標註不是非必需的。好比,常見的文本分類就不用關心詞性問題,可是相似情感分析、知識推理倒是須要的,下圖是常見的中文詞性整理。
在這裏插入圖片描述
常見方法:基於規則和基於統計的方法。

  • 基於統計的方法:基於最大熵的詞性標註、基於統計最大機率輸出詞性和基於 HMM 的詞性標註。

四、去停用詞

停用詞:對文本特徵沒有任何貢獻的字詞,eg:標點符號、語氣、人稱等。

注意:根據具體場景決定。eg:在情感分析中,語氣詞、感嘆號是應該保留的,由於他們對錶示語氣程度、感情色彩有必定的貢獻和意義。

3、特徵工程

如何把分詞以後的字和詞語表示成計算機可以計算的類型。
思路:中文分詞的字符串 ==》 向量

兩種經常使用表示模型:

  • 詞袋模型(BoW)
  • 詞向量

一、詞袋模型(BoW)

詞袋模型(Bag of Word, BOW):不考慮詞語本來在句子中的順序,直接將每個詞語或者符號統一放置在一個集合(如 list),而後按照計數的方式對出現的次數進行統計。統計詞頻這只是最基本的方式,TF-IDF 是詞袋模型的一個經典用法。

二、詞向量

詞向量:將字、詞語轉換爲向量矩陣的計算模型。

經常使用的詞表示方法:

  • One-Hot:把每一個詞表示爲一個很長的向量。這個向量的維度是詞表大小,其中絕大多數元素爲 0,只有一個維度的值爲 1,這個維度就表明了當前的詞。eg: [0 0 0 0 0 0 0 0 1 0 0 0 0 ... 0]
  • 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 等。

二、注意事項

(1)過擬合

過擬合:模型學習能力太強,以致於把噪聲數據的特徵也學習到了,致使模型泛化能力降低,在訓練集上表現很好,可是在測試集上表現不好。

常見的解決方法有:

  • 增大數據的訓練量;
  • 增長正則化項,如 L1 正則和 L2 正則;
  • 特徵選取不合理,人工篩選特徵和使用特徵選擇算法;
  • 採用 Dropout 方法等。

(2)欠擬合

欠擬合:就是模型不可以很好地擬合數據,表如今模型過於簡單。

常見的解決方法有:

  • 添加其餘特徵項;
  • 增長模型複雜度,好比神經網絡加更多的層、線性模型經過添加多項式使模型泛化能力更強;
  • 減小正則化參數,正則化的目的是用來防止過擬合的,可是如今模型出現了欠擬合,則須要減小正則化參數。

(3)對於神經網絡,注意梯度消失和梯度爆炸問題。

相關文章
相關標籤/搜索