2.5 文字資料向量化
文字資料進入神經網路前,必須先轉成 token index 或向量。本篇示範 Keras TextVectorization,並建立一個簡單文字分類模型。
1. 學習目標
神經網路不能直接理解原始文字。文字需要經過標準化、切詞、建立詞彙表、轉成整數序列,才能進入 Embedding、RNN、CNN 或 Transformer。
2. TextVectorization 做了什麼?
TextVectorization 可以完成文字標準化、切詞、詞彙表建立與輸出序列。它的 adapt() 應只使用訓練文字資料。
3. 常見輸出模式
| output_mode | 說明 | 適合情境 |
|---|---|---|
int |
輸出 token index 序列 | 搭配 Embedding |
multi_hot |
詞是否出現 | 簡單文字分類 |
count |
詞頻 | 傳統 bag-of-words |
tf_idf |
TF-IDF 權重 | 稀疏文字特徵 |
4. 實作流程
Notebook 使用一組小型句子資料,示範 TextVectorization 如何建立 vocabulary,並建立 Embedding + GlobalAveragePooling 的簡單文字分類模型。
5. 如何套用自己的資料?
替換文字陣列與標籤即可。若文字較長,可調整 output_sequence_length;若詞彙較多,可調整 max_tokens。
6. 小結
文字向量化是 NLP 任務的第一步。先把 TextVectorization 流程建立清楚,後續才能銜接 LSTM、CNN text classifier 或 Transformer。