贈ChatGPT中文範例的自然語言處理入門書 Real-World Natural Language Processing: Practical Applications with Deep Learning

[美] 萩原聖人(Masato Hagiwara)著 葉偉民、葉孟良、陳佳偉 譯

  • 贈ChatGPT中文範例的自然語言處理入門書-preview-1
  • 贈ChatGPT中文範例的自然語言處理入門書-preview-2
  • 贈ChatGPT中文範例的自然語言處理入門書-preview-3
贈ChatGPT中文範例的自然語言處理入門書-preview-1

買這商品的人也買了...

商品描述

雖然訓練電腦以解釋和生成語音和文本這個挑戰很大,但是它在減少勞動力和改進人機交互方面所帶來的回報也很大!自然語言處理(NLP)領域目前正在快速發展,誕生了大量新的工具和實踐。這本獨特的書可以給讀者帶來一系列可以應用於機器翻譯、語音助手、文本生成等領域的創新NLP技術。   《贈ChatGPT中文範例的自然語言處理入門書》將展示如何構建實用的、可以改變人類和電腦協同工作方式的NLP應用程序。本書通過對每個核心NLP主題進行清晰、直觀的解釋和指導,幫助你創建許多有趣的應用程序,包括情感分析器和聊天機器人。在該過程中,你將使用Python和開源庫(AllenNLP和Hugging Face Transformers)加快開發過程。● 設計、開發和部署實用的NLP應用程序 ● 構建命名實體標註器 ● 構建機器翻譯系統 ● 構建語言生成系統和聊天機器人

目錄大綱

第Ⅰ部分  基礎

第1章 自然語言處理簡介 3

1.1  什麽是自然語言處理 4

1.1.1  什麽是NLP 4

1.1.2  什麽不是NLP 5

1.1.3  AI、機器學習、深度學習和

NLP之間的關系 7

1.1.4  為什麽學習NLP 9

1.2  典型的NLP應用和任務 11

1.2.1  NLP應用 11

1.2.2  NLP任務 13

1.3  構建NLP應用 18

1.3.1  NLP應用的開發 18

1.3.2  NLP應用的結構 21

1.4  本章小結 22

第2章  你的第一個NLP應用 23

2.1  情感分析簡介 23

2.2  NLP的數據集 24

2.2.1  什麽是數據集 24

2.2.2  斯坦福情感樹庫 25

2.2.3  訓練集、驗證集和測試集 26

2.2.4  使用AllenNLP加載SST

數據集 28

2.3  使用詞嵌入 29

2.3.1  什麽是詞嵌入 30

2.3.2  如何在情感分析中使用詞嵌入 31

2.4  神經網絡 32

2.4.1  什麽是神經網絡 32

2.4.2  循環神經網絡和線性層 33

2.4.3  情感分析的神經網絡架構 34

2.5  損失函數及優化器 36

2.6  訓練你自己的分類器 38

2.6.1  批量處理 38

2.6.2  把所有組件整合在一起 39

2.7  評估分類器 39

2.8  部署應用 40

2.8.1  進行預測 40

2.8.2  通過Web提供預測服務 41

2.9  本章小結 42

第3章  詞嵌入與文檔嵌入 43

3.1  嵌入簡介 43

3.1.1  什麽是嵌入 43

3.1.2  為什麽嵌入很重要 44

3.2  語言的構建塊:字符、單詞

和短語 45

3.2.1  字符 45

3.2.2  單詞、詞元、語素和短語 46

3.2.3  n-gram 47

3.3  詞元化、詞乾提取和詞形

還原 47

3.3.1  詞元化 47

3.3.2  詞乾提取 49

3.3.3  詞形還原 49

3.4  Skip-gram和CBOW 50

3.4.1  詞嵌入的數字從何而來 50

3.4.2  通過單詞相關性推導得出 51

3.4.3  線性層 52

3.4.4  softmax 54

3.4.5  使用AllenNLP實現Skip-gram 55

3.4.6  CBOW模型 59

3.5  GloVe 60

3.5.1  GloVe如何學習詞嵌入 61

3.5.2  使用預訓練GloVe向量 62

3.6  fastText 64

3.6.1  使用子詞信息 64

3.6.2  使用fastText工具包 66

3.7  文檔級嵌入 66

3.8  對嵌入可視化 69

3.9  本章小結 71

第4章  句子分類 73

4.1  循環神經網絡(RNN) 73

4.1.1  處理可變長度的輸入 73

4.1.2  RNN抽象結構 75

4.1.3  Simple RNN和非線性函數 76

4.2  長短期記憶(LSTM)和門控

循環單元(GRU) 79

4.2.1  梯度消失問題 79

4.2.2  長短期記憶 81

4.2.3  門控循環單元 83

4.3  準確率、查準率、查全率和

F-度量 84

4.3.1  準確率 84

4.3.2  查準率和查全率 85

4.3.3  F-度量 86

4.4  構建AllenNLP訓練流水線 86

4.4.1  實例和字段 87

4.4.2  詞表和詞元索引器 88

4.4.3  詞元嵌入和RNN 89

4.4.4  構建個人模型 90

4.4.5  把所有東西整合在一起 91

4.5  配置AllenNLP訓練流水線 92

4.6  實戰示例:語言檢測 94

4.6.1  使用字符作為輸入 95

4.6.2  創建數據集讀取器 95

4.6.3  構建訓練流水線 97

4.6.4  用新的實例預測 99

4.7  本章小結 100

第5章  序列標註和語言模型 101

5.1  序列標註簡介 101

5.1.1  什麽是序列標註 101

5.1.2  使用RNN編碼序列 103

5.1.3  實現AllenNLP的Seq2Seq

編碼器 105

5.2  構建詞性標註器 106

5.2.1  讀取數據集 106

5.2.2  定義模型和損失值 107

5.2.3  構建訓練流水線 109

5.3  多層和雙向RNN 110

5.3.1  多層RNN 110

5.3.2  雙向RNN 112

5.4  命名實體識別 114

5.4.1  什麽是命名實體識別 114

5.4.2  標註span 115

5.4.3  實現命名實體識別器 115

5.5 語言模型 117

5.5.1 什麽是語言模型 117

5.5.2 為什麽語言模型很有用 118

5.5.3 訓練RNN語言模型 119

5.6 使用RNN生成文本 120

5.6.1 向RNN提供字符 120

5.6.2 構建語言模型 121

5.6.3  使用語言模型生成文本 123

5.7  本章小結 125

第Ⅱ部分  高級模型

第6章  序列到序列(Seq2Seq)

模型 129

6.1  介紹序列到序列模型 129

6.2  機器翻譯入門 131

6.3  構建你的第一個翻譯器 134

6.3.1  準備數據集 134

6.3.2  訓練模型 137

6.3.3  運行翻譯器 139

6.4  Seq2Seq模型的工作原理 140

6.4.1  編碼器 140

6.4.2  解碼器 142

6.4.3  貪婪解碼算法 144

6.4.4  束搜索解碼 147

6.5  評估翻譯系統 148

6.5.1  人工評估 148

6.5.2  自動評估 149

6.6  實戰示例:構建聊天

機器人 150

6.6.1  對話系統簡介 150

6.6.2  準備數據集 151

6.6.3  訓練和運行聊天機器人 152

6.6.4  下一步 154

6.7  本章小結 155

第7章  捲積神經網絡 157

7.1  捲積神經網絡(CNN)簡介 157

7.1.1  RNN簡介及其缺點 157

7.1.2  使用模式匹配進行句子分類 159

7.1.3  捲積神經網絡 159

7.2  捲積層 160

7.2.1  使用過濾器匹配模式 160

7.2.2  整流線性單元(ReLU) 162

7.2.3  組合分數 163

