動手學深度學習筆記2文字預處理

2021-10-02 20:04:32 字數 1566 閱讀 8960

一、文字預處理

1.四個步驟:

①讀入文字

②分詞③建立字典,將每個詞對映到乙個唯一的索引(index)

④將文字從詞的序列轉換為索引的序列,方便輸入模型

讀入文字:

分詞:

建立字典:將字串轉換為數字,將每個詞對映到乙個唯一的索引編號。

兩個重要的分詞庫:nltk與spacy

二、語言模型

定義:一段自然語言文字可以看作是乙個離散時間序列,給定乙個長度為t的時間序列w1~wt,語言模型的目標就是評估該序列是否合理,即計算該序列的概率:

語言模型:

即,語言模型的引數就是詞的概率以及給定前幾個詞情況下的條件概率。

n元語法:

序列長度增加,計算和儲存多個詞共同出現的概率的複雜度會呈指數級增加。

注意:當n較小時,n元語法往往不準確;當n較大時,n元語法需要計算並儲存大量詞頻和多詞相鄰概率。

n元語法的缺陷:1.引數空間過大 2.資料稀疏

三、迴圈神經網路

1.模型結構:

注意:迴圈神經網路的構造:

其實,迴圈神經網路的本質是增加了時間序列對於下一次**的影響

2.梯度裁剪:

迴圈神經網路中較容易出現梯度衰減或梯度**,這會導致網路幾乎無法訓練。裁剪梯度(clip gradient)是一種應對梯度**的方法。假設我們把所有模型引數的梯度拼接成乙個向量g,並設裁剪的閾值是θ。裁剪後的梯度

其中l2的二範數不超過θ

3.困惑度:

我們通常使用困惑度(perplexity)來評價語言模型的好壞。困惑度是對交叉熵損失函式做指數運算後得到的值。特別地

①最佳情況下,模型總是把標籤類別的概率**為1,此時困惑度為1;

②最壞情況下,模型總是把標籤類別的概率**為0,此時困惑度為正無窮;

③基線情況下,模型總是**所有類別的概率都相同,此時困惑度為類別個數。

注意:任何乙個有效模型的困惑度必須小於類別個數

動手學深度學習筆記2

part1 模型選擇1 誤差與資料集 訓練誤差 training error 模型在訓練集上表現出的誤差。泛化誤差 generalization error 在任意乙個測試資料樣本上表現出的誤差的期望。舉個栗子,訓練誤差就是做往屆試卷 訓練 的錯誤率,泛化誤差則可以通過真正參加考試 測試 時的答題錯...

動手學深度學習學習筆記(2)

操作 算術操作 在pytorch中,同一種操作可能有很多種形式,下面用加法作為例子。加法形式一 y torch.rand 5,3 print x y 加法形式二 print torch.add x,y 還可指定輸出 result torch.empty 5,3 torch.add x,y,out r...

文字預處理 (4)文字糾錯

一般有兩種文字糾錯的型別 首先看一下non word的拼寫錯誤,這種錯誤表示此詞彙本身在字典中不存在,比如把 要求 誤寫為 藥求 把 correction 誤拼寫為 corrction 尋找這種錯誤很簡單,例如分完詞以後找到哪個詞在詞典中不存在,那麼這個詞就可能是錯誤拼出來的的詞。操作步驟 找到候選...