本書以實際業(yè)務(wù)場景為例,介紹自然語言處理(NLP)系統(tǒng)開發(fā)項目的整個生命周期——從收集數(shù)據(jù)到部署和監(jiān)控模型。讀者將深入理解NLP系統(tǒng)的開發(fā)流程,知道如何消除開發(fā)痛點,從算法、數(shù)據(jù)等方面提高NLP系統(tǒng)的質(zhì)量。全書分為四大部分,共有11章。第一部分概述NLP技術(shù),為全書奠定知識基礎(chǔ)。第二部分從實戰(zhàn)角度講解NLP系統(tǒng)的開發(fā)要點,內(nèi)容涉及文本分類、信息提取等。第三部分專注于NLP重點應(yīng)用的垂直領(lǐng)域:社交媒體、電子商務(wù)、醫(yī)療行業(yè)、金融業(yè)等,并輔以Python示例。第四部分將所有知識點融會貫通,并講解如何利用所學(xué)知識部署NLP系統(tǒng)。
許多介紹自然語言處理(NLP)的書通過精心設(shè)計的示例和定義良好的數(shù)據(jù)集來展示如何解決NLP問題。但是,構(gòu)建生產(chǎn)級NLP系統(tǒng)不能僅靠紙上談兵。如果你想跨越理論與實踐的鴻溝,在真實的業(yè)務(wù)環(huán)境中構(gòu)建、迭代和擴展NLP系統(tǒng),那么這就是為你而寫的指南。
本書凝集了作者在微軟、谷歌等頭部公司的實踐經(jīng)驗,詳細闡釋了NLP在文本分類、信息提取、聊天機器人、搜索和信息檢索、主題建模、文本摘要、文本推薦、機器翻譯、問答系統(tǒng)等常見場景中的應(yīng)用,內(nèi)容覆蓋電商、社交媒體、醫(yī)療、金融、法律等垂直應(yīng)用領(lǐng)域。通過閱讀本書,你將為從0到1開發(fā)切實可用的NLP系統(tǒng)奠定牢固的知識基礎(chǔ)。
【作者簡介】
索米亞·瓦賈拉(Sowmya Vajjala)擁有德國圖賓根大學(xué)計算語言學(xué)博士學(xué)位,曾就職于微軟研究院,擁有跨學(xué)術(shù)界和工業(yè)界的自然語言處理經(jīng)驗。
博迪薩特瓦·馬祖達爾(Bodhisattwa Majumder)曾在谷歌和微軟研究院構(gòu)建自然語言處理系統(tǒng),為數(shù)百萬用戶提供產(chǎn)品服務(wù)。
阿努杰·古普塔(Anuj Gupta)為《財富》100強公司和多家創(chuàng)業(yè)公司孵化和組建了機器學(xué)習(xí)團隊。
哈爾希特·蘇拉納(Harshit Surana)是DeepFlux公司的聯(lián)合創(chuàng)始人兼CTO,曾在卡內(nèi)基–梅隆大學(xué)和麻省理工學(xué)院媒體實驗室研究自然語言處理和機器學(xué)習(xí)。
【譯者簡介】
吳進操
近十年語言信息處理經(jīng)驗,曾深度參與企業(yè)級翻譯系統(tǒng)的研發(fā),熟練掌握Python,對自然語言與人工智能的結(jié)合有深刻認(rèn)識。
黃若星
字節(jié)跳動AML團隊早期成員,曾參與字節(jié)跳動機器學(xué)習(xí)平臺及聯(lián)邦學(xué)習(xí)框架Fedlearner的研發(fā),熱衷于人工智能在工業(yè)界的應(yīng)用與實踐。
第 1章 自然語言處理概要 3
1.1 真實世界中的自然語言處理 4
1.2 什么是語言 7
1.2.1 語言的基本模塊 8
1.2.2 為什么自然語言處理很困難 10
1.3 機器學(xué)習(xí)、深度學(xué)習(xí)和自然語言處理:概述 12
1.4 自然語言處理方法 13
1.4.1 基于啟發(fā)式的自然語言處理 13
1.4.2 用于自然語言處理的機器學(xué)習(xí) 16
1.4.3 用于自然語言處理的深度學(xué)習(xí) 18
1.4.4 為什么深度學(xué)習(xí)還不是自然語言處理的靈丹妙藥 22
1.5 自然語言處理演練:對話智能體 25
1.6 小結(jié) 26
第 2章 自然語言處理流水線 27
2.1 數(shù)據(jù)獲取 28
2.2 文本提取和清洗 31
2.2.1 HTML 解析和清洗 32
2.2.2 Unicode 規(guī)范化 33
2.2.3 拼寫更正 34
2.2.4 特定于系統(tǒng)的錯誤更正 35
2.3 預(yù)處理 37
2.3.1 預(yù)備步驟 37
2.3.2 常用步驟 39
2.3.3 其他預(yù)處理步驟 42
2.3.4 高級處理 43
2.4 特征工程 45
2.4.1 經(jīng)典自然語言處理/ 機器學(xué)習(xí)流水線 .47
2.4.2 深度學(xué)習(xí)流水線 47
2.5 建模 47
2.5.1 從簡單的啟發(fā)式開始 47
2.5.2 構(gòu)建自己的模型 48
2.5.3 構(gòu)建最終模型 49
2.6 評估 51
2.6.1 內(nèi)在評估 51
2.6.2 外在評估 53
2.7 建模之后的階段 54
2.7.1 部署 54
2.7.2 監(jiān)控 54
2.7.3 模型更新 55
2.8 使用其他語言 55
2.9 案例研究 56
2.10 小結(jié) 57
第3 章 文本表示 58
3.1 向量空間模型 60
3.2 基本的向量化方法 61
3.2.1 獨熱編碼 62
3.2.2 詞袋 .63
3.2.3 n-gram袋 64
3.2.4 TF-IDF 65
3.3 分布式表示 67
3.3.1 詞嵌入 68
3.3.2 詞語之上 75
3.4 詞和字符之上的分布式表示 77
3.5 通用文本表示 77
3.6 可視化嵌入 79
3.7 人工特征表示 82
3.8 小結(jié) 83
第4章 文本分類 87
4.1 應(yīng)用程序 88
4.2 文本分類流水線 90
4.2.1 不使用文本分類流水線的簡單分類器 91
4.2.2 使用現(xiàn)成的文本分類API 91
4.3 一個流水線,多個分類器 92
4.3.1 樸素貝葉斯分類器 92
4.3.2 邏輯回歸 .96
4.3.3 SVM 97
4.4 在文本分類中使用神經(jīng)嵌入 98
4.4.1 詞嵌入 98
4.4.2 子詞嵌入和fastText 100
4.4.3 文檔嵌入 101
4.5 用于文本分類的深度學(xué)習(xí) 103
4.5.1 用于文本分類的CNN 104
4.5.2 用于文本分類的LSTM 106
4.5.3 使用大型預(yù)訓(xùn)練語言模型進行文本分類 106
4.6 解釋文本分類模型 107
4.7 無數(shù)據(jù)或少數(shù)據(jù)學(xué)習(xí)和新領(lǐng)域適應(yīng) 109
4.7.1 無訓(xùn)練數(shù)據(jù) 109
4.7.2 少訓(xùn)練數(shù)據(jù):主動學(xué)習(xí)和領(lǐng)域適應(yīng) 110
4.8 案例研究:企業(yè)工單系統(tǒng) 111
4.9 實用建議 114
4.10 小結(jié) 115
第5章 信息提取 116
5.1 信息提取應(yīng)用程序 117
5.2 信息提取任務(wù) 117
5.3 信息提取的通用流水線 119
5.4 關(guān)鍵詞提取 120
5.4.1 實現(xiàn)關(guān)鍵詞提取 121
5.4.2 實用建議 121
5.5 命名實體識別 122
5.5.1 構(gòu)建命名實體識別系統(tǒng) 123
5.5.2 命名實體識別:使用現(xiàn)有庫 126
5.5.3 命名實體識別:使用主動學(xué)習(xí) 126
5.5.4 實用建議 127
5.6 命名實體消歧與鏈接 128
5.7 關(guān)系提取 129
5.7.1 關(guān)系提取的方法 130
5.7.2 關(guān)系提取:使用IBM 沃森API 132
5.8 其他高級信息提取任務(wù) 133
5.8.1 時間信息提取 133
5.8.2 事件提取 134
5.8.3 模板填充 135
5.9 案例研究 136
5.10 小結(jié) 139
第6章 聊天機器人 140
6.1 聊天機器人的應(yīng)用 141
6.2 聊天機器人的分類 143
6.2.1 目標(biāo)導(dǎo)向?qū)υ捠?144
6.2.2 閑聊式144
6.3 構(gòu)建對話系統(tǒng)的流水線 144
6.4 對話系統(tǒng)原理 146
6.5 深入對話系統(tǒng)的組件 155
6.5.1 對話行為分類 156
6.5.2 識別插槽 156
6.5.3 生成響應(yīng) 157
6.5.4 帶有代碼演練的對話示例 158
6.6 其他對話流水線 162
6.6.1 端到端方法 162
6.6.2 用于對話生成的深度強化學(xué)習(xí) 163
6.6.3 人工監(jiān)督 164
6.7 Rasa NLU 165
6.8 案例研究:食譜推薦 167
6.8.1 利用現(xiàn)有框架 168
6.8.2 開放式生成聊天機器人 169
6.9 小結(jié) 170
第7章 主題簡介 172
7.1 搜索和信息檢索 173
7.1.1 搜索引擎組件 175
7.1.2 常見企業(yè)搜索流水線 177
7.1.3 一個配置搜索引擎的例子 178
7.1.4 案例研究:書店搜索 179
7.2 主題建模 180
7.2.1 一個構(gòu)建主題模型的例子 183
7.2.2 下一步是什么 184
7.3 文本摘要 185
7.3.1 摘要用例 185
7.3.2 一個設(shè)置摘要器的示例 186
7.3.3 實用建議 187
7.4 文本推薦系統(tǒng) 188
7.4.1 一個圖書推薦系統(tǒng)示例 188
7.4.2 實用建議 189
7.5 機器翻譯 189
7.5.1 一個使用機器翻譯API 的示例 190
7.5.2 實用建議 191
7.6 問答系統(tǒng) 192
7.6.1 開發(fā)自定義問答系統(tǒng) 193
7.6.2 尋找更有深度的答案 193
7.7 小結(jié) 194
第8章 社交媒體 197
8.1 應(yīng)用 198
8.2 獨特的挑戰(zhàn) 199
8.3 用于社交平臺數(shù)據(jù)的自然語言處理 205
8.3.1 詞云 205
8.3.2 用于SMTD 的分詞器 206
8.3.3 熱門話題 207
8.3.4 理解Twitter 的情緒 207
8.3.5 SMTD 的預(yù)處理 209
8.3.6 SMTD 的文本表示 212
8.3.7 社交媒體渠道的客戶支持 215
8.4 模因與虛假新聞 216
8.4.1 識別模因 217
8.4.2 虛假新聞 218
8.5 小結(jié) 219
第9 章 電子商務(wù)與零售 220
9.1 電子商務(wù)目錄 221
9.1.1 評論分析 221
9.1.2 產(chǎn)品搜索 221
9.1.3 產(chǎn)品推薦 222
9.2 電子商務(wù)中的搜索 222
9.3 構(gòu)建電子商務(wù)目錄 224
9.3.1 屬性提取 224
9.3.2 產(chǎn)品分類與分類樹 228
9.3.3 產(chǎn)品濃縮 231
9.3.4 產(chǎn)品去重和匹配 233
9.4 評論分析 234
9.4.1 情感分析 234
9.4.2 方面級情感分析 236
9.4.3 將總體評分與“方面”聯(lián)系起來 238
9.4.4 理解“方面” 239
9.5 電子商務(wù)推薦 240
9.6 小結(jié) 243
第 10章 醫(yī)療、金融和法律 244
10.1 醫(yī)療 244
10.1.1 健康和醫(yī)療記錄 245
10.1.2 患者優(yōu)先級和計費 246
10.1.3 藥物安全監(jiān)視 246
10.1.4 臨床決策支持系統(tǒng) 246
10.1.5 健康助理 247
10.1.6 電子健康記錄 248
10.1.7 心理健康監(jiān)測 255
10.1.8 醫(yī)療信息提取與分析 257
10.2 金融與法律 259
10.2.1 自然語言處理在金融領(lǐng)域中的應(yīng)用 261
10.2.2 自然語言處理與法律行業(yè) 263
10.3 小結(jié) 266
第 11章 端到端自然語言處理系統(tǒng) 269
11.1 重溫自然語言處理流水線:部署自然語言處理軟件 270
11.2 構(gòu)建和維護成熟的系統(tǒng) 272
11.2.1 尋找更好的特征 273
11.2.2 迭代現(xiàn)有模型 274
11.2.3 代碼和模型再現(xiàn)性 274
11.2.4 故障排除和可解釋性 275
11.2.5 監(jiān)控 277
11.2.6 盡量減少技術(shù)債務(wù) 278
11.2.7 自動化機器學(xué)習(xí) 279
11.3 數(shù)據(jù)科學(xué)過程 282
11.3.1 KDD 過程 282
11.3.2 微軟TDSP 283
11.4 讓人工智能在組織中取得成功 284
11.4.1 團隊 285
11.4.2 正確的問題和正確的期望 285
11.4.3 數(shù)據(jù)和時間 286
11.4.4 好的流程 287
11.4.5 其他方面 288
11.5 展望未來 290
11.6 結(jié)語 292