Task02:文本預處理;語言模型;循環神經網絡基礎
文本預處理
讀入文本
分詞
建立字典
將詞轉爲索引
用現有工具進行分詞
語言模型
語言模型
假設序列 w1,w2,…,wT 中的每個詞是依次生成的,我們有
P(w1,w2,…,wT)=∏t=1TP(wt∣w1,…,wt−1)=P(w1)P(w2∣w1)⋯P(wT∣w1w2⋯wT−1)
例如,一段含有4個詞的文本序列的概率
P(w1,w2,w3,w4)=P(w1)P(w2∣w1)P(w3∣w1,w2)P(w4∣w1,w2,w3).
語言模型的參數就是詞的概率以及給定前幾個詞情況下的條件概率。設訓練數據集爲一個大型文本語料庫,如維基百科的所有條目,詞的概率可以通過該詞在訓練數據集中的相對詞頻來計算,例如, w1 的概率可以計算爲:
P^(w1)=n(w1)n
其中 n(w1) 爲語料庫中以 w1 作爲第一個詞的文本的數量, n 爲語料庫中文本的總數量。
類似的,給定 w1 情況下, w2 的條件概率可以計算爲:
P^(w2∣w1)=n(w1,w2)n(w1)
其中 n(w1,w2) 爲語料庫中以 w1 作爲第一個詞, w2 作爲第二個詞的文本的數量。
n元語法¶
序列長度增加,計算和存儲多個詞共同出現的概率的複雜度會呈指數級增加。 n 元語法通過馬爾可夫假設簡化模型,馬爾科夫假設是指一個詞的出現只與前面 n 個詞相關,即 n 階馬爾可夫鏈(Markov chain of order n ),如果 n=1 ,那麼有 P(w3∣w1,w2)=P(w3∣w2) 。基於 n−1 階馬爾可夫鏈,我們可以將語言模型改寫爲
P(w1,w2,…,wT)=∏t=1TP(wt∣wt−(n−1),…,wt−1).
以上也叫 n 元語法( n -grams),它是基於 n−1 階馬爾可夫鏈的概率語言模型。例如,當 n=2 時,含有4個詞的文本序列的概率就可以改寫爲:
P(w1,w2,w3,w4)=P(w1)P(w2∣w1)P(w3∣w1,w2)P(w4∣w1,w2,w3)=P(w1)P(w2∣w1)P(w3∣w2)P(w4∣w3)
當 n 分別爲1、2和3時,我們將其分別稱作一元語法(unigram)、二元語法(bigram)和三元語法(trigram)。例如,長度爲4的序列 w1,w2,w3,w4 在一元語法、二元語法和三元語法中的概率分別爲
P(w1,w2,w3,w4)P(w1,w2,w3,w4)P(w1,w2,w3,w4)=P(w1)P(w2)P(w3)P(w4),=P(w1)P(w2∣w1)P(w3∣w2)P(w4∣w3),=P(w1)P(w2∣w1)P(w3∣w1,w2)P(w4∣w2,w3).
當 n 較小時, n 元語法往往並不準確。例如,在一元語法中,由三個詞組成的句子“你走先”和“你先走”的概率是一樣的。然而,當 n 較大時, n 元語法需要計算並存儲大量的詞頻和多詞相鄰頻率
循環神經網絡基礎
循環神經網絡的構造
我們先看循環神經網絡的具體構造。假設 Xt∈Rn×d 是時間步 t 的小批量輸入, Ht∈Rn×h 是該時間步的隱藏變量,則:
Ht=ϕ(XtWxh+Ht−1Whh+bh).
其中, Wxh∈Rd×h , Whh∈Rh×h , bh∈R1×h , ϕ 函數是非線性激活函數。由於引入了 Ht−1Whh , Ht 能夠捕捉截至當前時間步的序列的歷史信息,就像是神經網絡當前時間步的狀態或記憶一樣。由於 Ht 的計算基於 Ht−1 ,上式的計算是循環的,使用循環計算的網絡即循環神經網絡(recurrent neural network)。
在時間步 t ,輸出層的輸出爲:
Ot=HtWhq+bq.
其中 Whq∈Rh×q , bq∈R1×q 。