6.4 CNN Text Classification
文字也可以用 1D CNN 處理。Embedding 後的 token 序列可以被看成一段一維訊號,Conv1D 會在 token 軸上擷取局部 pattern,例如「payment failed」、「delivery delayed」、「login error」這類短語。
1. 學習目標
本篇聚焦局部關鍵短語明顯的文字分類任務。若類別常由幾個 token 組合決定,CNN text classifier 通常訓練快、結構簡潔,也能成為 LSTM 以外的 baseline。
2. Conv1D 如何看文字?
文字經過 TextVectorization 和 Embedding 後,shape 會變成 (sequence_length, embedding_dim)。Conv1D 在 token 軸上滑動,學習局部 n-gram pattern,再透過 pooling 整理成句子特徵。
3. 實作流程
Notebook 使用和 6.3 相同的客服訊息三分類資料,建立 Embedding -> Conv1D -> GlobalMaxPooling1D -> Dense 模型,並和 LSTM 一樣輸出 confusion matrix 與 classification report。
4. 如何套用自己的資料?
若任務很依賴局部關鍵詞或短語,例如問題分類、意圖分類、客服 routing、標籤分類,可以先試 CNN text classifier。可調整 kernel_size 來控制模型看的 token 範圍,例如 3、5 或 7。
5. 小結
CNN text classifier 是快速、實用的 NLP baseline。它不一定理解長距離語意,但對局部短語與關鍵詞明顯的分類任務很有效。