自然語言處理實戰 : 利用 Python 理解、分析和生成文本 Natural Language Processing in Action: Understanding, analyzing, and generating text with Python
Hobson Lane, Hannes Hapke, Cole Howard 史亮,魯驍,唐可欣,王斌
- 出版商: 人民郵電
- 出版日期: 2020-10-01
- 定價: $594
- 售價: 8.5 折 $505
- 語言: 簡體中文
- 頁數: 432
- 裝訂: 平裝
- ISBN: 7115540233
- ISBN-13: 9787115540232
-
相關分類:
Python、Text-mining
- 此書翻譯自: Natural Language Processing in Action: Understanding, analyzing, and generating text with Python (Paperback) 銷售排行: 🥈 2022/2 簡體中文書 銷售排行 第 2 名
立即出貨
買這商品的人也買了...
-
$1,715Introduction to Algorithms, 3/e (Hardcover)
-
$680$537 -
$690$587 -
$620$490 -
$420$332 -
$780$616 -
$450$351 -
$454Halcon 機器視覺算法原理與編程實戰
-
$1,000$850 -
$680$537 -
$880$695 -
$301算法精粹 經典電腦科學問題的 Python 實現
-
$690$538 -
$680$537 -
$750$593 -
$305深度學習自然語言處理實戰
-
$580$452 -
$480$379 -
$780$616 -
$505深入大型數據集:並行與分佈化 Python 代碼 (Mastering Large Datasets: Parallelize and Distribute Your Python Code)
-
$1,000$790 -
$254文本數據挖掘與 Python 應用
-
$680$537 -
$520自然語言處理應用與實戰
-
$556深度學習應用與實戰(全彩)
相關主題
商品描述
本書是介紹自然語言處理(NLP)和深度學習的實戰書。
NLP已成為深度學習的核心應用領域,而深度學習是NLP研究和應用中的必要工具。
本書分為3部分:
第一部分介紹NLP基礎,包括分詞、TF-IDF向量化以及從詞頻向量到語義向量的轉換;
第二部分講述深度學習,包含神經網絡、詞向量、捲積神經網絡(CNN)、
循環神經網絡(RNN)、長短期記憶(LSTM)網絡、
序列到序列建模和註意力機制等基本的深度學習模型和方法;
第三部分介紹實戰方面的內容,包括信息提取、問答系統、
人機對話等真實世界系統的模型構建、性能挑戰以及應對方法。
本書面向中高級Python開發人員,兼具基礎理論與編程實戰,
是現代NLP領域從業者的實用參考書。
作者簡介
作者簡介
Hobson Lane
擁有20年構建自主系統的經驗,這些系統能夠代表人類做出重要決策。
Hobson在Talentpair訓練機器完成簡歷的閱讀和理解,以減少招聘者產生的偏見。
在Aira,他幫助構建了第一個聊天機器人,為視障人士描述視覺世界。
他是Keras、scikit-learn、PyBrain、PUGNLP和ChatterBot等開源項目的積極貢獻者。
他目前正在從事完全公益的開放科學研究和教育項目,包括構建一個開放源碼的認知助手。
他在AIAA、PyCon、PAIS和IEEE上發表了多篇論文和演講,並獲得了機器人和自動化領域的多項專利。
Cole Howard
是一位機器學習工程師、NLP實踐者和作家。
他一生都在尋找模式,並在人工神經網絡的世界裡找到了自己真正的家。
他開發了大型電子商務推薦引擎和麵向超維機器智能係統(深度學習神經網絡)
的最先進的神經網絡,這些系統在Kaggle競賽中名列前茅。
他曾在Open Source Bridge和Hack University 大會上發表演講,
介紹卷積神經網絡、循環神經網絡及其在自然語言處理中的作用。
Hannes Max Hapke
是從一位電氣工程師轉行成為機器學習工程師的。
他在高中研究如何在微控制器上計算神經網絡時,對神經網絡產生了濃厚的興趣。
Hannes喜歡自動化軟件開發和機器學習流水線。
他與合作者共同開發了面向招聘、能源和醫療應用的深度學習模型和機器學習流水線。
Hannes在包括OSCON、Open Source Bridge和Hack University在內的各種會議上發表演講介紹機器學習。
譯者簡介
史亮
小米NLP高級軟件工程師,本科畢業於武漢大學,後保送中科院計算所碩博連讀,獲得博士學位。
目前主要負責小米MiNLP平台的研發工作。
魯驍
小米NLP高級軟件工程師,本科、碩士畢業於華中科技大學,博士畢業於中科院計算所。
目前主要從事大規模文本分類、內容過濾、人機對話等方向的研發工作。
唐可欣
小米NLP軟件工程師,本科畢業於西安電子科技大學,碩士畢業於法國巴黎高科電信學院。
主要從事語言模型、意圖分析、情感分析等方向的研發工作。
王斌
小米AI實驗室主任、NLP首席科學家,前中科院博導、研究員,中國科學院大學教授。
譯有《信息檢索導論》《大數據:互聯網大規模數據挖掘與分佈式處理》《機器學習實戰》等書籍。
目錄大綱
目 錄
第 一部分 處理文本的機器
第 1章 NLP概述 3
1.1 自然語言與編程語言 3
1.2 神奇的魔法 4
1.2.1 會交談的機器 5
1.2.2 NLP中的數學 5
1.3 實際應用 7
1.4 電腦“眼”中的語言 8
1.4.1 鎖的語言(正則表達式) 9
1.4.2 正則表達式 9
1.4.3 一個簡單的聊天機器人 11
1.4.4 另一種方法 14
1.5 超空間簡述 17
1.6 詞序和語法 19
1.7 聊天機器人的自然語言流水線 20
1.8 深度處理 22
1.9 自然語言智商 24
1.10 小結 26
第 2章 構建自己的詞匯表——分詞 27
2.1 挑戰(詞乾還原預覽) 28
2.2 利用分詞器構建詞匯表 29
2.2.1 點積 37
2.2.2 度量詞袋之間的重合度 37
2.2.3 標點符號的處理 38
2.2.4 將詞匯表擴展到n-gram 43
2.2.5 詞匯表歸一化 48
2.3 情感 55
2.3.1 VADER:一個基於規則的情感分析器 56
2.3.2 樸素貝葉斯 58
2.4 小結 61
第3章 詞中的數學 62
3.1 詞袋 63
3.2 向量化 67
3.3 齊普夫定律 74
3.4 主題建模 76
3.4.1 回到齊普夫定律 79
3.4.2 相關度排序 80
3.4.3 工具 82
3.4.4 其他工具 83
3.4.5 Okapi BM25 85
3.4.6 未來展望 85
3.5 小結 85
第4章 詞頻背後的語義 87
4.1 從詞頻到主題得分 88
4.1.1 TF-IDF向量及詞形歸並 88
4.1.2 主題向量 89
4.1.3 思想實驗 90
4.1.4 一個主題評分算法 94
4.1.5 一個LDA分類器 95
4.2 潛在語義分析 99
4.3 奇異值分解 103
4.3.1 左奇異向量U 105
4.3.2 奇異值向量S 106
4.3.3 右奇異向量VT 107
4.3.4 SVD矩陣的方向 107
4.3.5 主題約簡 108
4.4 主成分分析 109
4.4.1 三維向量上的PCA 111
4.4.2 回歸NLP 112
4.4.3 基於PCA的短消息語義分析 114
4.4.4 基於截斷的SVD的短消息語義分析 116
4.4.5 基於LSA的垃圾短消息分類的效果 117
4.5 潛在狄利克雷分佈(LDiA) 119
4.5.1 LDiA思想 120
4.5.2 基於LDiA主題模型的短消息語義分析 121
4.5.3 LDiA+LDA=垃圾消息過濾器 124
4.5.4 更公平的對比:32個LdiA主題 125
4.6 距離和相似度 127
4.7 反饋及改進 129
4.8 主題向量的威力 132
4.8.1 語義搜索 133
4.8.2 改進 135
4.9 小結 135
第二部分 深度學習(神經網絡)
第5章 神經網絡初步(感知機與反向傳播) 139
5.1 神經網絡的組成 140
5.1.1 感知機 140
5.1.2 數字感知機 141
5.1.3 認識偏置 142
5.1.4 誤差曲面 153
5.1.5 不同類型的誤差曲面 154
5.1.6 多種梯度下降算法 155
5.1.7 Keras:用Python實現神經網絡 155
5.1.8 展望 158
5.1.9 歸一化:格式化輸入 159
5.2 小結 159
第6章 詞向量推理(Word2vec) 160
6.1 語義查詢與類比 160
6.2 詞向量 162
6.2.1 面向向量的推理 165
6.2.2 如何計算Word2vec表示 167
6.2.3 如何使用gensim.word2vec模塊 175
6.2.4 生成定製化詞向量表示 177
6.2.5 Word2vec和GloVe 179
6.2.6 fastText 180
6.2.7 Word2vec和LSA 180
6.2.8 詞關系可視化 181
6.2.9 非自然詞 187
6.2.10 利用Doc2vec計算文檔相似度 188
6.3 小結 190
第7章 捲積神經網絡(CNN) 191
7.1 語義理解 192
7.2 工具包 193
7.3 捲積神經網絡 194
7.3.1 構建塊 195
7.3.2 步長 196
7.3.3 捲積核的組成 196
7.3.4 填充 198
7.3.5 學習 199
7.4 狹窄的窗口 199
7.4.1 Keras實現:準備數據 201
7.4.2 捲積神經網絡架構 206
7.4.3 池化 206
7.4.4 dropout 208
7.4.5 輸出層 209
7.4.6 開始學習(訓練) 211
7.4.7 在流水線中使用模型 212
7.4.8 前景展望 213
7.5 小結 214
第8章 循環神經網絡(RNN) 215
8.1 循環網絡的記憶功能 217
8.1.1 隨時間反向傳播算法 221
8.1.2 不同時刻的權重更新 223
8.1.3 簡要回顧 225
8.1.4 難點 225
8.1.5 利用Keras實現循環神經網絡 226
8.2 整合各個部分 230
8.3 自我學習 231
8.4 超參數 232
8.5 預測 235
8.5.1 有狀態性 236
8.5.2 雙向RNN 236
8.5.3 編碼向量 238
8.6 小結 238
第9章 改進記憶力:長短期記憶網絡(LSTM) 239
9.1 長短期記憶(LSTM) 240
9.1.1 隨時間反向傳播 247
9.1.2 模型的使用 250
9.1.3 臟數據 251
9.1.4 “未知”詞條的處理 254
9.1.5 字符級建模 255
9.1.6 生成聊天文字 260
9.1.7 進一步生成文本 262
9.1.8 文本生成的問題:內容不受控 269
9.1.9 其他記憶機制 269
9.1.10 更深的網絡 270
9.2 小結 271
第 10章 序列到序列建模和註意力機制 272
10.1 編碼-解碼架構 272
10.1.1 解碼思想 273
10.1.2 似曾相識? 275
10.1.3 序列到序列對話 276
10.1.4 回顧LSTM 277
10.2 組裝一個序列到序列的流水線 278
10.2.1 為序列到序列訓練準備數據集 278
10.2.2 Keras中的序列到序列模型 279
10.2.3 序列編碼器 280
10.2.4 思想解碼器 281
10.2.5 組裝一個序列到序列網絡 282
10.3 訓練序列到序列網絡 282
10.4 使用序列到序列網絡構建一個聊天機器人 284
10.4.1 為訓練準備語料庫 285
10.4.2 建立字符字典 286
10.4.3 生成獨熱編碼訓練集 286
10.4.4 訓練序列到序列聊天機器人 287
10.4.5 組裝序列生成模型 288
10.4.6 預測輸出序列 288
10.4.7 生成回復 289
10.4.8 與聊天機器人交談 290
10.5 增強 290
10.5.1 使用裝桶法降低訓練復雜度 290
10.5.2 註意力機制 291
10.6 實際應用 292
10.7 小結 294
第三部分 進入現實世界(現實中的NLP挑戰)
第 11章 信息提取(命名實體識別與問答系統) 297
11.1 命名實體與關系 297
11.1.1 知識庫 298
11.1.2 信息提取 300
11.2 正則模式 300
11.2.1 正則表達式 301
11.2.2 把信息提取當作機器學習里的特徵提取任務 302
11.3 值得提取的信息 303
11.3.1 提取GPS位置 303
11.3.2 提取日期 304
11.4 提取人物關系(事物關系) 309
11.4.1 詞性標註 309
11.4.2 實體名稱標準化 313
11.4.3 實體關系標準化和提取 314
11.4.4 單詞模式 314
11.4.5 文本分割 314
11.4.6 為什麽split('.! ')函數不管用 316
11.4.7 使用正則表達式進行斷句 316
11.5 現實世界的信息提取 318
11.6 小結 319
第 12章 開始聊天(對話引擎) 320
12.1 語言技能 321
12.1.1 現代方法 322
12.1.2 混合方法 326
12.2 模式匹配方法 327
12.2.1 基於AIML的模式匹配聊天機器人 328
12.2.2 模式匹配的網絡視圖 334
12.3 知識方法 334
12.4 檢索(搜索)方法 336
12.4.1 上下文挑戰 336
12.4.2 基於示例檢索的聊天機器人 338
12.4.3 基於搜索的聊天機器人 341
12.5 生成式方法 343
12.5.1 聊聊NLPIA 343
12.5.2 每種方法的利弊 345
12.6 四輪驅動 345
12.7 設計過程 347
12.8 技巧 349
12.8.1 用帶有可預測答案的問題提問 349
12.8.2 要有趣 350
12.8.3 當其他所有方法都失敗時,搜索 350
12.8.4 變得受歡迎 350
12.8.5 成為連接器 351
12.8.6 變得有情感 351
12.9 現實世界 351
12.10 小結 352
第 13章 可擴展性(優化、並行化和批處理) 353
13.1 太多(數據)未必是好事 353
13.2 優化NLP算法 354
13.2.1 索引 354
13.2.2 高級索引 355
13.2.3 基於Annoy的高級索引 357
13.2.4 究竟為什麽要使用近似索引 361
13.2.5 索引變通方法:離散化 362
13.3 常數級內存算法 363
13.3.1 gensim 363
13.3.2 圖計算 363
13.4 並行化NLP計算 364
13.4.1 在GPU上訓練NLP模型 364
13.4.2 租與買 365
13.4.3 GPU租賃選擇 366
13.4.4 張量處理單元TPU 367
13.5 減少模型訓練期間的內存占用 367
13.6 使用TensorBoard瞭解模型 369
13.7 小結 372
附錄A 本書配套的NLP工具 373
附錄B 有趣的Python和正則表達式 380
附錄C 向量和矩陣(線性代數基礎) 385
附錄D 機器學習常見工具與技術 391
附錄E 設置亞馬遜雲服務(AWS)上的GPU 403
附錄F 局部敏感哈希 415
資源 421
詞匯表 428