CNN文本分類


  CNN用於文本分類本就是一個不完美的解決方案,因為CNN要求輸入都是一定長度的,而對於文本分類問題,文本序列是不定長的,RNN可以完美解決序列不定長問題,

因為RNN不要求輸入是一定長度的。那么對於CNN用於解決文本分類問題而言,可以判斷文本的長度范圍,例如如果大多數文本長度在100以下,極少數在100以上,那就

可以設定文本長度是100,不足100的文本用padding補齊,多於100的文本則截斷。具體過程如下圖:

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

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

    • CNN不能完美解決序列式問題
    • CNN卷積相當於N-gram(使用一定長度的卷積核),LSTM可以提取更長的依賴
    • 雙向RNN會增強效果
    • CNN模型並行程度高,更快

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM