《基于Spark NLP的自然語言處理》主要內(nèi)容有: 基礎(chǔ)知識(shí), 了解自然語言處理、Apache Spark上的NLP和深度學(xué)習(xí)的基礎(chǔ)知識(shí)。構(gòu)建模塊, 學(xué)習(xí)構(gòu)建NLP應(yīng)用程序的技術(shù) (包括標(biāo)記化、句子分割和命名實(shí)體識(shí)別), 并了解它們的工作方式和原因。應(yīng)用程序, 探索構(gòu)建你自己的NLP應(yīng)用程序的設(shè)計(jì)、開發(fā)和實(shí)驗(yàn)過程。構(gòu)建NLP系統(tǒng), 考慮生產(chǎn)和部署NLP模型的選項(xiàng), 包括支持哪些人類語言。Alex Thomas是Wisecube的首席數(shù)據(jù)科學(xué)家。他將自然語言處理和機(jī)器學(xué)習(xí)與臨床數(shù)據(jù)、身份數(shù)據(jù)、雇主和求職者數(shù)據(jù), 以及現(xiàn)在的生物化學(xué)數(shù)據(jù)結(jié)合使用。Alex從Apache Spark 0.9版就開始使用, 并使用過NLP庫(kù)和框架, 包括UIMA和OpenNLP。
前言 . 1
第一部分 基礎(chǔ)知識(shí)
章 快速入門 . 9
1.1 簡(jiǎn)介 9
1.2 其他工具 11
1.3 建立你自己的開發(fā)環(huán)境 12
1.3.1 前置條件 12
1.3.2 啟動(dòng)Apache Spark 13
1.3.3 檢查代碼 13
1.4 熟悉Apache Spark .14
1.4.1 使用Spark NLP 啟動(dòng)Apache Spark 14
1.4.2 在Apache Spark 中加載和查看數(shù)據(jù) 15
1.5 Spark NLP 的Hello World 示例 18
第2 章 自然語言基礎(chǔ)知識(shí) 27
2.1 什么是自然語言 27
2.1.1 語言的起源 28
2.1.2 口頭語言和書面語言29
2.2 語言學(xué) 30
2.2.1 語音學(xué)和音系學(xué) .30
2.2.2 詞法學(xué)(形態(tài)學(xué)) 31
2.2.3 語法 32
2.2.4 語義學(xué) .33
2.3 社會(huì)語言學(xué):方言、語域和其他變體 34
2.3.1 禮節(jié) 34
2.3.2 語境 35
2.4 語用學(xué) 35
2.4.1 羅曼雅各布森 .35
2.4.2 如何運(yùn)用語用學(xué) .37
2.5 書寫系統(tǒng) 37
2.5.1 起源 37
2.5.2 字母 38
2.5.3 輔音音素文字 .39
2.5.4 元音附標(biāo)文字 .40
2.5.5 音節(jié)表 41
2.5.6 標(biāo)識(shí)象形符 .41
2.6 編碼 42
2.6.1 ASCII 42
2.6.2 Unicode 42
2.6.3 UTF-8 43
2.7 練習(xí):分詞 .44
2.7.1 英語分詞 44
2.7.2 希臘語分詞 45
2.7.3 Ge'ez(阿姆哈拉語)分詞 45
2.8 資源 46
第3 章 Apache Spark 上的NLP 49
3.1 并行性、并發(fā)性、分布式計(jì)算 .50
3.1.1 Apache Hadoop 之前的并行化 53
3.1.2 MapReduce 和 Apache Hadoop 53
3.1.3 Apache Spark 55
3.2 Apache Spark 架構(gòu) 55
3.2.1 物理架構(gòu) 55
3.2.2 邏輯架構(gòu) 56
3.3 Spark SQL 和Spark MLlib 62
3.3.1 Transformer(轉(zhuǎn)換器) .66
3.3.2 評(píng)估器和模型 69
3.3.3 預(yù)測(cè)結(jié)果評(píng)估 73
3.4 NLP 庫(kù) .76
3.4.1 功能庫(kù) .76
3.4.2 注釋庫(kù) .77
3.4.3 其他庫(kù)中的自然語言處理功能 78
3.5 Spark NLP 78
3.5.1 注釋庫(kù) .78
3.5.2 階段 79
3.5.3 預(yù)訓(xùn)練管道 87
3.5.4 Finisher 89
3.6 練習(xí):構(gòu)建主題模型 .91
3.7 資源 93
第4 章 深度學(xué)習(xí)基礎(chǔ)知識(shí) 95
4.1 梯度下降 100
4.2 反向傳播 101
4.3 卷積神經(jīng)網(wǎng)絡(luò)CNN . 113
4.3.1 濾波器 114
4.3.2 池化 114
4.4 循環(huán)神經(jīng)網(wǎng)絡(luò)RNN . 114
4.4.1 通過時(shí)間的反向傳播. 115
4.4.2 Elman 網(wǎng)絡(luò) . 115
4.4.3 LSTM 116
4.5 練習(xí)1 . 116
4.6 練習(xí)2 . 116
4.7 資源 . 117
第二部分 構(gòu)建模塊
第5 章 文字處理 121
5.1 分詞 .122
5.2 詞表縮減 126
5.2.1 詞干提取 .126
5.2.2 詞形還原 .126
5.2.3 詞干提取對(duì)比詞形還原 127
5.2.4 拼寫校對(duì) .129
5.2.5 標(biāo)準(zhǔn)化 130
5.3 bag-of-words 模型.132
5.4 CountVectorizer .133
5.5 N-Gram 135
5.6 可視化:Word 和文檔分發(fā) 137
5.7 練習(xí) .142
5.8 資源 .142
第6 章 信息檢索 143
6.1 倒排索引 144
6.2 向量空間模型 .151
6.2.1 刪除停用詞 154
6.2.2 逆向文件頻率 156
6.2.3 使用Spark 159
6.3 練習(xí) .159
6.4 資源 .160
第7 章 分類和回歸 163
7.1 bag-of-word 模型特征 .166
7.2 正則表達(dá)式特征 167
7.3 特征選擇 169
7.4 模型 .173
7.4.1 樸素貝葉斯算法 174
7.4.2 線性模型 .174
7.4.3 決策/ 回歸樹.174
7.4.4 深度學(xué)習(xí)算法 175
7.5 迭代 .175
7.6 練習(xí) .178
第8 章 使用Keras 的序列模型 181
8.1 語句劃分 182
8.2 段落劃分 190
8.3 詞性標(biāo)注 191
8.4 條件隨機(jī)場(chǎng) 196
8.5 分塊和語法分析 196
8.6 語言模型 197
8.7 循環(huán)神經(jīng)網(wǎng)絡(luò) .198
8.8 練習(xí):字符 N-Grams 模型 205
8.9 練習(xí):詞義語言模型 206
8.10 資源 206
第9 章 信息提取 207
9.1 命名實(shí)體識(shí)別 .207
9.2 共指消解 217
9.3 斷言狀態(tài)檢測(cè) .218
9.4 關(guān)系提取 221
9.5 小結(jié) .226
9.6 練習(xí) .226
0 章 主題建模 . 229
10.1 K-Means .230
10.2 潛在語義索引 234
10.3 非負(fù)矩陣分解 238
10.4 隱含狄利克雷分布模型 242
10.5 練習(xí) 245
1 章 詞嵌入 . 249
11.1 Word2vec 249
11.2 GloVe 261
11.3 fastText 262
11.4 Transformer 263
11.5 ELMo、BERT 和XLNet .263
11.6 Doc2vec 265
11.7 練習(xí) 266
第三部分 應(yīng)用
2 章 情感分析與情緒檢測(cè) 269
12.1 問題陳述與約束 269
12.2 規(guī)劃項(xiàng)目 .271
12.3 設(shè)計(jì)解決方案 274
12.4 實(shí)施解決方案 275
12.5 測(cè)試并衡量解決方案 281
12.5.1 業(yè)務(wù)指標(biāo) 281
12.5.2 以模型為中心的指標(biāo) 281
12.5.3 基礎(chǔ)設(shè)施指標(biāo) .282
12.5.4 過程指標(biāo) 283
12.5.5 離線與在線模型測(cè)量 284
12.6 審查 284
12.6.1 初始部署 285
12.6.2 回退計(jì)劃 286
12.6.3 下一步 286
12.7 結(jié)論 286
3 章 建立知識(shí)庫(kù) 287
13.1 問題陳述與約束 288
13.2 規(guī)劃項(xiàng)目 .289
13.3 設(shè)計(jì)解決方案 290
13.4 實(shí)施解決方案 291
13.5 測(cè)試并衡量解決方案 300
13.5.1 業(yè)務(wù)指標(biāo) 300
13.5.2 以模型為中心的指標(biāo) 300
13.5.3 基礎(chǔ)設(shè)施指標(biāo) .301
13.5.4 過程指標(biāo) 301
13.6 審查 302
13.7 結(jié)論 302
4 章 搜索引擎 . 303
14.1 問題陳述與約束 304
14.2 規(guī)劃項(xiàng)目 .304
14.3 設(shè)計(jì)解決方案 305
14.4 實(shí)施解決方案 305
14.5 測(cè)試并衡量解決方案 313
14.5.1 業(yè)務(wù)指標(biāo) 313
14.5.2 以模型為中心的指標(biāo) 314
14.6 審查 315
14.7 結(jié)論 316
5 章 聊天機(jī)器人 317
15.1 問題陳述與約束 318
15.2 規(guī)劃項(xiàng)目 .319
15.3 設(shè)計(jì)解決方案 319
15.4 實(shí)施解決方案 321
15.5 測(cè)試并衡量解決方案 331
15.5.1 業(yè)務(wù)指標(biāo) 331
15.5.2 以模型為中心的指標(biāo) 332
15.6 審查 332
15.7 結(jié)論 332
6 章 目標(biāo)字符識(shí)別 333
16.1 OCR 任務(wù)的種類 333
16.1.1 印刷文本的圖像和PDF 識(shí)別成文本 333
16.1.2 手寫文本圖像識(shí)別成文本 334
16.1.3 日常環(huán)境中的文本圖像識(shí)別成文本 334
16.1.4 文本圖像識(shí)別成目標(biāo) 335
16.1.5 關(guān)于不同書寫系統(tǒng)的說明 336
16.2 問題陳述與約束 336
16.3 規(guī)劃項(xiàng)目 .337
16.4 實(shí)施解決方案 337
16.5 測(cè)試并衡量解決方案 343
16.6 以模型為中心的指標(biāo) 343
16.7 審查 343
16.8 結(jié)論 343
第四部分 構(gòu)建NLP 系統(tǒng)
7 章 支持多種語言 347
17.1 語言類型學(xué) 347
17.2 場(chǎng)景:學(xué)術(shù)論文分類 347
17.3 不同語言中的文本處理 348
17.3.1 合成詞 348
17.3.2 形態(tài)復(fù)雜性349
17.4 遷移學(xué)習(xí)與多語言深度學(xué)習(xí) .350
17.5 跨語種搜索 351
17.6 檢查清單 .352
17.7 結(jié)論 353
8 章 人工標(biāo)注 . 355
18.1 指南 356
18.2 場(chǎng)景:學(xué)術(shù)論文分類 356
18.3 標(biāo)注員內(nèi)部一致性 .358
18.4 標(biāo)注迭代 .359
18.5 標(biāo)注文本 .360
18.5.1 分類 .360
18.5.2 標(biāo)注 .360
18.6 檢查清單 .361
18.7 結(jié)論 362
9 章 NLP 應(yīng)用程序的產(chǎn)品化 . 363
19.1 Spark NLP 模型緩存 .364
19.2 Spark NLP 與TensorFlow 集成 365
19.2.1 Spark 優(yōu)化基礎(chǔ) .366
19.2.2 設(shè)計(jì)級(jí)優(yōu)化367
19.2.3 分析工具 368
19.2.4 監(jiān)視 .369
19.2.5 管理數(shù)據(jù)資源 .369
19.2.6 測(cè)試基于NLP 的應(yīng)用程序 369
19.2.7 單元測(cè)試 370
19.2.8 集成測(cè)試 370
19.2.9 冒煙測(cè)試與健全測(cè)試 370
19.2.10 性能測(cè)試 371
19.2.11 可用性測(cè)試 371
19.2.12 演示基于NLP 的應(yīng)用程序 371
19.3 檢查清單 372
19.3.1 模型部署清單 .372
19.3.2 擴(kuò)展和性能檢查表 373
19.3.3 測(cè)試檢查清單 .373
19.4 結(jié)論 374
術(shù)語表 377