自然語言處理(Natural Language Processing,NLP)是計算機科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。它研究能夠?qū)崿F(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法,涉及所有用計算機對自然語言進行的操作。
《Python自然語言處理》是自然語言處理領(lǐng)域的一本實用入門指南,旨在幫助讀者學(xué)習(xí)如何編寫程序來分析書面語言!禤ython自然語言處理》基于Python編程語言以及一個名為NLTK的自然語言工具包的開源庫,但并不要求讀者有Python編程的經(jīng)驗。全書共11章,按照難易程度順序編排。第1章到第3章介紹了語言處理的基礎(chǔ),講述如何使用小的Python程序分析感興趣的文本信息。第4章討論結(jié)構(gòu)化程序設(shè)計,以鞏固前面幾章中介紹的編程要點。第5章到第7章介紹語言處理的基本原理,包括標(biāo)注、分類和信息提取等。第8章到第10章介紹了句子解析、句法結(jié)構(gòu)識別和句意表達(dá)方法。第11章介紹了如何有效管理語言數(shù)據(jù)。后記部分簡要討論了NLP領(lǐng)域的過去和未來。
《Python自然語言處理》的實踐性很強,包括上百個實際可用的例子和分級練習(xí)。《Python自然語言處理》可供讀者用于自學(xué),也可以作為自然語言處理或計算語言學(xué)課程的教科書,還可以作為人工智能、文本挖掘、語料庫語言學(xué)等課程的補充讀物。
Python自然語言處理方面的權(quán)威之作
快速了解一些概念及基本工作原理的必讀
提供豐富英文語料庫和代碼,方便練習(xí)
從輸入法聯(lián)想提示(predictive text)、email過濾到自動文本匯總、機器翻譯,大量的語言相關(guān)的技術(shù)都離不開自然語言處理的支持,而這本書提供了自然語言處理的入門指南。通過本書,你將學(xué)到如何編寫能處理大量非結(jié)構(gòu)化文本的Python程序。你可以訪問具有豐富標(biāo)注的、涵蓋了語言學(xué)各種數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)集,而且你將學(xué)習(xí)分析書面文檔的內(nèi)容以及結(jié)構(gòu)的主要算法。
通過大量的例子和練習(xí),本書將幫助你:
從非結(jié)構(gòu)化文本中提取信息,無論是猜測主題還是識別“命名實體”;
分析文本的語言學(xué)結(jié)構(gòu),包括語法和語義分析;
訪問流行的語言學(xué)數(shù)據(jù)集,包括WordNet和treebanks;
整合從語言學(xué)到人工智能等多個領(lǐng)域的技術(shù)。
通過使用Python程序設(shè)計語言和自然語言工具包(NTLK)的開源庫,本書將幫助你增加自然語言處理的實際經(jīng)驗。如果你對開發(fā)Web應(yīng)用、分析多語言的新聞源或編制瀕危語言感興趣,或者只是想要從程序員的視角看人類語言如何運作,你將發(fā)現(xiàn)本書不僅有趣而且極其有用。
Steven Bird是墨爾本大學(xué)計算機科學(xué)和軟件工程系副教授,賓夕法尼亞大學(xué)語言學(xué)數(shù)據(jù)聯(lián)盟高級研究助理。
Ewan Klein是愛丁堡大學(xué)信息學(xué)院語言技術(shù)教授。
Edward Loper是畢業(yè)于賓夕法尼亞大學(xué)專注于機器學(xué)習(xí)的自然語言處理方向的博士,現(xiàn)在在波士頓的BBN Technologies擔(dān)任研究員。
目 錄
第1章 語言處理與Python 1
1.1 語言計算:文本和詞匯 1
1.2 近觀Python:將文本當(dāng)做詞鏈表 10
1.3 計算語言:簡單的統(tǒng)計 17
1.4 回到Python:決策與控制 24
1.5 自動理解自然語言 29
1.6 小結(jié) 35
1.7 深入閱讀 36
1.8 練習(xí) 37
第2章 獲得文本語料和詞匯資源 41
2.1 獲取文本語料庫 41
2.2 條件頻率分布 55
2.3 更多關(guān)于Python:代碼重用 60
2.4 詞典資源 63
2.5 WordNet 72
2.6 小結(jié) 78
2.7 深入閱讀 79
2.8 練習(xí) 80
第3章 處理原始文本 84
3.1 從網(wǎng)絡(luò)和硬盤訪問文本 84
3.2 字符串:最底層的文本處理 93
3.3 使用Unicode進行文字處理 100
3.4 使用正則表達(dá)式檢測詞組搭配 105
3.5 正則表達(dá)式的有益應(yīng)用 109
3.6 規(guī)范化文本 115
3.7 用正則表達(dá)式為文本分詞 118
3.8 分割 121
3.9 格式化:從鏈表到字符串 126
3.10 小結(jié) 132
3.11 深入閱讀 133
3.12 練習(xí) 134
第4章 編寫結(jié)構(gòu)化程序 142
4.1 回到基礎(chǔ) 142
4.2 序列 147
4.3 風(fēng)格的問題 152
4.4 函數(shù):結(jié)構(gòu)化編程的基礎(chǔ) 156
4.5 更多關(guān)于函數(shù) 164
4.6 程序開發(fā) 169
4.7 算法設(shè)計 175
4.8 Python庫的樣例 183
4.9 小結(jié) 188
4.10 深入閱讀 189
4.11 練習(xí) 189
第5章 分類和標(biāo)注詞匯 195
5.1 使用詞性標(biāo)注器 195
5.2 標(biāo)注語料庫 197
5.3 使用Python字典映射詞及其屬性 206
5.4 自動標(biāo)注 216
5.5 N-gram標(biāo)注 221
5.6 基于轉(zhuǎn)換的標(biāo)注 228
5.7 如何確定一個詞的分類 230
5.8 小結(jié) 233
5.9 深入閱讀 234
5.10 練習(xí) 235
第6章 學(xué)習(xí)分類文本 241
6.1 監(jiān)督式分類 241
6.2 監(jiān)督式分類的舉例 254
6.3 評估 258
6.4 決策樹 263
6.5 樸素貝葉斯分類器 266
6.6 最大熵分類器 271
6.7 為語言模式建模 275
6.8 小結(jié) 276
6.9 深入閱讀 277
6.10 練習(xí) 278
第7章 從文本提取信息 281
7.1 信息提取 281
7.2 分塊 284
7.3 開發(fā)和評估分塊器 291
7.4 語言結(jié)構(gòu)中的遞歸 299
7.5 命名實體識別 302
7.6 關(guān)系抽取 306
7.7 小結(jié) 307
7.8 深入閱讀 308
7.9 練習(xí) 308
第8章 分析句子結(jié)構(gòu) 312
8.1 一些語法困境 312
8.2 文法的用途 316
8.3 上下文無關(guān)文法 319
8.4 上下文無關(guān)文法分析 323
8.5 依存關(guān)系和依存文法 332
8.6 文法開發(fā) 336
8.7 小結(jié) 343
8.8 深入閱讀 344
8.9 練習(xí) 344
第9章 建立基于特征的文法 349
9.1 文法特征 349
9.2 處理特征結(jié)構(gòu) 359
9.3 擴展基于特征的文法 367
9.4 小結(jié) 379
9.5 深入閱讀 380
9.6 練習(xí) 381
第10章 分析語句的含義 384
10.1 自然語言理解 384
10.2 命題邏輯 391
10.3 一階邏輯 395
10.4 英語語句的語義 409
10.5 段落語義層 422
10.6 小結(jié) 428
10.7 深入閱讀 429
10.8 練習(xí) 430
第11章 語言數(shù)據(jù)管理 434
11.1 語料庫結(jié)構(gòu):案例研究 434
11.2 語料庫生命周期 439
11.3 數(shù)據(jù)采集 443
11.4 使用XML 452
11.5 使用Toolbox數(shù)據(jù) 459
11.6 使用OLAC元數(shù)據(jù)描述語言資源 463
11.7 小結(jié) 466
11.8 深入閱讀 466
11.9 練習(xí) 467
后記 470
參考文獻 476