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