1. 程式人生 > >深度學習用於文字和序列

深度學習用於文字和序列

文字可以理解為單詞序列或字元序列      處理序列資料大的兩種深度學習演算法 1 迴圈神經網路  (recurrent neural network)2 一維卷積神經網路

演算法的應用:

神經網路不接受原始文字,和接受處理的數值張量,即文字向量化:

1 文字分割為單詞  2 文字分割為字元 3 提取單詞或者字元的n-gram(多個連續的單詞或字元的集合),然後將每個n-gram轉換為一個向量。  將文字分解而成的單元叫標記,將文字分解成為標記的過程叫做分詞。  文字向量化就是通過分詞,然後將數值向量與標記相關聯(one-hot編碼或者標記嵌入也叫詞嵌入),然後將向量組成序列張量,輸入到神經網路中。

關於詞袋和n-gram的關係  可以參考書籍《python深度學習》第166頁   這是我看過的最讚的的對於詞袋和n-gram解釋

 

迴圈神經網路RNN:遍歷所有序列元素,並儲存一個狀態  在Keras中有SimpleRNN(不能學習長期依賴,原因是因為梯度消失問題,類似於層數較多的非迴圈神經網路,層數增加,網路變得無法訓練)和LSTM(長短期記憶演算法long-shhort term memeory,它儲存資訊以便後面使用,防止較早期的訊號在處理中逐漸消失)以及GRU。