7.3  匯聚層 164

7.4  實戰示例:文本分類 165

7.4.1  回顧文本分類 166

7.4.2  使用CNN編碼器

(CnnEncoder) 166

7.4.3  訓練和運行分類器 167

7.5  本章小結 168

第8章  註意力機制和Transformer

模型 169

8.1  什麽是註意力機制 169

8.1.1  普通Seq2Seq模型的局限性 170

8.1.2  註意力機制 170

8.2  用於Seq2Seq模型的註意力

機制 172

8.2.1  編碼器-解碼器註意力機制 172

8.2.2  通過機器翻譯比較帶註意力

和不帶註意力的Seq2Seq

模型 173

8.3  Transformer模型和自註意

力機制 175

8.3.1  自註意力機制 176

8.3.2  Transformer模型 179

8.3.3  實驗 181

8.4  基於Transformer模型的

語言模型 183

8.4.1  基於Transformer的語言

模型 184

8.4.2  Transformer-XL 185

8.4.3  GPT-2 188

8.4.4  XLM 190

8.5  實戰示例:拼寫檢查器 191

8.5.1  像機器翻譯一樣看待拼寫

檢查器 191

8.5.2  訓練拼寫檢查器 193

8.5.3  改進拼寫檢查器 195

8.6  本章小結 198

第9章  使用預訓練語言模型進行

遷移學習 199

9.1  遷移學習 199

9.1.1  傳統的機器學習 199

9.1.2  詞嵌入 200

9.1.3  什麽是遷移學習 201

9.2  BERT 202

9.2.1  詞嵌入的局限性 202

9.2.2  自監督學習 204

9.2.3  預訓練BERT 204

9.2.4  適應BERT 206

9.3  實戰示例1:使用BERT

進行情感分析 208

9.3.1  對輸入詞元化 209

9.3.2  構建模型 211

9.3.3  訓練模型 212

9.4  其他預訓練語言模型 215

9.4.1  ELMo 215

9.4.2  XLNet 216

9.4.3  RoBERTa 217

9.4.4  DistilBERT 218

9.4.5  ALBERT 219

9.5  實戰示例2:使用BERT

進行自然語言推理 221

9.5.1  什麽是自然語言推理 221

9.5.2  使用BERT進行句子對分類 222

9.5.3  使用AllenNLP構建Transformer

模型 224

9.6  本章小結 228

第Ⅲ部分  投入生產

第10章  開發NLP應用的

最佳實踐 233

10.1  批量處理實例 233

10.1.1  填充 233

10.1.2  排序 235

10.1.3  掩碼 236

10.2  神經網絡模型中的詞元化 238

10.2.1  未知詞 238

10.2.2  字符模型 239

10.2.3  子詞模型 240

10.3  避免過擬合 242

10.3.1  正則化 242

10.3.2  早停法 244

10.3.3  交叉驗證 245

10.4  處理不平衡的數據集 246

10.4.1  使用恰當的評估指標 246

10.4.2  上採樣與下採樣 247

10.4.3  損失加權 248

10.5  超參數調優 249

10.5.1  超參數的例子 249

10.5.2  網格搜索與隨機搜索 250

10.5.3  使用Optuna調優 251

10.6  本章小結 253

第11章  部署和應用NLP應用 255

11.1  NLP應用架構 256

11.1.1  全面考慮後再開始

機器學習 256

11.1.2  按實時性選擇正確的應用

形式 257

11.1.3  項目結構 258

11.1.4  版本控制 258

11.2  部署NLP模型 260

11.2.1  測試 260

11.2.2  訓練-服務偏差 261

11.2.3  監控 262

11.2.4  使用GPU 263

11.3 實戰示例:對外提供服務

和部署NLP應用 265

11.3.1  通過TorchServe對外

提供服務 265

11.3.2  部署模型 269

11.4  解釋和可視化模型預測 271

11.5  展望 274

11.6  本章小結 275