CH3.1 自然語言處理技術與應用
自然語言處理技術與應用
NLP 定義(NLU 理解+NLG 生成)→ 技術演進四階段(規則式→統計式→深度學習→預訓練語言模型)→ 前處理(分詞、詞性標注、詞形還原/詞幹提取、停用詞移除)→ 詞彙向量化技術光譜(離散表示 One-hot/BoW → 統計表示 TF-IDF/N-gram → 靜態詞嵌入 Word2Vec/GloVe/FastText → 語境型詞嵌入 ELMo/BERT/GPT)→ Transformer 架構(Self-Attention+Encoder-Decoder)→ 預訓練+微調範式(Prompt-based/Few-shot/Zero-shot/RAG/LoRA)→ 五大應用(文字分類、情感分析、對話系統、文字生成與摘要、機器翻譯)→ 三層風險(資料層/模型層/應用層)。
1. NLP 的定義與範疇
NLP(Natural Language Processing,自然語言處理)是 AI 領域中使電腦能夠「理解、處理並產生」自然語言的核心技術。其核心目標可簡化為三個任務層次:
| 任務 | 內容 |
|---|---|
| 理解(Understand) | 從語言中解析語法結構與語意,辨識語者意圖與情緒 |
| 處理(Process) | 將語言轉換為電腦可操作結構(特徵向量、語法樹、標注格式) |
| 生成(Generate) | 根據情境與目標自動產出自然、流暢、具邏輯的文字或語音 |
其中兩個最核心的子領域:
| 子領域 | 聚焦方向 | 代表任務 |
|---|---|---|
| NLU(Natural Language Understanding) | 理解語法結構與語意邏輯,判讀意圖/情緒 | 意圖辨識、NER、情感分析 |
| NLG(Natural Language Generation) | 將數據/知識/邏輯轉換為人類可讀語句 | 自動摘要、回應生成、報告撰寫 |
NLP 是總稱框架,NLU 負責「理解」端、NLG 負責「生成」端——例如客服機器人先用 NLU 理解使用者輸入,再用 NLG 產生回覆,兩者合作構成完整的 NLP 應用流程。
2. NLP 技術演進脈絡
依技術世代分為四階段,每階段解決前一階段的痛點但也帶來新限制:
| 階段 | 年代 | 核心方法 | 代表技術 | 解決痛點 | 階段限制 |
|---|---|---|---|---|---|
| 規則式方法 | 1980s–1990s | 手動設計語法規則與詞彙辭典 | ELIZA、專家系統 | 提供高可解釋性的語言處理邏輯 | 完全依賴專家知識、無法應對語境變化、維護成本高 |
| 統計語言模型 | 1990s–2010s | 大量語料訓練機率模型 | N-gram、HMM、CRF | 自動學習語言統計結構、可擴展性提升 | 缺乏深度語意理解、依賴大量標注資料、無法捕捉長距離依賴 |
| 深度學習模型 | 2010–2018 | 神經網路處理語言序列 | RNN、LSTM、GRU | 有效捕捉長距離依賴,不再依賴人工特徵 | 需大量算力與資料、難以平行化、訓練時間長 |
| 預訓練語言模型 | 2018–至今 | 大規模語料預訓練+下游微調 | BERT、GPT、RoBERTa、T5 | 以 Self-Attention 克服長距離依賴,遷移學習降低標注需求 | 運算資源需求極高、模型龐大、推理效率仍是挑戰 |
2017 年 Transformer 架構的提出是關鍵轉捩點:以 自注意力機制(Self-Attention)取代序列遞迴結構,使每個詞能同時考慮整個輸入序列,解決「長距離依賴問題」並可並行運算。
3. NLP 前處理技術
| 技術 | 作用 | 方式/特性 |
|---|---|---|
| 分詞(Tokenization) | 拆解文字為單字、詞組或子詞 | 基於空白、斷詞字典或子詞分解(如 BPE);中文等無空白語言處理難度較高 |
| 詞性標注(POS Tagging) | 標記詞的語法角色(名詞、動詞、形容詞等) | 常用於語法分析、NER |
| 詞形還原(Lemmatization) | 依語法規則與字典還原為字典形式(如 running→run) | 語意保留佳,適合語意分析、問答系統 |
| 詞幹提取(Stemming) | 裁剪字首字尾取詞幹(如 connections→connect) | 速度快但結果不一定為有效單字,準確性低於 Lemmatization |
| 停用詞移除(Stopword Removal) | 移除語意貢獻低的高頻詞(is, the, at) | 降低維度、提升關鍵詞比重;但對話生成等任務需保留以維持語句自然 |
詞形還原與詞幹提取都屬於「文字正規化」,但方法不同:詞形還原靠字典規則(結果一定是真實單字),詞幹提取靠字尾裁剪規則(結果可能不是有效單字,如 happiness→happi)。停用詞移除不是「一律都要做」——對話生成任務中移除「我」「在」反而會破壞語句自然度。
4. 詞彙向量化技術光譜
NLP 模型無法直接處理文字,必須先將文字轉換為向量(詞彙向量化/文字表示學習)。技術演進脈絡:統計方法(TF-IDF)→分布式向量(Word2Vec)→上下文敏感的動態詞向量(BERT Embeddings)。
| 類別 | 代表技術 | 分布式 | 語境敏感 | 優點 | 限制 |
|---|---|---|---|---|---|
| 純離散表示 | One-hot Encoding、Bag of Words | 非分布式 | 非語境型 | 結構簡單、易實作 | 向量稀疏、無語意、維度高 |
| 統計型表示 | TF-IDF | 非分布式 | 非語境型 | 能反詞彙重要性、實作簡單 | 忽略上下文與語序、無法處理多義詞 |
| 統計共現表示 | N-gram | 有限分布性 | 上下文敏感(短範圍) | 可表示語序與詞組共現 | 長句效果差、資料稀疏、無法捕捉長距依賴 |
| 靜態詞嵌入 | Word2Vec、GloVe、FastText | 分布式 | 非語境型 | 可表示語意結構、向量可運算、訓練成本低 | 每個詞只有一個向量,忽略上下文語意(無法處理多義詞) |
| 語境型詞嵌入 | ELMo、BERT、GPT | 分布式 | 動態語境型 | 語意精準、支援上下文、處理同詞異義佳 | 模型大、需要高算力與記憶體 |
(1) 離散與統計表示
- One-hot Encoding:每個詞為一個高維向量,僅對應位置為 1,其餘為 0;向量稀疏、無法捕捉語意關聯。
- Bag of Words(BoW):以詞頻向量表示文件,忽略詞序;簡單但無法處理同義詞與語境變化。
- TF-IDF:結合「詞在單一文件的出現頻率(TF)」與「該詞在整體語料庫的稀有程度(IDF)」衡量詞彙的資訊價值。
範例:語料庫 1000 篇文件,「AI」只出現在 10 篇中;某文件共 100 詞、「AI」出現 3 次。則 \(TF=0.03\),\(IDF=\log(100)\approx 2\),\(\text{tf-idf}=0.06\)。
- N-gram:將連續 N 個詞組成特徵單位,保留詞序與語法結構;N 值愈大能保留更長語境但特徵維度也急劇膨脹(稀疏性問題)。
(2) 分布式詞嵌入(靜態)
「語言的語意是分布式的」——詞義由其與其他詞彙的共現關係決定,語意相近的詞會被映射到向量空間中相近位置。
| 模型 | 提出單位/年份 | 原理 |
|---|---|---|
| Word2Vec | Google, 2013 | 神經網路訓練,CBOW(由上下文預測中心詞,訓練快)/Skip-gram(由中心詞預測上下文,對低頻詞更有效) |
| GloVe | 史丹佛 NLP, 2014 | 利用整體語料庫的詞共現矩陣,透過矩陣分解學習向量(非局部上下文) |
| FastText | Facebook AI (FAIR), 2016 | 將詞切為子詞(subword n-gram)後加總/平均,可處理未見過的新詞(OOV) |
Word2Vec 的經典例子:king − man + woman ≈ queen,展現詞向量可進行語意邏輯運算。
靜態詞嵌入(Word2Vec、GloVe)每個詞只有「一個固定向量」,無法區分同詞異義(如 bank 指銀行或河岸皆同一向量)——這是與語境型詞嵌入最大差異,是常考比較點。
(3) 語境型詞嵌入(動態)
詞向量會隨語境動態改變,能處理多義詞、語意歧義。
| 模型 | 提出單位/年份 | 技術基礎 | 特色 |
|---|---|---|---|
| ELMo | AllenNLP, 2018 | 雙向 LSTM(BiLSTM) | 可整合進現有模型增強語意表示 |
| BERT | Google, 2018 | 雙向 Transformer Encoder | 遮蔽語言模型(MLM)+句子關聯預測(NSP),同時理解上下文(雙向) |
| GPT | OpenAI | 單向 Transformer(自迴歸生成,Autoregressive) | 專長文字生成、對話續寫,單向預測(只看前文) |
BERT 是雙向 Encoder,擅長「理解類」任務(問答、分類、NER);GPT 是單向 Decoder(自迴歸),擅長「生成類」任務(對話、創作、摘要)。這是中級考試最常見的比較題型。
5. Transformer 架構
Transformer(2017,Google 提出)以 Self-Attention(自注意力機制)取代 RNN 的序列遞迴結構。
| 核心概念 | 說明 |
|---|---|
| Self-Attention | 讓模型在處理每個詞時,同時考慮序列中所有其他詞的關聯程度並加權表示,可捕捉長距離依賴(如「主詞—動詞」跨越多詞) |
| Encoder-Decoder 架構 | Encoder 將輸入序列轉為語意向量;Decoder 接收該向量逐步產生目標語言/文字;適用於機器翻譯、摘要生成等 Seq2Seq 任務 |
| 全平行架構(Fully Parallel) | Self-Attention 可一次性平行處理整個序列(不需像 RNN 逐步處理時間步),訓練速度大幅提升,適合 GPU/TPU 與超大規模語料 |
Transformer 的優勢是「全平行運算」而非「循環記憶」——這點恰與 RNN/LSTM 相反,選擇題常以此互換選項混淆。
6. 預訓練語言模型範式與高效應用技術
「預訓練再微調(Pre-train and Fine-tune)」已成主流:先在大規模語料上做通用預訓練,再針對特定任務微調(Fine-tuning)。
(1) Prompt-based 方法與小樣本學習
| 方法 | 定義 | 示例 |
|---|---|---|
| 提示學習(Prompt-based Learning) | 將任務轉化為填空/問答格式,讓模型用既有語言理解能力直接輸出 | 「這條評論是[情感]。」 |
| Few-shot Learning | 提供少量示例提升模型在新任務的理解力 | 提供 5 條已標註情感評論 |
| Zero-shot Learning | 無任何任務示例,仍能基於既有語言理解推理輸出 | 直接指令 GPT 分類郵件類別 |
(2) 模型應用強化技術
| 技術 | 全名 | 核心概念 |
|---|---|---|
| RAG | Retrieval-Augmented Generation(檢索增強生成) | 結合「外部知識檢索」與「語言生成」,先檢索相關資料再生成答案,提升背景知識要求高任務的準確性 |
| LoRA | Low-Rank Adaptation(低秩自適應) | 向原模型添加輕量級低秩參數而非修改整體模型結構,實現高效微調與快速部署(適合邊緣設備) |
RAG=「先查資料再回答」(外部知識+生成);LoRA=「只調整一小部分參數」(輕量微調)。兩者常一起考、常互相混淆,務必分清各自解決的問題(知識不足 vs 微調成本高)。
7. NLP 主要應用領域
| 應用 | 說明 | 實務案例 |
|---|---|---|
| 文字分類(Text Classification) | 將文字自動歸類至預定義類別 | 垃圾郵件偵測、商品評論分類、客服請求分類 |
| 情感分析(Sentiment Analysis) | 辨識文本情感(正面/負面/中立) | 社群輿情監控、顧客滿意度分析 |
| 對話系統(Chatbot) | 任務導向型(訂票、查詢)vs 開放式型(如 ChatGPT) | 航空客服機器人、開放式對話助理 |
| 文字生成與摘要 | 自動建立文本內容 | 新聞摘要、廣告標題生成、自動報表 |
| 機器翻譯(Machine Translation) | 跨語言轉換 | 商業文件翻譯、多語客服 |
| NER/關係抽取 | 從非結構化文本抽取結構化資訊 | 法律文書實體標註、知識圖譜構建 |
對話系統的「任務導向」與「開放式」是兩種不同類型:任務導向系統目標明確、範圍受限(訂票、查詢天氣);開放式對話系統(如 ChatGPT)可自由對話但在語境理解與長期對話一致性上仍面臨挑戰,實務上仍需結合人工監控。
8. NLP 應用的負責任使用與三層風險
企業導入 NLP 須考量的風險可分為資料層、模型層、應用層:
(1) 資料層風險
| 風險類型 | 情境示例 | 處理機制 |
|---|---|---|
| 資料隱私 | 客服對話紀錄含真實姓名、住址、帳號等敏感資訊 | 去識別化/匿名化、遵循 GDPR、《個資法》 |
| 標註與品質風險(資料偏見 Data Bias) | 語料標註不一致或樣本偏斜(僅特定語言族群) | 標註審查、資料增強、多重標註 |
| 資料授權與版權風險 | 網路爬蟲抓取未授權資料、生成內容侵犯著作權 | 確保資料授權、版權檢查工具、加註版權聲明 |
去識別化 vs 匿名化比較:
| 技術 | 定義 | 常見方法 | 適用情境 |
|---|---|---|---|
| 去識別化(De-identification) | 資料仍保有與原始個體連結的潛在可能(可透過對應代碼重新辨識) | 代碼替換(Pseudonymization)、資料抽象化、資料遮罩(Masking) | 需部分保留可識別性(研究、系統測試) |
| 匿名化(Anonymization) | 資料所有可辨識個人資訊被徹底移除或破壞,無法再與特定個體連結 | 徹底刪除辨識欄位、資料隨機化(Randomization)、聚合處理(Aggregation) | 開放資料、法規要求「無可辨識性」的情境 |
去識別化「可逆」(保留重新辨識的可能性,如透過代碼對照),匿名化「不可逆」(徹底無法辨識個體)——這是選擇題常設的陷阱,兩者不可混為一談。
(2) 模型層風險
| 風險 | 情境示例 | 處理機制 |
|---|---|---|
| 模型偏見(Model Bias) | Chatbot 預設「男性主管=果斷、女性主管=情緒化」的性別刻板印象 | 使用 WEAT(Word Embedding Association Test)檢測詞向量偏見;平衡訓練資料 |
| 公平性評估不足 | 少數語言(如泰文、原住民族語)理解與分類表現顯著偏低 | 專案初期即納入公平性指標、多維度資料審查、人工覆核機制 |
(3) 應用層風險
| 風險 | 情境示例 | 處理機制 |
|---|---|---|
| 語意理解限制 | 反語「這服務真的好讚^_^」被誤判為正面;方言/俚語誤解(「很雷」誤解為快) | 結合語境型詞向量(BERT/GPT)、加入常識推理模組(Common Sense Reasoning) |
| 部署與維運風險 | FAQ Chatbot 未再訓練導致回答錯誤;推論速度過慢、資源消耗過高 | 回饋機制、容錯與資源優化、版本控制與更新流程 |
| 生成內容風險(模型幻覺) | Chatbot 生成「法國首都在柏林」等虛假但語法正確的內容 | 事實檢查機制、高風險領域人工審核、風險預告聲明 |
模型幻覺(Model Hallucination)指模型生成的內容「語法流暢但事實錯誤或憑空捏造」,即使語氣自然也不代表內容正確——這是生成式 NLP 應用中最核心的風險概念,務必與「模型偏見」(Bias,反映訓練資料的社會性偏差)區分清楚:幻覺是事實性錯誤,偏見是系統性的立場/刻板印象傾斜。
🔗 相關名詞卡
🗒️ 私人備註區
📝 章節考題自測(先作答,再點開解答)
Q1. 下列有關 NLU 與 NLG 的敘述,何者正確?
(A) NLU 負責生成語句,NLG 負責理解語意 (B) NLU 負責理解語意與意圖,NLG 負責產生自然語言回應 (C) NLU 與 NLG 是完全相同的技術 (D) NLG 只能用於語音辨識
解答與解析
參考 Ans: (B) NLU(自然語言理解)負責「理解」端——解析語法結構、語意,判斷意圖與情緒;NLG(自然語言生成)負責「產出」端——將資料或語意轉換為自然語言文字表達。(A) 恰好說反;(C) 兩者分工不同;(D) NLG 與語音辨識無直接對應關係。
Q2. 下列哪一項技術的提出,使 NLP 得以擺脫序列遞迴結構,改採平行化運算並有效解決長距離依賴問題?
(A) N-gram (B) TF-IDF (C) Self-Attention(Transformer) (D) One-hot Encoding
解答與解析
參考 Ans: (C) Self-Attention(自注意力機制)是 Transformer 架構的核心,讓模型同時考慮序列中所有詞的關聯,取代 RNN 的序列遞迴,達成全平行運算並解決長距離依賴問題。其餘選項皆為傳統統計/離散表示法,與此無關。
Q3. 關於 BERT 與 GPT 的比較,下列敘述何者錯誤?
(A) BERT 為雙向 Transformer Encoder (B) GPT 為單向 Transformer,採自迴歸生成方式 (C) BERT 較擅長生成類任務,GPT 較擅長理解類任務 (D) BERT 以遮蔽語言模型(MLM)進行預訓練
解答與解析
參考 Ans: (C) 錯誤在於兩者角色說反:BERT(雙向 Encoder)擅長「理解類」任務(問答、分類、NER);GPT(單向 Decoder、自迴歸)擅長「生成類」任務(對話、創作、摘要)。(A)(B)(D) 敘述皆正確。
Q4. 下列何者是「靜態詞嵌入」(如 Word2Vec、GloVe)最大的限制?
(A) 訓練成本過高,難以實際應用 (B) 每個詞只有單一固定向量,無法處理同詞異義(多義詞) (C) 無法表示詞彙的語意結構 (D) 只能處理英文,無法處理中文
解答與解析
參考 Ans: (B) 靜態詞嵌入為「非語境型」,每個詞在所有語境中都只有一個固定向量表示,因此無法區分「bank」在不同語境中是「銀行」還是「河岸」。這正是語境型詞嵌入(ELMo、BERT)被提出的原因。(A)(C)(D) 皆非其核心限制(訓練成本相對低、可表示語意結構、亦可訓練中文詞向量)。
Q5. 有關「去識別化」與「匿名化」的比較,下列敘述何者正確?
(A) 兩者完全相同,可交互使用 (B) 去識別化資料仍具重新辨識個體的潛在可能,匿名化則徹底無法辨識 (C) 匿名化比去識別化更容易被還原 (D) 去識別化只能用於醫療資料
解答與解析
參考 Ans: (B) 去識別化(De-identification)保有透過代碼等方式重新辨識的可能性,適用於需部分保留可識別性的情境(如系統測試);匿名化(Anonymization)則徹底移除或破壞可辨識資訊,無法再與特定個體連結,適用於開放資料等情境。(C) 說反了,匿名化更難被還原。(D) 並無此限制。
Q6. 「檢索增強生成」(RAG)技術的核心概念為何?
(A) 透過壓縮模型參數以加速推論 (B) 結合外部知識檢索與語言生成,提升背景知識要求高任務的準確性 (C) 僅調整模型的低秩參數以降低微調成本 (D) 移除訓練資料中的偏見詞彙
解答與解析
參考 Ans: (B) RAG(Retrieval-Augmented Generation)先從外部知識庫檢索相關資料,再結合生成模型產出答案,可提升模型在背景知識要求高任務(如醫療、法律問答)中的準確性。(C) 描述的是 LoRA 而非 RAG,兩者常被放在一起考、須仔細分辨。
Q7. 下列關於「模型幻覺」(Model Hallucination)的敘述,何者正確?
(A) 指模型因訓練資料存在性別/種族偏見而產生歧視性語言 (B) 指模型生成語法流暢但內容虛假或與事實不符的回應 (C) 指模型因運算資源不足而拒絕生成內容 (D) 指模型對敏感詞彙自動進行過濾
解答與解析
參考 Ans: (B) 模型幻覺指生成內容語氣自然、語法正確,但資訊卻是虛假、誤導或憑空捏造的(如答錯法國首都)。(A) 描述的是「模型偏見」而非幻覺,兩者是不同的風險概念,常在考題中互為干擾選項。
Q8. 下列何者最適合用來衡量一個詞彙相對於整份文件與整體語料庫的重要程度?
(A) One-hot Encoding (B) Bag of Words (C) TF-IDF (D) Word2Vec
解答與解析
參考 Ans: (C) TF-IDF 結合「詞在單一文件的出現頻率(TF)」與「該詞在整體語料庫的稀有程度(IDF)」,能凸顯關鍵詞並忽略過於常見的無意義詞。(A)(B) 僅考慮出現與否/頻率,不考慮跨文件的稀有程度;(D) 是詞嵌入技術,非統計權重方法。
Q9. 有關 Few-shot Learning 與 Zero-shot Learning 的差異,下列敘述何者正確?
(A) Few-shot 完全不需任何範例,Zero-shot 需要大量標註資料 (B) 兩者皆需要對模型重新進行完整訓練 (C) Few-shot 提供少量示例協助模型理解新任務,Zero-shot 則無任何示例、僅依賴既有語言理解進行推理 (D) 兩者僅適用於影像辨識任務
解答與解析
參考 Ans: (C) Few-shot Learning 提供少量標註範例(如 5 條情感標註評論)協助模型適應新任務;Zero-shot Learning 完全不提供任何任務範例,僅憑模型既有的語言理解能力直接推理輸出。兩者皆不需要對模型進行完整重新訓練,也不限於影像任務。