自然語言處理是計(jì)算語言學(xué)和人工智能之中與人機(jī)交互相關(guān)的領(lǐng)域之一。 本書是學(xué)習(xí)自然語言處理的一本綜合學(xué)習(xí)指南, 介紹了如何用Python實(shí)現(xiàn)各種NLP任務(wù), 以幫助讀者創(chuàng)建基于真實(shí)生活應(yīng)用的項(xiàng)目。全書共10章, 分別涉及字符串操作、統(tǒng)計(jì)語言建模、形態(tài)學(xué)、詞性標(biāo)注、語法解析、語義分析、情感分析、信息檢索、語篇分析和NLP系統(tǒng)評估等主題。
本書詳細(xì)介紹如何使用Python執(zhí)行各種自然語言處理(NLP)任務(wù),并幫助讀者掌握利用Python設(shè)計(jì)和構(gòu)建基于NLP的應(yīng)用的zui佳實(shí)踐。本書引導(dǎo)讀者應(yīng)用機(jī)器學(xué)習(xí)工具來開發(fā)各種各樣的模型。對于訓(xùn)練數(shù)據(jù)的創(chuàng)建和主要NLP應(yīng)用的實(shí)現(xiàn),例如命名實(shí)體識別、問答系統(tǒng)、語篇分析、詞義消歧、信息檢索、情感分析、文本摘要以及指代消解等,本書都進(jìn)行了清晰的介紹。本書有助于讀者使用NLTK創(chuàng)建NLP項(xiàng)目并成為相關(guān)領(lǐng)域的專家。
第1章 字符串操作 1
1.1 切分 1
1.1.1 將文本切分為語句 2
1.1.2 其他語言文本的切分 2
1.1.3 將句子切分為單詞 3
1.1.4 使用TreebankWordTokenizer
執(zhí)行切分 4
1.1.5 使用正則表達(dá)式實(shí)現(xiàn)
切分 5
1.2 標(biāo)準(zhǔn)化 8
1.2.1 消除標(biāo)點(diǎn)符號 8
1.2.2 文本的大小寫轉(zhuǎn)換 9
1.2.3 處理停止詞 9
1.2.4 計(jì)算英語中的停止詞 10
1.3 替換和校正標(biāo)識符 11
1.3.1 使用正則表達(dá)式替換
單詞 11
1.3.2 用另一個(gè)文本替換文本的
示例 12
1.3.3 在執(zhí)行切分前先執(zhí)行替換操作 12
1.3.4 處理重復(fù)字符 13
1.3.5 去除重復(fù)字符的示例 13
1.3.6 用單詞的同義詞替換 14
1.3.7 用單詞的同義詞替換的
示例 15
1.4 在文本上應(yīng)用Zipf定律 15
1.5 相似性度量 16
1.5.1 使用編輯距離算法執(zhí)行相似性度量 16
1.5.2 使用Jaccard系數(shù)執(zhí)行相似性度量 18
1.5.3 使用Smith Waterman距離算法執(zhí)行相似性度量 19
1.5.4 其他字符串相似性度量 19
1.6 小結(jié) 20
第2章 統(tǒng)計(jì)語言建模 21
2.1 理解單詞頻率 21
2.1.1 為給定的文本開發(fā)
MLE 25
2.1.2 隱馬爾科夫模型估計(jì) 32
2.2 在MLE模型上應(yīng)用平滑 34
2.2.1 加法平滑 34
2.2.2 Good Turing平滑 35
2.2.3 Kneser Ney平滑 40
2.2.4 Witten Bell平滑 41
2.3 為MLE開發(fā)一個(gè)回退機(jī)制 41
2.4 應(yīng)用數(shù)據(jù)的插值以便獲取混合
搭配 42
2.5 通過復(fù)雜度來評估語言模型 42
2.6 在語言建模中應(yīng)用
Metropolis-Hastings算法 43
2.7 在語言處理中應(yīng)用Gibbs
采樣法 43
2.8 小結(jié) 46
第3章 形態(tài)學(xué):在實(shí)踐中學(xué)習(xí) 47
3.1 形態(tài)學(xué)簡介 47
3.2 理解詞干提取器 48
3.3 理解詞形還原 51
3.4 為非英文語言開發(fā)詞干
提取器 52
3.5 形態(tài)分析器 54
3.6 形態(tài)生成器 56
3.7 搜索引擎 56
3.8 小結(jié) 61
第4章 詞性標(biāo)注:單詞識別 62
4.1 詞性標(biāo)注簡介 62
默認(rèn)標(biāo)注 67
4.2 創(chuàng)建詞性標(biāo)注語料庫 68
4.3 選擇一種機(jī)器學(xué)習(xí)算法 70
4.4 涉及n-gram的統(tǒng)計(jì)建模 72
4.5 使用詞性標(biāo)注語料庫開發(fā)
分塊器 78
4.6 小結(jié) 80
第5章 語法解析:分析訓(xùn)練資料 81
5.1 語法解析簡介 81
5.2 Treebank建設(shè) 82
5.3 從Treebank提取上下文無關(guān)
文法規(guī)則 87
5.4 從CFG創(chuàng)建概率上下文無關(guān)
文法 93
5.5 CYK線圖解析算法 94
5.6 Earley線圖解析算法 96
5.7 小結(jié) 102
第6章 語義分析:意義很重要 103
6.1 語義分析簡介 103
6.1.1 NER簡介 107
6.1.2 使用隱馬爾科夫模型的
NER系統(tǒng) 111
6.1.3 使用機(jī)器學(xué)習(xí)工具包訓(xùn)練
NER 117
6.1.4 使用詞性標(biāo)注執(zhí)行
NER 117
6.2 使用Wordnet生成同義詞
集id 119
6.3 使用Wordnet進(jìn)行詞義消歧 122
6.4 小結(jié) 127
第7章 情感分析:我很快樂 128
7.1 情感分析簡介 128
7.1.1 使用NER執(zhí)行情感
分析 134
7.1.2 使用機(jī)器學(xué)習(xí)執(zhí)行情感
分析 134
7.1.3 NER系統(tǒng)的評估 141
7.2 小結(jié) 159
第8章 信息檢索:訪問信息 160
8.1 信息檢索簡介 160
8.1.1 停止詞刪除 161
8.1.2 使用向量空間模型進(jìn)行
信息檢索 163
8.2 向量空間評分及查詢操作符
關(guān)聯(lián) 170
8.3 使用隱性語義索引開發(fā)IR
系統(tǒng) 173
8.4 文本摘要 174
8.5 問答系統(tǒng) 176
8.6 小結(jié) 177
第9章 語篇分析:理解才是可信的 178
9.1 語篇分析簡介 178
9.1.1 使用中心理論執(zhí)行語篇
分析 183
9.1.2 指代消解 184
9.2 小結(jié) 188
第10章 NLP系統(tǒng)評估:性能分析 189
10.1 NLP系統(tǒng)評估要點(diǎn) 189
10.1.1 NLP工具的評估(詞性標(biāo)注器、詞干提取器及形態(tài)分析器) 190
10.1.2 使用黃金數(shù)據(jù)執(zhí)行解析器
評估 200
10.2 IR系統(tǒng)的評估 201
10.3 錯(cuò)誤識別指標(biāo) 202
10.4 基于詞匯搭配的指標(biāo) 202
10.5 基于句法匹配的指標(biāo) 207
10.6 使用淺層語義匹配的指標(biāo) 207
10.7 小結(jié) 208