本書遵循結構化和綜合性的方法,介紹了文本和語言語法、結構和語義的基礎概念和高級概念。從自然語言和Python的基礎開始,進而學習先進的分析理念和機器學習概念。全面提供了自然語言處理(NLP)和文本分析的主要概念和技術。包含了豐富的真實案例實現技術,例如構建分類新聞文章的文本分類系統,使用主題建模和文本摘要分析app或游戲評論,進行熱門電影概要的聚類分析和電影評論的情感分析。介紹了基于Python和流行NLP開源庫和文本分析實用工具,如自然語言工具包(nltk)、gensim、scikit-learn、spaCy和Pattern。
譯者序
推薦序
前言
致謝
作者簡介
技術審校者簡介
第1章 自然語言處理基礎1
1.1 自然語言2
1.1.1 什么是自然語言2
1.1.2 語言哲學2
1.1.3 語言習得和用法4
1.2 語言學6
1.3 語言句法和結構7
1.3.1 單詞9
1.3.2 短語10
1.3.3 從句12
1.3.4 語法13
1.3.5 語序類型學20
1.4 語言語義21
1.4.1 詞匯語義關系22
1.4.2 語義網絡和模型24
1.4.3 語義表示25
1.5 文本語料庫31
1.5.1 文本語料庫標注及使用31
1.5.2 流行的語料庫32
1.5.3 訪問文本語料庫33
1.6 自然語言處理38
1.6.1 機器翻譯38
1.6.2 語音識別系統39
1.6.3 問答系統39
1.6.4 上下文識別與消解39
1.6.5 文本摘要40
1.6.6 文本分類40
1.7 文本分析40
1.8 機器學習41
1.9 深度學習41
1.10 本章小結42
第2章 Python自然語言處理43
2.1 了解Python43
2.2 Python之禪44
2.3 應用:何時使用Python45
2.4 缺點:何時不用Python47
2.5 Python的實現和版本47
2.6 建立強大的Python環(huán)境48
2.6.1 用哪個Python版本48
2.6.2 用哪個操作系統49
2.6.3 集成開發(fā)環(huán)境49
2.6.4 環(huán)境設置50
2.6.5 軟件包管理52
2.6.6 虛擬環(huán)境53
2.7 Python語法和結構55
2.8 使用文本數據55
2.8.1 字符串文字56
2.8.2 表示字符串57
2.8.3 字符串操作和方法58
2.9 基本的文本處理和分析:綜合案例67
2.10 自然語言處理框架70
2.11 本章小結71
第3章 處理和理解文本73
3.1 文本預處理和整理74
3.1.1 刪除HTML標簽74
3.1.2 文本標記解析76
3.1.3 刪除重音字符87
3.1.4 擴展縮寫詞87
3.1.5 刪除特殊字符89
3.1.6 大小寫轉換89
3.1.7 文本校正89
3.1.8 詞干提取96
3.1.9 詞形還原99
3.1.10 刪除停用詞100
3.1.11 將以上整合在一起—構建文本規(guī)范器101
3.2 理解文本句法和結構102
3.2.1 安裝必要的依賴項103
3.2.2 機器學習的重要概念105
3.2.3 詞性標注105
3.2.4 淺層解析或分塊112
3.2.5 依存關系解析120
3.2.6 成分結構解析123
3.3 本章小結129
第4章 用于文本表示的特征工程131
4.1 理解文本數據132
4.2 構建文本語料庫132
4.3 預處理文本語料庫133
4.4 傳統特征工程模型135
4.4.1 詞袋模型135
4.4.2 n-gram詞袋模型137
4.4.3 TF-IDF模型137
4.4.4 提取新文檔的特征143
4.4.5 文檔相似度143
4.4.6 主題模型146
4.5 高級特征工程模型149
4.5.1 加載圣經語料庫150
4.5.2 Word2Vec模型150
4.5.3 基于Gensim的強大Word2Vec模型163
4.5.4 Word2Vec特征用于機器學習任務165
4.5.5 GloVe模型169
4.5.6 GloVe特征用于機器學習任務170
4.5.7 FastText模型173
4.5.8 FastText特征用于機器學習任務174
4.6 本章小結175
第5章 文本分類176
5.1 什么是文本分類177
5.1.1 正式定義177
5.1.2 主要的文本分類類型178
5.2 自動文本分類178
5.2.1 正式定義179
5.2.2 文本分類任務類型180
5.3 文本分類藍圖180
5.4 數據檢索182
5.5 數據預處理和規(guī)范化183
5.6 構建訓練和測試數據集186
5.7 特征工程技術187
5.7.1 傳統特征工程模型188
5.7.2 高級特征工程模型188
5.8 分類模型189
5.8.1 多項式樸素貝葉斯190
5.8.2 邏輯回歸191
5.8.3 支持向量機193
5.8.4 集成模型194
5.8.5 隨機森林195
5.8.6 梯度提升機195
5.9 評估分類模型196
5.10 構建和評估文本分類器199
5.10.1 分類模型的詞袋特征200
5.10.2 分類模型的TF-IDF特征202
5.10.3 比較模型性能評估205
5.10.4 分類模型的Word2Vec嵌入205
5.10.5 分類模型的GloVe嵌入207
5.10.6 分類模型的FastText嵌入208
5.10.7 模型調優(yōu)209
5.10.8 模型性能評估212
5.11 應用217
5.12 本章小結217
第6章 文本摘要和主題模型219
6.1 文本摘要和信息提取220
6.1.1 關鍵短語提取220
6.1.2 主題建模221
6.1.3 自動文檔摘要221
6.2 重要概念221
6.3 關鍵短語提取223
6.3.1 搭配223
6.3.2 基于權重標簽的短語提取228
6.4 主題建模231
6.5 研究論文的主題建模232
6.5.1 主要目標232
6.5.2 數據檢索233
6.5.3 加載和查看數據集233
6.5.4 基本文本整理234
6.6 Gensim的主題模型235
6.6.1 特征工程的文本表示236
6.6.2 潛在語義索引238
6.6.3 從頭開始實現LSI主題模型245
6.6.4 LDA250
6.6.5 MALLET的LDA模型257
6.6.6 LDA調優(yōu):查找最佳主題數259
6.6.7 解釋主題模型結果263
6.6.8 預測新研究論文的主題266
6.7 Scikit-Learn的主題模型269
6.7.1 特征工程的文本表示270
6.7.2 潛在語義索引270
6.7.3 LDA274
6.7.4 非負矩陣分解276
6.7.5 預測新研究論文的主題279
6.7.6 可視化主題模型280
6.8 自動文檔摘要282
6.8.1 文本整理284
6.8.2 特征工程的文本表示285
6.8.3 潛在語義分析285
6.8.4 TextRank288
6.9 本章小結291
第7章 文本相似度和聚類293
7.1 基本概念294
7.1.1 信息檢索294
7.1.2 特征工程294
7.1.3 相似度度量295
7.1.4 無監(jiān)督的機器學習算法295
7.2 文本相似度295
7.3 分析詞項相似度296
7.3.1 漢明距離297
7.3.2 曼哈頓距離298
7.3.3 歐幾里得距離300
7.3.4 萊文斯坦編輯距離300
7.3.5 余弦距離和相似度304
7.4 分析文檔相似度307
7.5 構建電影推薦系統308
7.5.1 加載和查看數據集308
7.5.2 文本預處理310
7.5.3 提取TF-IDF特征311
7.5.4 成對文檔相似度的余弦相似度311
7.5.5 查找與示例電影最相似的電影312
7.5.6 構建電影推薦系統313
7.5.7 獲取流行的電影列表313
7.5.8 成對文檔相似度的Okapi BM25排名315
7.6 文檔聚類322
7.7 電影聚類323
7.7.1 特征工程324
7.7.2 k-均值聚類324
7.7.3 近鄰傳播算法329
7.7.4 Ward凝聚層次聚類332
7.8 本章小結335
第8章 語義分析336
8.1 語義分析簡介337
8.2 探索WordNet337
8.2.1 理解同義詞集338
8.2.2 分析詞匯的語義關系339
8.3 詞義消歧345
8.4 命名實體識別347
8.5 從零開始構建NER標注器353
8.6 使用訓練的NER模型構建端到端的NER標注器360
8.7 分析語義表示362
8.7.1 命題邏輯362
8.7.2 一階邏輯364
8.8 本章小結368
第9章 情感分析369
9.1 問題描述370
9.2 安裝依賴項370
9.3 獲取數據370
9.4 文本預處理與規(guī)范化371
9.5 無監(jiān)督的詞典模型372
9.5.1 Bing Liu詞典373
9.5.2 MPQA主觀詞典373
9.5.3 pattern詞典374
9.5.4 TextBlob詞典374
9.5.5 AFINN詞典376
9.5.6 SentiWordNet詞典377
9.5.7 VADER詞典380
9.6 使用有監(jiān)督的學習進行情感分類382
9.7 傳統的有監(jiān)督機器學習模型384
9.8 新的有監(jiān)督深度學習模型386
9.9 高級的有監(jiān)督深度學習模型392
9.10 分析情感成因399
9.10.1 解釋預測模型399
9.10.2 分析主題模型404
9.11 本章小結409
第10章 深度學習的前景410
10.1 為什么我們對嵌入癡迷411
10.2 詞嵌入模型的趨勢412
10.3 通用句子嵌入模型的趨勢413
10.4 理解文本分類問題417
10.5 使用通用句子嵌入417
10.5.1 加載依賴417
10.5.2 加載和查看數據集418
10.5.3 構建訓練、驗證和測試數據集419
10.5.4 基本文本整理419
10.5.5 構建數據接入函數420
10.5.6 使用通用句子編碼器構建深度學習模型421
10.5.7 模型訓練421
10.5.8 模型評估423
10.6 紅利:使用不同的通用句子嵌入進行遷移學習423
10.7 本章小結與展望429