CNN文本分類

  CNN用於文本分類本就是一個不完美的解決方案,由於CNN要求輸入都是必定長度的,而對於文本分類問題,文本序列是不定長的,RNN能夠完美解決序列不定長問題,網絡

由於RNN不要求輸入是必定長度的。那麼對於CNN用於解決文本分類問題而言,能夠判斷文本的長度範圍,例如若是大多數文本長度在100如下,極少數在100以上,那就blog

能夠設定文本長度是100,不足100的文本用padding補齊,多於100的文本則截斷。具體過程以下圖:神經網絡

  首先把分詞以後的句子按照設定的維度展開,這裏維度是9,每一個單詞都會有一個向量表達,維度是6(word embedding),而後用一個一維卷積核(也能夠是多個)對其進行卷積操做,注意,單詞的Embedding的長度就是原始輸入的通道數,也就是卷積核的通道數;卷積操做以後,再對其進行Pooling操做,有max-pool和average-pool操做兩種,注意,這裏是對時間維度,也就是句子序列上作Pooling;最後再輸入到一個全鏈接神經網絡中,獲得分類結果。並行

CNN和RNN用於解決文本分類問題的對比:im

    • CNN不能完美解決序列式問題
    • CNN卷積至關於N-gram(使用必定長度的卷積核),LSTM能夠提取更長的依賴
    • 雙向RNN會加強效果
    • CNN模型並行程度高,更快
相關文章
相關標籤/搜索