傳統的文字分類模型
深度學習文字分類模型
fasttext
fasttext 模型輸入乙個詞的序列(一段文字或者一句話),輸出這個詞序列屬於不同類別的概率。
序列中的詞和片語組成特徵向量,特徵向量通過線性變換對映到中間層,中間層再對映到標籤。
fasttext 在**標籤時使用了非線性啟用函式,但在中間層不使用非線性啟用函式。
fasttext 模型架構和 word2vec 中的 cbow 模型很類似。不同之處在於,fasttext **標籤,而 cbow 模型**中間詞。
這個模型本身是沒有什麼特別之處的,它就是利用詞向量的平均來做分類。
fastext本質上是乙個分類模型,當然它也是可以產生詞向量。不過多贅述。
textcnn詳細過程:第一層是圖中最左邊的7乘5的句子矩陣,每行是詞向量,維度=5,這個可以模擬為影象中的原始畫素點了。然後經過有 filter_size=(2,3,4) 的一維卷積層,每個filter_size 有兩個輸出 channel。第三層是乙個1-max pooling層,這樣不同長度句子經過pooling層之後都能變成定長的表示了,最後接一層全連線的 softmax 層,輸出每個類別的概率。
特徵:這裡的特徵就是詞向量,有靜態(static)和非靜態(non-static)方式。static方式採用比如word2vec預訓練的詞向量,訓練過程不更新詞向量,實質上屬於遷移學習了,特別是資料量比較小的情況下,採用靜態的詞向量往往效果不錯。non-static則是在訓練過程中更新詞向量。推薦的方式是 non-static 中的 fine-tunning方式,它是以預訓練(pre-train)的word2vec向量初始化詞向量,訓練過程中調整詞向量,能加速收斂,當然如果有充足的訓練資料和資源,直接隨機初始化詞向量效果也是可以的。
利用最後乙個詞的結果直接softmax,其實這裡最後乙個詞已經包括了前面這些詞的語義資訊了。
深度學習和文字分類
參考部落格 fasttext 模型輸入乙個詞的序列 一段文字或者一句話 輸出這個詞序列屬於不同類別的概率。序列中的詞和片語組成特徵向量,特徵向量通過線性變換對映到中間層,中間層再對映到標籤。fasttext 在 標籤時使用了非線性啟用函式,但在中間層不使用非線性啟用函式。fasttext 模型架構和...
文字分類深度學習實踐 學習記錄
word2vec的主要思路 通過單詞和上下文彼此 對應的兩個演算法分別為 也就是說模型的輸出概率代表著到我們詞典中每個詞有多大可能性跟input word同時出現。例如 如果我們向神經網路模型中輸入乙個單詞 soviet 那麼最終模型的輸出概率中,像 union russia 這種相關詞的概率將遠高...
文字分類 《動手學深度學習pytorch》
它把一段不定長的文字序列變換為文字的類別。情感分析 使用文字情感分類來分析文字作者的情緒。有廣泛的應用。應用預訓練的詞向量和含多個隱藏層的雙向迴圈神經網路與卷積神經網路,來判斷一段不定長的文字序列中包含的是正面還是負面的情緒。後續內容將從以下幾個方面展開 文字情感分類資料集 使用迴圈神經網路進 感分...