预购商品
书目分类
特别推荐
第1篇 自然語言處理基礎篇 第1章 自然語言處理概述 2 1.1 什麼是自然語言處理 2 1.1.1 定義 2 1.1.2 常用術語 3 1.1.3 自然語言處理的任務 3 1.1.4 自然語言處理的發展歷程 4 1.2 自然語言處理中的挑戰 5 1.2.1 歧義問題 5 1.2.2 語言的多樣性 6 1.2.3 未登錄詞 6 1.2.4 數據稀疏 6 1.3 自然語言處理中的常用技術 8 1.4 機器學習中的常見問題 10 1.4.1 Batch和Epoch 10 1.4.2 Batch Size的選擇 11 1.4.3 數據集不平衡問題 11 1.4.4 預訓練模型與數據安全 12 1.4.5 通過開原始程式碼學習 12 1.5 小結 13 第2章 Python自然語言處理基礎 14 2.1 搭建環境 14 2.1.1 選擇Python版本 14 2.1.2 安裝Python 15 2.1.3 使用pip包管理工具和Python虛擬環境 17 2.1.4 使用整合式開發環境 18 2.1.5 安裝Python自然語言處理常用的庫 21 2.2 用Python處理字串 25 2.2.1 使用str類型 25 2.2.2 使用StringIO類 29 2.3 用Python處理語料 29 2.3.1 從文件讀取語料 29 2.3.2 去重 31 2.3.3 停用詞 31 2.3.4 編輯距離 31 2.3.5 文本規範化 32 2.3.6 分詞 34 2.3.7 詞頻-逆文本頻率 35 2.3.8 One-Hot 編碼 35 2.4 Python的一些特性 36 2.4.1 動態的解釋型語言 36 2.4.2 跨平臺 37 2.4.3 性能問題 37 2.4.4 並行和併發 37 2.5 在Python中調用其他語言 38 2.5.1 通過ctypes調用C/C++代碼 38 2.5.2 通過網路介面調用其他語言 40 2.6 小結 41 第2篇 PyTorch入門篇 第3章 PyTorch介紹 44 3.1 概述 44 3.2 與其他框架的比較 45 3.2.1 TensorFlow 45 3.2.2 PaddlePaddle 45 3.2.3 CNTK 46 3.3 PyTorch環境配置 46 3.3.1 通過pip安裝 46 3.3.2 配置GPU環境 47 3.3.3 其他安裝方法 48 3.3.4 在PyTorch中查看GPU是否可用 49 3.4 Transformers簡介及安裝 49 3.5 Apex簡介及安裝 50 3.6 小結 50 第4章 PyTorch基本使用方法 51 4.1 張量的使用 51 4.1.1 創建張量 51 4.1.2 張量的變換 53 4.1.3 張量的索引 59 4.1.4 張量的運算 59 4.2 使用torch.nn 60 4.3 啟動函數 63 4.3.1 Sigmoid函數 63 4.3.2 Tanh函數 64 4.3.3 ReLU函數 64 4.3.4 Softmax函數 65 4.3.5 Softmin函數 65 4.3.6 LogSoftmax函數 66 4.4 損失函數 66 4.4.1 0-1損失函數 66 4.4.2 平方損失函數 66 4.4.3 絕對值損失函數 68 4.4.4 對數損失函數 68 4.5 優化器 69 4.5.1 SGD優化器 69 4.5.2 Adam優化器 70 4.5.3 AdamW優化器 70 4.6 數據載入 70 4.6.1 Dataset 70 4.6.2 DataLoader 71 4.7 使用PyTorch實現邏輯回歸 73 4.7.1 生成隨機數據 73 4.7.2 數據視覺化 73 4.7.3 定義模型 74 4.7.4 訓練模型 75 4.8 TorchText 76 4.8.1 安裝TorchText 76 4.8.2 Data類 76 4.8.3 Datasets類 78 4.8.4 Vocab 79 4.8.5 utils 80 4.9 使用TensorBoard 81 4.9.1 安裝和啟動TensorBoard 81 4.9.2 在PyTorch中使用TensorBoard 81 4.10 小結 81 第5章 熱身:使用字元級RNN分類帖子 82 5.1 數據與目標 82 5.1.1 數據 82 5.1.2 目標 84 5.2 輸入與輸出 84 5.2.1 統計數據集中出現的字元數量 85 5.2.2 使用One-Hot編碼表示標題數據 85 5.2.3 使用詞嵌入表示標題數據 85 5.2.4 輸出 86 5.3 字元級RNN 87 5.3.1 定義模型 87 5.3.2 運行模型 87 5.4 數據預處理 89 5.4.1 合併數據並添加標籤 90 5.4.2 劃分訓練集和數據集 90 5.5 訓練與評估 90 5.5.1 訓練 91 5.5.2 評估 91 5.5.3 訓練模型 91 5.6 保存和載入模型 93 5.6.1 僅保存模型參數 93 5.6.2 保存模型與參數 93 5.6.3 保存詞表 94 5.7 開發應用 94 5.7.1 給出任意標題的建議分類 94 5.7.2 獲取用戶輸入並返回結果 95 5.7.3 開發Web API和Web介面 96 5.8 小結 97 第3篇 用PyTorch完成自然語言處理任務篇 第6章 分詞問題 100 6.1 中文分詞 100 6.1.1 中文的語言結構 100 6.1.2 未收錄詞 101 6.1.3 歧義 101 6.2 分詞原理 101 6.2.1 基於詞典匹配的分詞 101 6.2.2 基於概率進行分詞 102 6.2.3 基於機器學習的分詞 105 6.3 使用協力廠商工具分詞 106 6.3.1 S-MSRSeg 106 6.3.2 ICTCLAS 107 6.3.3 結巴分詞 107 6.3.4 pkuseg 107 6.4 實踐 109 6.4.1 對標題分詞 109 6.4.2 統計詞語數量與模型訓練 109 6.4.3 處理用戶輸入 110 6.5 小結 110 第7章 RNN 111 7.1 RNN的原理 111 7.1.1 原始RNN 111 7.1.2 LSTM 113 7.1.3 GRU 114 7.2 PyTorch中的RNN 115 7.2.1 使用RNN 115 7.2.2 使用LSTM和GRU 116 7.2.3 雙向RNN和多層RNN 117 7.3 RNN可以完成的任務 117 7.3.1 輸入不定長,輸出與輸入長度相同 117 7.3.2 輸入不定長,輸出定長 118 7.3.3 輸入定長,輸出不定長 118 7.4 實踐:使用PyTorch自帶的RNN完成帖子分類 118 7.4.1 載入數據 118 7.4.2 定義模型 119 7.4.3 訓練模型 119 7.5 小結 121 第8章 詞嵌入 122 8.1 概述 122 8.1.1 詞表示 122 8.1.2 PyTorch中的詞嵌入 124 8.2 Word2vec 124 8.2.1 Word2vec簡介 124 8.2.2 CBOW 125 8.2.3 SG 126 8.2.4 在PyTorch中使用Word2vec 126 8.3 GloVe 127 8.3.1 GloVe的原理 127 8.3.2 在PyTorch中使用GloVe預訓練詞向量 127 8.4 實踐:使用預訓練詞向量完成帖子標題分類 128 8.4.1 獲取預訓練詞向量 128 8.4.2 載入詞向量 128 8.4.3 方法一:直接使用預訓練詞向量 129 8.4.4 方法二:在Embedding層中載入預訓練詞向量 130 8.5 小結 131 第9章 Seq2seq 132 9.1 概述 132 9.1.1 背景 132 9.1.2 模型結構 133 9.1.3 訓練技巧 134 9.1.4 預測技巧 134 9.2 使用PyTorch實現Seq2seq 134 9.2.1 編碼器 134 9.2.2 解碼器 135 9.2.3 Seq2seq 136 9.2.4 Teacher Forcing 137 9.2.5 Beam Search 138 9.3 實踐:使用Seq2seq完成機器翻譯任務 138 9.3.1 數據集 138 9.3.2 數據預處理 139 9.3.3 構建訓練集和測試集 141 9.3.4 定義模型 143 9.3.5 初始化模型 145 9.3.6 定義優化器和損失函數 146 9.3.7 訓練函數和評估函數 146 9.3.8 訓練模型 147 9.3.9 測試模型 148 9.4 小結 149 第10章 注意力機制 150 10.1 注意力機制的起源 150 10.1.1 在計算機視覺中的應用 150 10.1.2 在自然語言處理中的應用 151 10.2 使用注意力機制的視覺迴圈模型 151 10.2.1 背景 151 10.2.2 實現方法 152 10.3 Seq2seq中的注意力機制 152 10.3.1 背景 152 10.3.2 實現方法 153 10.3.3 工作原理 154 10.4 自注意力機制 155 10.4.1 背景 155 10.4.2 自注意力機制相關的工作 156 10.4.3 實現方法與應用 156 10.5 其他注意力機制 156 10.6 小結 157 第11章 Transformer 158 11.1 Transformer的背景 158 11.1.1 概述 158 11.1.2 主要技術 159 11.1.3 優勢和缺點 159 11.2 基於卷積網路的Seq2seq 159 11.3 Transformer的結構 159 11.3.1 概述 160 11.3.2 Transformer中的自注意力機制 160 11.3.3 Multi-head Attention 161 11.3.4 使用Positional Encoding 162 11.4 Transformer的改進 164 11.5 小結 164 第12章 預訓練語言模型 165 12.1 概述 165 12.1.1 為什麼需要預訓練 165 12.1.2 預訓練模型的工作方式 166 12.1.3 自然語言處理預訓練的發展 166 12.2 ELMo 167 12.2.1 特點 167 12.2.2 模型結構 167 12.2.3 預訓練過程 168 12.3 GPT 168 12.3.1 特點 168 12.3.2 模型結構 168 12.3.3 下游任務 169 12.3.4 預訓練過程 169 12.3.5 GPT-2和GPT-3 169 12.4 BERT 170 12.4.1 背景 171 12.4.2 模型結構 171 12.4.3 預訓練 171 12.4.4 RoBERTa和ALBERT 171 12.5 Hugging Face Transformers 171 12.5.1 概述 172 12.5.2 使用Transformers 172 12.5.3 下載預訓練模型 173 12.5.4 Tokenizer 173 12.5.5 BERT的參數 175 12.5.6 BERT的使用 176 12.5.7 GPT-2的參數 180 12.5.8 常見錯誤及其解決方法 181 12.6 其他開源中文預訓練模型 181 12.6.1 TAL-EduBERT 181 12.6.2 Albert 182 12.7 實踐:使用Hugging Face Transformers中的BERT做帖子標題分類 182 12.7.1 讀取數據 182 12.7.2 導入包和設置參數 183 12.7.3 定義Dataset和DataLoader 183 12.7.4 定義評估函數 184 12.7.5 定義模型 185 12.7.6 訓練模型 185 12.8 小結 186 第4篇 實戰篇 第13章 項目:中文地址解析 188 13.1 數據集 188 13.1.1 實驗目標與數據集介紹 188 13.1.2 載入數據集 190 13.2 詞向量 195 13.2.1 查看詞向量文件 195 13.2.2 載入詞向量 196 13.3 BERT 196 13.3.1 導入包和配置 196 13.3.2 Dataset和DataLoader 198 13.3.3 定義模型 199 13.3.4 訓練模型 200 13.3.5 獲取預測結果 202 13.4 HTML5演示程式開發 203 13.4.1 專案結構 203 13.4.2 HTML5介面 204 13.4.3 創建前端事件 206 13.4.4 伺服器邏輯 207 13.5 小結 211 第14章 項目:詩句補充 212 14.1 瞭解chinese-poetry數據集 212 14.1.1 下載chinese-poetry數據集 212 14.1.2 探索chinese-poetry數據集 213 14.2 準備訓練數據 214 14.2.1 選擇數據源 214 14.2.2 載入記憶體 214 14.2.3 切分句子 215 14.2.4 統計字頻 218 14.2.5 刪除低頻字所在詩句 220 14.2.6 詞到ID的轉換 221 14.3 實現基本的LSTM 222 14.3.1 把處理好的數據和詞表存入檔 222 14.3.2 切分訓練集和測試集 224 14.3.3 Dataset 224 14.3.4 DataLoader 225 14.3.5 創建Dataset和DataLoader對象 226 14.3.6 定義模型 226 14.3.7 測試模型 228 14.3.8 訓練模型 228 14.4 根據句子長度分組 229 14.4.1 按照句子長度分割數據集 229 14.4.2 不用考慮填充的DataLoader 230 14.4.3 創建多個DataLoader物件 230 14.4.4 處理等長句子的LSTM 231 14.4.5 評估模型效果 231 14.4.6 訓練模型 232 14.5 使用預訓練詞向量初始化Embedding層 235 14.5.1 根據詞向量調整字表 235 14.5.2 載入預訓練權重 240 14.5.3 訓練模型 240 14.6 使用Transformer完成詩句生成 244 14.6.1 位置編碼 245 14.6.2 使用Transformer 245 14.6.3 訓練和評估 246 14.7 使用GPT-2完成對詩模型 247 14.7.1 預訓練模型 248 14.7.2 評估模型 249 14.7.3 Fine-tuning 252 14.8 開發HTML5演示程式 257 14.8.1 目錄結構 257 14.8.2 HTML5介面 257 14.8.3 創建前端事件 259 14.8.4 伺服器邏輯 260 14.8.5 檢驗結果 263 14.9 小結 264 參考文獻 265
孫小文:畢業于北京郵電大學計算機學院(國家示範性軟體學院),目前就職於微軟(中國),研究領域包括自然語言處理、分散式存儲和計算、搜索技術。 王薪宇:畢業于北京郵電大學計算機學院(國家示範性軟體學院),曾在知名互聯網公司工作,主要研究領域為自然語言處理。 楊談:北京郵電大學計算機學院(國家示範性軟件學院)副教授,作為主研人或項目負責人參與了多個國家項目和企業合作項目。
客服公告
热门活动
订阅电子报