本書面向初學(xué)者介紹了自然語言處理的基礎(chǔ)知識,包括詞法分析、句法分析、基于機(jī)器學(xué)習(xí)的文本分析、深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)、詞嵌入與詞向量以及自然語言處理與卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)技術(shù)及應(yīng)用。本書深入淺出,案例豐富,可作為高校人工智能、大數(shù)據(jù)、計算機(jī)及相關(guān)專業(yè)本科生的教材,也可供對自然語言處理有興趣的技術(shù)人員作為參考書。
前言
第1章 自然語言處理概述1
1.1 自然語言處理的基本概念1
1.1.1 什么是自然語言處理1
1.1.2 自然語言處理的層次2
1.1.3 自然語言處理的發(fā)展歷程3
1.2 自然語言處理技術(shù)面臨的困難6
1.2.1 歧義6
1.2.2 知識的獲取、表達(dá)及運用7
1.2.3 計算問題8
1.3 自然語言處理的主要研究任務(wù)和應(yīng)用8
1.3.1 自然語言處理的主要研究任務(wù)8
1.3.2 自然語言處理的典型應(yīng)用10
1.4 搭建自然語言處理開發(fā)環(huán)境11
1.4.1 Anaconda11
1.4.2 scikit-learn15
1.4.3 Jupyter Notebook15
1.5 本章小結(jié)16
1.6 習(xí)題17
第2章 詞法分析18
2.1 什么是詞法分析18
2.2 分詞19
2.2.1 中文分詞簡介19
2.2.2 基于詞典的分詞方法20
2.2.3 基于統(tǒng)計的分詞方法21
2.2.4 實例—使用N-gram語言模型進(jìn)行語法糾正24
2.2.5 中文分詞工具簡介27
2.2.6 實例—使用jieba進(jìn)行高頻詞提取30
2.3 關(guān)鍵詞提取32
2.3.1 TF-IDF算法32
2.3.2 TextRank算法33
2.3.3 實例—提取文本關(guān)鍵詞34
2.4 詞性標(biāo)注40
2.4.1 詞性標(biāo)注簡介40
2.4.2 隱馬爾可夫模型41
2.4.3 Viterbi算法43
2.4.4 最大熵模型44
2.5 命名實體識別46
2.5.1 命名實體識別簡介46
2.5.2 條件隨機(jī)場模型47
2.5.3 實例—使用jieba進(jìn)行日期識別48
2.6 本章小結(jié)52
2.7 習(xí)題53
第3章 句法分析54
3.1 什么是句法分析54
3.2 句法分析樹庫及性能評測56
3.2.1 句法分析語料庫56
3.2.2 句法分析模型的性能評測59
3.3 概率上下文無關(guān)文法59
3.4 依存句法分析62
3.4.1 基于圖模型的依存句法分析63
3.4.2 基于轉(zhuǎn)移模型的依存句法分析63
3.5 中文句法分析工具簡介65
3.6 實例—中文句法分析66
3.7 本章小結(jié)68
3.8 習(xí)題68
第4章 基于機(jī)器學(xué)習(xí)的文本分類69
4.1 機(jī)器學(xué)習(xí)簡介69
4.1.1 scikit-learn簡介71
4.1.2 機(jī)器學(xué)習(xí)基本概念72
4.1.3 機(jī)器學(xué)習(xí)問題分類73
4.2 樸素貝葉斯分類器76
4.3 邏輯回歸分類器80
4.4 支持向量機(jī)分類器84
4.5 文本聚類89
4.6 實例—垃圾郵件分類94
4.7 本章小結(jié)99
4.8 習(xí)題99
第5章 深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)101
5.1 深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)簡介101
5.2 人工神經(jīng)網(wǎng)絡(luò)102
5.2.1 生物神經(jīng)元102
5.2.2 感知器103
5.2.3 激活函數(shù)105
5.2.4 神經(jīng)網(wǎng)絡(luò)110
5.3 前饋神經(jīng)網(wǎng)絡(luò)110
5.3.1 前饋神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)110
5.3.2 前向傳播111
5.3.3 損失函數(shù)112
5.3.4 反向傳播算法113
5.3.5 優(yōu)化方法114
5.4 深度學(xué)習(xí)框架116
5.4.1 TensorFlow116
5.4.2 Keras118
5.4.3 PyTorch119
5.4.4 PaddlePaddle120
5.5 實例—使用MLP實現(xiàn)手寫數(shù)字識別122
5.5.1 數(shù)據(jù)準(zhǔn)備122
5.5.2 創(chuàng)建MLP122
5.5.3 模型訓(xùn)練123
5.5.4 模型評價124
5.6 本章小結(jié)125
5.7 習(xí)題126
第6章 詞嵌入與詞向量127
6.1 文本向量化127
6.2 One-Hot編碼128
6.3 詞嵌入130
6.3.1 什么是詞嵌入130
6.3.2 詞嵌入的實現(xiàn)131
6.3.3 語義信息132
6.4 Word2Vec133
6.4.1 Word2Vec簡介133
6.4.2 Word2Vec的應(yīng)用134
6.4.3 使用gensim包訓(xùn)練詞向量136
6.5 Doc2Vec138
6.5.1 PV-DM139
6.5.2 PV-DBOW140
6.6 實例—利用Doc2Vec計算文檔相似度140
6.6.1 準(zhǔn)備語料庫140
6.6.2 定義和訓(xùn)練模型141
6.6.3 分析文本相似度142
6.7 本章小結(jié)145
6.8 習(xí)題145
第7章 卷積神經(jīng)網(wǎng)絡(luò)與自然語言處理146
7.1 卷積神經(jīng)網(wǎng)絡(luò)簡介146
7.1.1 深層神經(jīng)網(wǎng)絡(luò)用于圖像處理存在的問題146
7.1.2 什么是卷積148
7.1.3 填充150
7.1.4 步長151
7.1.5 什么是卷積神經(jīng)網(wǎng)絡(luò)151
7.2 應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)解決自然語言處理問題152
7.2.1 NLP中的卷積層152
7.2.2 NLP中的池化層154
7.2.3 NLP中CNN的基本架構(gòu)155
7.3 CNN在應(yīng)用中的超參數(shù)選擇156
7.3.1 激活函數(shù)156
7.3.2 卷積核的大小和個數(shù)156
7.3.3 dropout層156
7.3.4 softmax分類器157
7.4 實例—使用CNN實現(xiàn)新聞文本分類158
7.4.1 準(zhǔn)備數(shù)據(jù)158
7.4.2 定義和訓(xùn)練模型163
7.5 本章小結(jié)165
7.6 習(xí)題166
第8章 循環(huán)神經(jīng)網(wǎng)絡(luò)與自然語言處理167
8.1 循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)168
8.2 循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用于自然語言處理170
8.2.1 序列到類別170
8.2.2 同步序列到序列171
8.2.3 異步序列到序列172
8.3 循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練173
8.3.1 隨時間反向傳播算法173
8.3.2 權(quán)重的更新174
8.3.3 梯度消失與梯度爆炸175
8.4 長短期記憶網(wǎng)絡(luò)175
8.4.1 細(xì)胞狀態(tài)177
8.4.2 門控機(jī)制177
8.5 門控循環(huán)單元網(wǎng)絡(luò)181
8.6 更深的網(wǎng)絡(luò)184
8.6.1 堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)184
8.6.2 雙向循環(huán)神經(jīng)網(wǎng)絡(luò)185
8.7 實例—使用LSTM網(wǎng)絡(luò)實現(xiàn)文本情感分析186
8.7.1 數(shù)據(jù)準(zhǔn)備186
8.7.2 構(gòu)建和訓(xùn)練模型187
8.8 本章小結(jié)190
8.9 習(xí)題191
第9章 序列到序列模型與注意力機(jī)制192
9.1 序列到序列模型192
9.1.1 什么是序列到序列模型192
9.1.2 編碼–解碼架構(gòu)193
9.1.3 編碼器194
9.1.4 解碼器195
9.1.5 模型訓(xùn)練197
9.2 注意力機(jī)制198
9.2.1 什么是注意力機(jī)制198
9.2.2 計算語義向量200
9.2.3 自注意力機(jī)制200
9.2.4 Transformer模型202
9.3 實例—基于注意力機(jī)制的機(jī)器翻譯203
9.3.1 準(zhǔn)備數(shù)據(jù)203
9.3.2 構(gòu)建并訓(xùn)練模型207
9.3.3 使用模型進(jìn)行翻譯211
9.4 本章小結(jié)212
9.5 習(xí)題213
參考文獻(xiàn)215