自然語言處理是一門融語言學、計算機科學、數(shù)學于一體的科學,研究人與計算機之間用自然語言進行有效通信的各種理論和方法。計算語言學是指通過建立形式化的數(shù)學模型來分析、處理自然語言,并在計算機上用程序來實現(xiàn)分析和處理的過程,旨在以機器來模擬人的部分或全部語言能力的目的。
《自然語言處理與計算語言學》作為一本借助于Python編程語言以及各種開源工具(如Gensim、spaCy等)來執(zhí)行文本分析、自然語言處理和計算語言學算法的圖書,從應用層面介紹了相關(guān)的理論知識和所涉及的技術(shù)。《自然語言處理與計算語言學》共分為15章,其內(nèi)容涵蓋了文本分析的定義、使用Python進行文本分析的技巧、spaCy語言模型、Gensim工具、詞性標注及其應用、NER標注及其應用、依存分析、主題模型、高級主題建模、文本聚類和文本分類、查詢詞相似度計算和文本摘要、詞嵌入、使用深度學習處理文本、使用Keras和spaCy進行深度學習、情感分析與聊天機器人的原理介紹等。
《自然語言處理與計算語言學》適合對自然語言處理的實現(xiàn)細節(jié)感興趣的Python程序開發(fā)人員閱讀。如果讀者具備統(tǒng)計學的基本知識,對學習本書內(nèi)容會大有裨益。
1.Python開源社區(qū)資深供稿人撰寫,基于Python語言
2.計算語言學領(lǐng)域為數(shù)不多的作品之一
3.文本分析實用指南
4.技術(shù)實用性強,側(cè)重于技術(shù)細節(jié)的實現(xiàn)
5.平衡了理論與實戰(zhàn)案例之間的關(guān)系,可以在掌握理論知識的同時,運行自己的自然語言處理項目
6.提供源碼下載
使用Python和開源工具可以非常方便地進行現(xiàn)代文本分析,因此,在這個文本數(shù)據(jù)時代有必要掌握現(xiàn)代文本分析的方法。
本書介紹了如何使用自然語言處理和計算語言學算法對所擁有的數(shù)據(jù)進行推理并獲得洞察力。這些算法以統(tǒng)計機器學習和人工智能技術(shù)為基礎,F(xiàn)在,使用了這些算法的工具唾手可得,并可在Python、Gensim和spaCy等工具中使用。
本書從數(shù)據(jù)清理開始介紹,然后介紹了計算語言學的相關(guān)概念。在掌握了這些內(nèi)容之后,接下來就可以使用真實的語言和文本,并借助Python來探索統(tǒng)計NLP和深度學習的更復雜領(lǐng)域。你將學到如何使用合適的工具來標注、解析和建模文本,并掌握相應框架工具的使用知識,還將知道何時選為主題模型選擇Gensim這樣的工具,以及何時使用Keras進行深度學習。
本書很好地平衡了理論與實戰(zhàn)案例之間的關(guān)系,因此你可以在掌握理論知識的同時,執(zhí)運行自己的自然語言處理項目。你將發(fā)現(xiàn)Python這一自然語言處理工具所具有的豐富的生態(tài)系統(tǒng),并將進入現(xiàn)代文本分析的有趣世界。
本書內(nèi)容:
文本分析為什么在當今時代如此重要;
理解NLP術(shù)語并了解各種Python工具與數(shù)據(jù)集;
如何預處理以及清理文本數(shù)據(jù);
將文本數(shù)據(jù)轉(zhuǎn)換為矢量空間表示;
使用spaCy處理文本;
針對計算語言學訓練自己的NLP模型;
借助于Gensim和scikit-learn,針對文本使用統(tǒng)計學習和主題建模算法;
借助于Keras,使用各種深度學習技術(shù)進行文本分析。
Bhargav Srinivasa-Desikan 是就職于法國INRIA公司(位于里爾)的一名研究人員。作為MODAL(數(shù)據(jù)分析與機器建模)小組的一員,致力于度量學習、預測聚合和數(shù)據(jù)可視化等研究領(lǐng)域。同時,他也是Python開源社區(qū)的一名活躍貢獻者,在2016年度Google的夏季編程賽上,他通過Gensim實現(xiàn)了動態(tài)主題模型。Bhargav是歐洲和亞洲PyCons和PyDatas的常客,并使用Python進行文本分析教學。他也是Python機器學習軟件包pycobra的維護者,還在Machine Learning Research雜志上發(fā)表過相關(guān)文章。
第 1章 什么是文本分析\t1
1.1 什么是文本分析 1
1.2 搜集數(shù)據(jù) 5
1.3 若輸入錯誤數(shù)據(jù),則輸出亦為錯誤數(shù)據(jù)(garbage in,garbage out) 8
1.4 為什么你需要文本分析 9
1.5 總結(jié) 11
第 2章 Python文本分析技巧 12
2.1 為什么用Python來做文本分析 12
2.2 用Python進行文本操作 14
2.3 總結(jié) 18
第3章 spaCy語言模型 19
3.1 spaCy庫 19
3.2 spaCy的安裝步驟 21
3.3 故障排除 22
3.4 語言模型 22
3.5 安裝語言模型 23
3.6 安裝語言模型的方式及原因 25
3.7 語言模型的基本預處理操作 25
3.8 分詞 26
3.9 詞性標注 28
3.10 命名實體識別 29
3.11 規(guī)則匹配 30
3.12 預處理 31
3.13 總結(jié) 33
第4章 Gensim:文本向量化、向量變換和n-grams的工具 34
4.1 Gensim庫介紹 34
4.2 向量以及為什么需要向量化 35
4.3 詞袋(bag-of-words) 36
4.4 TF-IDF(詞頻-反向文檔頻率) 37
4.5 其他表示方式 38
4.6 Gensim中的向量變換 38
4.7 n-grams及其預處理技術(shù) 42
4.8 總結(jié) 44
第5章 詞性標注及其應用 45
5.1 什么是詞性標注 45
5.2 使用Python實現(xiàn)詞性標注 49
5.3 使用spaCy進行詞性標注 50
5.4 從頭開始訓練一個詞性標注模型 53
5.5 詞性標注的代碼示例 57
5.6 總結(jié) 59
第6章 NER標注及其應用 60
6.1 什么是NER標注 60
6.2 用Python實現(xiàn)NER標注 64
6.3 使用spaCy實現(xiàn)NER標注 67
6.4 從頭開始訓練一個NER標注器 72
6.5 NER標注應用實例和可視化 77
6.6 總結(jié) 79
第7章 依存分析 80
7.1 依存分析 80
7.2 用Python實現(xiàn)依存分析 85
7.3 用spaCy實現(xiàn)依存分析 87
7.4 從頭開始訓練一個依存分析器 91
7.5 總結(jié) 98
第8章 主題模型 99
8.1 什么是主題模型 99
8.2 使用Gensim構(gòu)建主題模型 101
8.3 隱狄利克雷分配(Latent Dirichlet Allocation) 102
8.4 潛在語義索引(Latent Semantic Indexing) 104
8.5 分層狄利特雷過程(Hierarchical Dirichlet Process) 105
8.6 動態(tài)主題模型 108
8.7 使用scikit-learn構(gòu)建主題模型 109
8.8 總結(jié) 112
第9章 高級主題建模 113
9.1 高級訓練技巧 113
9.2 探索文檔 117
9.3 主題一致性和主題模型的評估 121
9.4 主題模型的可視化 123
9.5 總結(jié) 127
第 10章 文本聚類和文本分類 128
10.1 文本聚類 128
10.2 聚類前的準備工作 129
10.3 K-means 132
10.4 層次聚類 134
10.5 文本分類 136
10.6 總結(jié) 138
第 11章 查詢詞相似度計算和文本摘要 139
11.1 文本距離的度量 139
11.2 查詢詞相似度計算 145
11.3 文本摘要 147
11.4 總結(jié) 153
第 12章 Word2Vec、Doc2Vec和Gensim 154
12.1 Word2Vec 154
12.2 用Gensim實現(xiàn)Word2Vec 155
12.3 Doc2Vec 160
12.4 其他詞嵌入技術(shù) 166
12.5 總結(jié) 172
第 13章 使用深度學習處理文本 173
13.1 深度學習 173
13.2 深度學習在文本上的應用 174
13.3 文本生成 177
13.4 總結(jié) 182
第 14章 使用Keras和spaCy進行深度學習 183
14.1 Keras和spaCy 183
14.2 使用Keras進行文本分類 185
14.3 使用spaCy進行文本分類 191
14.4 總結(jié) 201
第 15章 情感分析與聊天機器人 202
15.1 情感分析 202
15.2 基于Reddit的新聞數(shù)據(jù)挖掘 205
15.3 基于Twitter的微博數(shù)據(jù)挖掘 207
15.4 聊天機器人 209
15.5 總結(jié) 217