跳轉到

6.3 LSTM Text Classification

範例程式:Open In Colab

LSTM 可以逐步讀取 token 序列,保留前後文狀態。本篇使用三類客服訊息資料,示範如何用 TextVectorization、Embedding 與 LSTM 建立多類別文字分類器。

1. 學習目標

本篇聚焦需要句子順序資訊的文字分類。例如同樣出現「not」與「good」,順序與上下文會影響語意。LSTM 會依序讀取 token,比單純 bag-of-words 更能表達前後文。

2. 範例資料

Notebook 使用三類客服訊息:

  1. billing:帳單、付款、退款。
  2. shipping:出貨、配送、延遲。
  3. technical:登入、錯誤、功能問題。

每筆資料是一句英文短句,label 是類別 index。

3. 模型流程

raw text -> TextVectorization(int) -> Embedding -> LSTM -> Dense softmax

多類別分類使用 softmaxsparse_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。