6.2 Sentiment Classification
情緒分析是文字分類最常見的入門任務。模型讀取一段文字後,判斷它偏正向或負向。本篇使用小型合成評論資料,示範 TextVectorization、Embedding、GlobalAveragePooling 與 sigmoid 二元分類流程。
1. 學習目標
本篇聚焦文字二元分類。例如判斷評論正負向、客服訊息是否滿意、回饋是否抱怨、或留言是否需要人工處理。重點是建立一條可以替換資料的標準流程,而不是追求大型語言模型效果。
2. 資料格式
資料可以整理成兩欄:
| text | label |
|---|---|
| the product is great and useful | 1 |
| the service is slow and confusing | 0 |
文字欄位是原始句子,label 是分類標籤。二元分類常用 0/1,多類別任務則改成多個類別 index。
3. 模型流程
本篇模型流程是:
TextVectorization 負責把文字轉成 token index;Embedding 把 token 轉成向量;Pooling 把整句文字壓成句子向量;最後輸出正向機率。
4. 實作流程
Notebook 會產生正向與負向評論句子,切分 train/validation/test,建立文字向量化 layer,訓練二元分類模型,並用 classification report 與新句子預測檢查結果。
5. 如何套用自己的資料?
換成自己的資料時,主要修改文字欄位、label 欄位、max_tokens 與 output_sequence_length。若句子較長,增加 sequence length;若詞彙較多,增加 max_tokens。adapt() 只使用訓練文字。
6. 小結
Sentiment classification 是 NLP 模型的基本模板。只要先建立文字向量化、Embedding 與分類輸出層,就能延伸到客服分類、留言分類、文件標籤判斷等任務。