面向自然語言處理的深度學習:用 Python 創建神經網絡 (Deep Learning for Natural Language Processing: Creating Neural Networks with Python)

Palash Goyal, Sumit Pandey, Karan Jain

買這商品的人也買了...

商品描述

本書使用適當和完整的神經網絡體系結構示例,例如用於自然語言處理(NLP)任務的循環神經網絡(RNN)和序列到序列(seq2seq),以較為全面的方式簡化和呈現深度學習的概念。

本書試圖彌合理論與應用之間的缺口。

本書以循序漸進的方式從理論過渡到實踐,首先介紹基礎知識,然後是基礎數學,最後是相關示例的實現。

前三章介紹NLP的基礎知識,從最常用的Python庫開始,然後是詞向量表示,再到高級算法,例如用於文本數據的神經網絡。

最後兩章完全側重於實現,運用廣泛流行的Python工具TensorFlow和Keras,處理諸如RNN、長短期記憶(LSTM)網絡、seq2seq等複雜架構。

我們盡最大努力遵循循序漸進的方法,最後集合全部知識構建一個問答系統。

本書旨在為想要學習面向NLP的深度學習技術的讀者提供一個很好的起點。

本書中展示的所有代碼都在GitHub上以IPython notebook和腳本的形式公開,使讀者能夠實踐這些示例,並以自己感興趣的任何方式對它們進行擴展。

作者簡介

Palash Goyal是一名高級數據科學家,目前從事將數據科學和深度學習用於在線營銷領域的工作。他曾在印度理工學院(IIT)的Guwahati分校學習數學和計算機科學,畢業後他開始在快節奏環境中工作。
他在電子商務、旅遊、保險和銀行等行業擁有豐富的經驗,熱衷於數學和金融。他利用深度學習和強化學習技術進行價格預測與投資組合管理,在業餘時間管理他的多種加密貨幣和最新的首次代幣發行(ICO)。他追踪數據科學領域的最新趨勢,並在博客http://madoverdata.com上分享這些趨勢。

目錄大綱

譯者序

前言

致謝

關於作者

關於技術審校人員

第1章自然語言處理和深度學習概述 1

1.1 Python包 2

1.1.1 NumPy 2

1.1.2 Pandas 6

1.1.3 SciPy 9

1.2 自然語言處理簡介 11

1.2.1 什麼是自然語言處理 11

1.2.2 如何理解人類的語言 11

1.2.3 自然語言處理的難度是什麼 11

1.2.4 我們想通過自然語言處理獲得什麼 13

1.2.5 語言處理中的常用術語 13

1.3 自然語言處理庫 14

1.3.1 NLTK 14

1.3.2 TextBlob 15

1.3.3 SpaCy 17

1.3.4 Gensim 19

1.3.5 Pattern 20

1.3.6 Stanford CoreNLP 21

1.4 NLP入門 21

1.4.1 使用正則表達式進行文本搜索 21

1.4.2 將文本轉換為列表 21

1.4.3 文本預處理 22

1.4.4 從網頁中獲取文本 22

1.4.5 移除停止詞 23

1.4.6 計數向量化 23

1.4.7 TF-IDF分數 24

1.4.8 文本分類器 25

1.5 深度學習簡介 25

1.6 什麼是神經網絡 27

1.7 神經網絡的基本結構 29

1.8 神經網絡的類型 32

1.8.1 前饋神經網絡 33

1.8.2 卷積神經網絡 33

1.8.3 循環神經網絡 33

1.8.4 編碼器-解碼器網絡 34

1.8.5 遞歸神經網絡 35

1.9 多層感知器 35

1.10 隨機梯度下降 37

1.11 反向傳播 40

1.12 深度學習庫 42

1.12.1 Theano 42

1.12.2 Theano安裝 43

1.12.3 Theano示例 44

1.12.4 TensorFlow 45

1.12.5 數據流圖 46

1.12.6 TensorFlow安裝 47

1.12.7 TensorFlow示例 47

1.12.8 Keras 49

1.13 下一步 52

第2章詞向量表示 53

2.1 詞嵌入簡介 53

2.2 word2vec 56

2.2.1 skip-gram模型 58

2.2.2 模型成分:架構 58

2.2.3 模型成分:隱藏層 58

2.2.4 模型成分:輸出層 60

2.2.5 CBOW模型 61

2.3 頻繁詞二次採樣 61

2.4 word2vec代碼 64

2.5 skip-gram代碼 67

2.6 CBOW代碼 75

2.7 下一步 83

第3章展開循環神經網絡 85

3.1 循環神經網絡 86

3.1.1 什麼是循環 86

3.1.2 前饋神經網絡和循環神經網絡之間的差異 87

3.1.3 RNN基礎 88

3.1.4 自然語言處理和RNN 91

3.1.5 RNN的機制 93

3.1.6 訓練RNN 96

3.1.7 RNN中隱藏狀態的元意義 98

3.1.8 調整RNN 99

3.1.9 LSTM網絡 99

3.1.10 序列到序列模型 105

3.1.11 高級seq2seq模型 109

3.1.12 序列到序列用例 113

3.2 下一步 122

第4章開發聊天機器人 123

4.1 聊天機器人簡介 123

4.1.1 聊天機器人的起源 124

4.1.2 聊天機器人如何工作 125

4.1.3 為什麼聊天機器人擁有如此大的商機 125

4.1.4 開發聊天機器人聽起來令人生畏 126

4.2 對話型機器人 127

4.3 聊天機器人:自動文本生成 141

4.4 下一步 170

第5章實現研究論文:情感分類 171

5.1 基於自註意力機制的句子嵌入 172

5.1.1 提出的方法 173

5.1.2 可視化 178

5.1.3 研究發現 181

5.2 實現情感分類 181

5.3 情感分類代碼 182

5.4 模型結果 191

5.5 可提升空間 196

5.6 下一步 196