跳轉到

6.1 TextVectorization

範例程式:Open In Colab

文字進入神經網路前,必須先轉成數字。本篇使用 Keras TextVectorization 示範文字標準化、切詞、建立 vocabulary,以及常見輸出格式:token index、multi-hot、count 與 TF-IDF。

1. 學習目標

本篇聚焦文字資料如何進入模型。原始句子是字串,模型不能直接計算;需要先把文字轉成固定長度的 token 序列或向量特徵。TextVectorization 可以把這個流程包成 Keras layer,讓訓練與部署使用同一套文字前處理。

2. TextVectorization 做了什麼?

TextVectorization 主要包含四個步驟:

  1. standardize:例如轉小寫、移除標點。
  2. split:把句子切成 token。
  3. adapt:從訓練資料建立 vocabulary。
  4. output:輸出整數序列、multi-hot、count 或 TF-IDF。

需要注意的是,adapt() 應只使用訓練文字資料,避免 validation/test 資訊洩漏。

3. 常見輸出模式

output_mode 輸出 適合情境
int token index 序列 Embedding、LSTM、CNN、Transformer
multi_hot 詞是否出現 快速文字分類 baseline
count 詞頻 bag-of-words 類任務
tf_idf TF-IDF 權重 傳統文字特徵或小型分類器

4. 實作流程

Notebook 會建立一組小型客服評論文字,示範不同 output_mode 的差異,並建立一個 TextVectorization + Embedding + GlobalAveragePooling1D 的簡單文字分類模型。

5. 如何套用自己的資料?

換成自己的文字資料時,先整理成 textslabels。若要使用深度學習模型,通常先用 output_mode='int',再接 Embedding。若資料很小或只是要 baseline,可以先用 multi_hottf_idf 搭配 Dense layer。

6. 小結

TextVectorization 是 Keras NLP 任務的入口。先把文字前處理放進模型流程,後續才容易銜接 sentiment classification、LSTM、CNN text classifier 或 Transformer。