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