內容簡介
NLTK是自然語言處理領域中非常受歡迎和廣泛使用的Python庫。NLTK的優點在於其簡單性,其中大多數複雜的自然語言處理任務使用幾行代碼即可完成。本書旨在講述如何用Python和NLTK解決各種自然語言處理任務並開發機器學習方面的套用。本書介紹了NLTK的基本模組,講述了採用NLTK實現自然語言處理的大量技巧,討論了一些文本處理方法和語言處理技術,展示了使用Python實現NLP項目的大量實踐經驗。本書主要內容包括文本挖掘/NLP任務中所需的所有預處理步驟,如何使用Python 3的NLTK 3進行文本處理,如何通過Python開展NLP項目。
本書適合NLP和機器學習領域的愛好者、Python程式設計師以及機器學習領域的研究人員閱讀。
圖書目錄
模組1 NLTK基礎知識
第 1章 自然語言處理簡介 3
1.1 為什麼要學習NLP 4
從Python的基本知識開始 7
1.2.1 列表 7
1.2.2 自助 8
1.2.3 正則表達式 9
1.2.4 詞典 11
1.2.5 編寫函式 11
1.3 NLTK 13
1.4 試一試 18
1.5 本章小結 18
第 2章 文本的整理和清洗 19
2.1 文本整理 19
2.2 文本清洗 21
2.3 句子拆分器 22
2.4 標記解析 22
2.5 詞幹提取 24
2.6 詞形還原 25
2.7 停用詞刪除 26
2.8 生僻字刪除 27
2.9 拼寫校正 27
2.10 試一試 28
2.11 本章小結 28
第3章 詞性標註 30
3.1 什麼是詞性標註 30
3.1.1 斯坦福標註器 33
3.1.2 深入了解標註器 34
3.1.3 序列標註器 35
3.1.4 布里爾標註器 37
3.1.5 基於標註器的機器學習 37
3.2 命名實體識別 38
3.3 試一試 40
3.4 本章小結 41
第4章 對文本的結構進行語法分析 42
4.1 淺層語法分析與深層語法
分析 42
4.2 語法分析的兩種方法 43
4.3 為什麼需要語法分析 43
4.4 不同類型的語法分析器 45
4.4.1 遞歸下降的語法分析器 45
4.4.2 移位歸約語法分析器 45
4.4.3 圖表語法分析器 45
4.4.4 正則表達式語法
分析器 46
4.5 依存分析 47
4.6 組塊化 49
4.7 信息抽取 51
4.7.1 命名實體識別 52
4.7.2 關係抽取 52
4.8 本章小結 53
10.1.2 Hive/Pig UDF 137
10.1.3 流包裝器 137
10.2 在Hadoop上運行NLTK 138
10.2.1 UDF 138
10.2.2 Python流 140
10.3 在Hadoop上運行
Scikit-learn 141
10.4 PySpark 144
10.5 本章小結 146
模組2 使用Python 3的NLTK 3進行文本處理
第 1章 標記文本和WordNet的基礎 149
1.1 引言 149
1.2 將文本標記成句子 150
1.2.1 準備工作 150
1.2.2 工作方式 151
1.2.3 工作原理 151
1.2.4 更多信息 151
1.2.5 請參閱 152
1.3 將句子標記成單詞 152
1.3.1 工作方式 152
1.3.2 工作原理 153
1.3.3 更多信息 153
1.3.4 請參閱 154
1.4 使用正則表達式標記語句 154
1.4.1 準備工作 155
1.4.2 工作方式 155
1.4.3 工作原理 155
1.4.4 更多信息 155
1.4.5 請參閱 156
1.5 訓練語句標記生成器 156
1.5.1 準備工作 156
1.5.2 工作方式 156
1.5.3 工作原理 157
1.5.4 更多信息 158
1.5.5 請參閱 158
1.6 在已標記的語句中過濾
停用詞 158
1.6.1 準備工作 158
1.6.2 工作方式 159
1.6.3 工作原理 159
1.6.4 更多信息 159
1.6.5 請參閱 160
1.7 查找WordNet中單詞的
Synset 160
1.7.1 準備工作 160
1.7.2 工作方式 160
1.7.3 工作原理 161
1.7.4 更多信息 161
1.7.5 請參閱 163
1.8 在WordNet中查找詞元和
同義詞 163
1.8.1 工作方式 163
1.8.2 工作原理 163
1.8.3 更多信息 163
1.8.4 請參閱 165
1.9 計算WordNet和Synset的
相似度 165
1.9.1 工作方式 165
1.9.2 工作原理 165
1.9.3 更多信息 166
1.9.4 請參閱 167
1.10 發現單詞搭配 167
1.10.1 準備工作 167
1.10.2 工作方式 167
1.10.3 工作原理 168
1.10.4 更多信息 168
1.10.5 請參閱 169
第 2章 替換和校正單詞 170
2.1 引言 170
2.2 詞幹提取 170
2.2.1 工作方式 171
2.2.2 工作原理 171
2.2.3 更多信息 171
2.2.4 請參閱 173
分散式單詞評分 392
8.8.1 準備工作 392
8.8.2 工作方式 392
8.8.3 工作原理 393
8.8.4 更多內容 396
8.8.5 請參閱 396
第9章 解析特定的數據類型 397
9.1 引言 397
9.2 使用dateutil解析日期和
時間 398
9.2.1 準備工作 398
9.2.2 工作方式 398
9.2.3 工作原理 399
9.2.4 更多信息 399
9.2.5 請參閱 399
9.3 時區的查找和轉換 400
9.3.1 準備工作 400
9.3.2 工作方式 400
9.3.3 工作原理 402
9.3.4 更多信息 402
9.3.5 請參閱 403
9.4 使用lxml從HTML中提取
URL 403
9.4.1 準備工作 403
9.4.2 工作方式 403
9.4.3 工作原理 404
9.4.4 更多信息 404
9.4.5 請參閱 405
9.5 清理和剝離HTML 405
9.5.1 準備工作 405
9.5.2 工作方式 405
9.5.3 工作原理 405
9.5.4 更多信息 406
9.5.5 請參閱 406
9.6 使用BeautifulSoup轉換
HTML實體 406
9.6.1 準備工作 406
9.6.2 工作方式 406
9.6.3 工作原理 407
9.6.4 更多信息 407
9.6.5 請參閱 407
9.7 檢測和轉換字元編碼 407
9.7.1 準備工作 408
9.7.2 工作方式 408
9.7.3 工作原理 409
9.7.4 更多信息 409
9.7.5 請參閱 410
附錄A 賓州treebank詞性標籤 411
模組3 使用Python掌握自然語言處理
第 1章 使用字元串 417
1.1 標記化 417
1.1.1 將文本標記為句子 418
1.1.2 其他語言文字的標記化 418
1.1.3 將句子標記為單詞 419
1.1.4 使用TreebankWordTokenizer
進行標記化 420
1.1.5 使用正則表達式進行
標記化 421
1.2 規範化 424
1.2.1 消除標點符號 424
1.2.2 轉化為小寫和大寫 425
1.2.3 處理停用詞 425
1.2.4 計算英語中的停用詞 426
1.3 替代和糾正標記 427
1.3.1 使用正則表達式替換
單詞 427
1.3.2 使用一個文本替換另一個
文本的示例 428
1.3.3 在標記化之前進行
替代 428
1.3.4 處理重複的字元 428
1.3.5 刪除重複字元的示例 429