NLP:語言模型、中文自然語言處理流程、自然語言處理的任務

語言模型(language model)

專家語言模型

  基於語言學專家設計的語法規則,設計語言模型。專家語言模型一直到上世紀80年代是研究的主流。例如IF…ELSE…語句,在專家語言模型中是十分常見的。

統計語言模型

  關於統計語言模型,參考吳軍老師的《數學之美》中的介紹,語言模型最初用於語音識別任務,其目標就是判斷一個文字序列是否符合我們的認知,例如下面一句話:

美聯儲主席本·伯南克昨天告訴媒體7000億美元的救助資金將借給上百家銀行、保險公司和汽車公司。

  這句話我們人類能夠讀懂,但是如果是下面這句話:

聯主美儲席本·伯訴體南將借天的救克告媒昨助資金70元億00美給上百百百家銀保行、汽車險公司公司和。

  人類就看不懂這句話什麼意思,統計語言模型就是一種判斷人類是否能看懂一句話的模型。我們可以這樣建模統計語言模型,假定一句話SS是由w1,w2wnw_1,w_2\dots w_n這n個詞以特定順序排列構成的(這裏的順序就是w1,w2wnw_1,w_2\dots w_n出現的先後順序):

p(S)=p(w1,w2wn)p(S)=p(w_1,w_2\dots w_n)

我們看SS出現的概率,例如上面第一句話出現的概率可能是102010^{-20},第二句話出現的概率是107010^{-70},因此第一句話更可能符合我們人類的認知。

  但是這樣做,我們需要統計人類有史以來說過的所有的話,這顯然是不太現實的,因此我們利用條件概率展開p(S)p(S)得到:

p(S)=p(w1)p(w2w1)p(w3w1,w2)p(wnw1,,wn1)p(S)=p(w1) \cdot p(w_2|w_1)\cdot p(w_3|w_1,w_2)\dots p(w_n|w_{1},\dots ,w_{n-1})

  進一步引入馬爾科夫性:

p(S)=p(w1)p(w2w1)p(w3w2)p(w4w3)p(wnwn1)p(S)=p(w1) \cdot p(w_2|w_1)\cdot p(w_3|w_2)\cdot p(w_4|w_3)\dots p(w_n|w_{n-1})

  這就是二元模型(Bigram Model),每一個詞只和前一個詞有關係,我們也可以假設每一個詞和前N-1個詞有關係,這就是N元模型,實際中用到的最多的是三元模型,Google的羅塞塔翻譯系統和語音搜索系統使用的是四元模型,其空間複雜度就已經很高了。我們單獨拿出來看p(w2w1)p(w_2|w_1),它等於

p(w2w1)=p(w1,w2)p(w1)p(w_2|w_1)=\frac{p(w_1,w_2)}{p(w_1)}

我們只用看我們的語料庫中,w1,w2w_1,w_2前後相鄰出現了多少次,比上w1w_1出現多少次,根據大數定理,它們的比值就是p(w2w1)p(w_2|w_1);如果是w1w_1,其概率計算如下:

p(w1<s>)=p(w1,<s>)p(<s>)p(w_1|<s>)=\frac{p(w_1,<s>)}{p(<s>)}

我們引入一個開始和結束符號<s><s>,此時句子表示爲S=<s>,w1,w2...wn,<s>S=<s>,w_1,w_2...w_n,<s>

  統計語言模型是今天所有自然語言處理的基礎。

神經網絡語言模型

  顧名思義,神經網絡語言模型肯定利用了神經網絡模型。在神經網絡語言模型中,開始出現詞向量的概念,不同於統計語言模型利用詞頻計算句子的概率,神經網絡語言模型利用上下文(有可能只用上文或只用下文,看模型的設計),來預測目標位置的詞,通過反向梯度下降,讓其儘可能的向目標詞靠攏。
  比較經典的是Word2vec中的CBOW 以及skip-gram;當然還有最近比較火的Bert模型(利用Masked Language Model)、Xlnet(Permutation Language Model)等基於transformer的語言模型。

語言模型評價指標

  利用Perplexity(ppl),Perplexity可以認爲是average branch factor(平均分支系數),即預測下一個詞時可以有多少種選擇。別人在作報告時說模型的PPL下降到90,可以直觀地理解爲,在模型生成一句話時下一個詞有90個合理選擇,可選詞數越少,我們大致認爲模型越準確。這樣也能解釋,爲什麼PPL越小,模型越好
  具體可以參考這篇blog

中文自然語言處理流程

中文自然語言處理流程可以表示如下:

  1. 語料獲取:可以利用已有的語料庫,也可以利用
  2. 語料預處理:包括語料清洗(例如去除廣告,爬蟲的html標籤等)、分詞、詞性標註、去停用詞等。
  3. 特徵工程:把詞表示成詞向量,使得計算機可以處理,詞表示方法有word2vec,ELMo,BERT等,word2vec包括有名的skip-gram模型和CWOB模型
  4. 特徵選擇:提取特徵子集,仍然保留原來的主體語義特徵,常見的特徵選擇方法主要有 DF、 MI、 IG、 CHI、WLLR、WFO 六種。
  5. 訓練模型:最近比較流行的是利用encoder-attention-decoder,即一堆詞向量輸入encoder,得到有上下文含義encode編碼,這一編碼輸入decoder中,得到最後的結果,同時在encoder與decoder之間可以引入attention機制。機器學習模型(KNN、SVM、Naive Bayes、決策樹、GBDT、K-means)、深度學習模型(CNN、RNN、LSTM、 Seq2Seq、FastText、TextCNN)等用於具體的下游NLP任務,分類、聚類、神經序列、情感分析、機器翻譯,對話系統,自然語言理解(NLU),自然語言生成(NLG),命名實體識別、推薦等。
  6. 評價指標:錯誤率、精度、準確率、精確度、召回率、F1 衡量、ROC 曲線、AUC 曲線

自然語言處理的任務

  引用一幅圖:


參考文獻:
《數學之美》

NLP之語言模型(推薦):https://www.cnblogs.com/dyl222/p/11005948.html

語言模型評價指標Perplexity:https://blog.csdn.net/index20001/article/details/78884646

自然語言處理之語言模型(LM):https://blog.csdn.net/qq_36330643/article/details/80143960

第01課:中文自然語言處理的完整流程:https://blog.csdn.net/dongdouzin/article/details/80814037

【NLP】徹底搞懂BERT:https://www.cnblogs.com/rucwxb/p/10277217.html

圖解BERT(NLP中的遷移學習):https://www.cnblogs.com/d0main/p/10165671.html

中文情感分類任務如何對bert語言模型微調,微調後的模型如何使用:https://blog.csdn.net/weixin_40015791/article/details/90410083

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