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