6.3 LSTM Text Classification
LSTM 可以逐步讀取 token 序列,保留前後文狀態。本篇使用三類客服訊息資料,示範如何用 TextVectorization、Embedding 與 LSTM 建立多類別文字分類器。
1. 學習目標
本篇聚焦需要句子順序資訊的文字分類。例如同樣出現「not」與「good」,順序與上下文會影響語意。LSTM 會依序讀取 token,比單純 bag-of-words 更能表達前後文。
2. 範例資料
Notebook 使用三類客服訊息:
- billing:帳單、付款、退款。
- shipping:出貨、配送、延遲。
- technical:登入、錯誤、功能問題。
每筆資料是一句英文短句,label 是類別 index。
3. 模型流程
多類別分類使用 softmax 與 sparse_categorical_crossentropy。最後一層神經元數量等於類別數。
4. 實作流程
Notebook 會產生三類句子資料,建立 vocabulary,訓練 LSTM classifier,並用 confusion matrix、classification report 與新句子預測檢查分類效果。
5. 如何套用自己的資料?
若你的文字分類任務有多個類別,先建立類別名稱與 label mapping。句子較長時調整 output_sequence_length;資料較多時調整 max_tokens 與 Embedding 維度。若資料量很小,LSTM 可能過擬合,需搭配 Dropout 或更簡單的模型。
6. 小結
LSTM text classification 適合需要順序資訊的文字分類任務。它不是所有 NLP 問題的唯一選擇,但能作為理解文字序列模型的重要 baseline。