| 作者 |
| 刘宇 崔燕红 郭师光 党习歌[澳] 图珊·加内格达拉(Thushan Ganegedara) |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781911059310 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------聊天机器人:入门、进阶与实战--------------------------- 本书是一本建立在零基础的,以介绍对话机器人领域为目的,通过书中的内容介绍让更多对对话机器人感兴趣的初级读者,可以由浅入深,了解和学习对话机器人的发展现状,用途,原理和技术。 主要内容: 第一部分 数学与统计学基础 数学与统计学是现代机器学习理论的基础,本书会对机器学习中重点涉及的数学与统计学知识做一下整理,方便读者了解和掌握,以便可以顺利的过渡到后面专业知识的理解。 第二部分 自然语言处理模型与技术 对话机器人是以自然语言处理为发展的一个专业领域,基础的自然语言处理模型与技术对于学习后面的专业知识是必要的。本书通过先介绍自然语言处理模型,然后对依赖这个模型所扩展出的自然语言处理技术做详细介绍。使得初学者可以从数学理论到模型,从模型到技术的理论结合实际的方式,学好本书的内容 第三部分 对话机器人的核心技术 在对话机器人的核心技术章节,我们先介绍 1.对话机器人的发展综述。 2.自然语言理解NLU的部分,让读者可以更加清晰的认识到Intent (目的)识别和 Entities (命名实体)识别的重要性。为了更加了解一句话中各个实体间的形容和被形容关系,我们引入句法树和依存句法分析的概念。这样机器人就可以简单的弄清一句话说的是什么,和各个实体间的关系。 3.为了让机器像人类一样可以有更多的知识积累和进行简单的逻辑推理,我们接下来要介绍知识图谱。这里我们重点介绍知识图谱的模型,知识抽取,知识图谱数据库的搭建和存储,以及在简单的了解到Intent和各个实体间关系后,如何根据知识图谱进行推理计算和理解 4.在对句子有了一定的深入理解后,我们需要介绍预测会话和答复生成。在机器理解了问题的内容后,如何给出精确的答复。这里会介绍用于客服机器人的Question to Question 的匹配来得到预先准备好的标准答案。也会介绍通话自然语言理解利用知识图谱得到生成答案,以及通过互联网检索的方式,得到置信度较高的问题答案。最后还会了解如何存储我们学到的问题和答案的配对。 5.在机器学会了一问一答后,我们需要介绍 1.根据上下文理解的对话生成。 . 2.多轮对话的控制和生成。 3.多主题多轮对话的切换。 6.人机对话过程中的情感计算 1.设计情感计算的对话场景 2.情感计算的建模与识别 3.根据情感计算生成带情感色彩的回复 第四部分 对话机器人实战 本书的第四个部分会详细分以下三个方面阐述 1.实战对话机器人的架构 2.对话机器人的开发流程和方案 3.对话机器人的开发案例 在对话机器人的开发案例里面,我们会介绍: 1.垂直领域的客服机器人 2.开放领域的知识问答类型机器人 3.闲聊型的情感机器人 第五部分 附录 附录里会有我们总结的机器学习的模型列表,自然语言模型列表,深度学习的模型列表以及每一章的实战代码 ---------------------------TensorFlow自然语言处理--------------------------- 本书首先介绍NLP和TensorFlow基础知识,然后介绍如何使用Word2vec(包括高级扩展)创建单词嵌入,将单词序列转换为可由深度学习算法访问的向量。关于经典深度学习算法的章节,如卷积神经网络(CNN)和递归神经网络(RNN),展示了句子分类和语言生成等重要的NLP任务。此外还介绍如何将高性能的RNN模型,如长短期记忆(long short memory, LSTM)单元应用于NLP任务,你还将探索神经机器翻译并实现一个神经机器翻译器。 |
| 目录 |
---------------------------聊天机器人:入门、进阶与实战--------------------------- 推荐序一 推荐序二 前言 第1章概率统计与应用数学的基础知识 1.1概率的定义 1.2条件概率与贝叶斯公式 1.3随机变量与分布函数 1.4概率分布与参数估计 1.5随机过程与马尔可夫模型 1.6信息熵 1.7本章小结 第2章语言模型与多元文法 2.1词袋模型 2.2N-Gram模型 2.2.1N-Gram简介 2.2.2N-Gram算法 2.2.3N-Gram用途 2.3数据平滑 2.3.1加法平滑方法 2.3.2Good-Turing估计法 2.3.3组合平滑方法 第3章序列标注模型 3.1中文分词 3.1.1条件随机场 3.1.2条件随机场进行中文分词 3.2词性标注 3.2.1词性标注的标准 3.2.2利用隐马尔可夫进行词性标注 3.3命名实体识别 3.3.1利用条件随机场模型进行命名实体识别 3.3.2命名实体识别在对话系统中的作用 3.4序列标注模型 3.5本章小结 第4章文本分析 4.1关键词抽取 4.1.1词频-逆文档频次算法 4.1.2Text Rank 4.2文本分类 4.2.1贝叶斯文本分类模型 4.2.2决策树文本分类模型 4.2.3SVM文本分类模型 4.3主题模型 4.3.1基础知识回顾 4.3.2吉布斯采样 4.3.3隐狄利克雷分配模型 4.4本章小结 第5章深度学习模型 5.1基于深度学习的自然语言模型 5.1.1神经网络自然语言模型与词向量 5.1.2A Neural Probabilistic Language Model 5.1.3CBOW和Skip-Gram 5.1.4Huffman编码与Huffman tree 5.1.5CBOW-Hierarchical Softmax 5.1.6Skip-Gram-Hierarchical Softmax 5.1.7FastText 5.1.8词的全局向量表示 5.2卷积网络CNN 5.2.1卷积网络CNN理论 5.2.2利用CNN进行文本分类 5.3循环网络RNN 5.3.1循环网络RNN(LSTM,GRU)理论 5.3.2利用RNN 进行情感分析 5.3.3Sequence-to-Sequence with Attention Model 5.4Transformer 5.4.1ResNet(Residual Network)残差网络模型 5.4.2Attention is all you need(Transformer) 5.5预训练模型 5.5.1Embeddings from Language Models(ELMo) 5.5.2BERT 第6章对话机器人的发展综述 6.1对话机器人发展史 6.1.1对话机器人的近况 6.1.2开放域 6.1.3垂直领域 6.1.4对话机器人的未来发展趋势 6.2人工智能在对话机器人中的应用 6.2.1深度学习在机器人方面的应用 6.2.2强化学习在机器人方面的应用 6.2.3知识图谱在机器人方面的应用 第7章自然语言理解与知识图谱 7.1知识图谱的表示:三元组模型 7.2知识抽取 7.2.1知识抽取-命名实体识别 7.2.2利用CRF模型识别 NER 7.2.3利用BiLSTM+CRF模型进行命名实体识别 7.3知识抽取-实体关系抽取:Relation Extraction 7.4知识图谱的构建 第8章答案生成与多轮对话 8.1预测会话与答案生成 8.1.1信息检索:利用搜索来预测答案 8.1.2句型模板匹配标准问题生成答案 8.1.3根据知识图谱推理得到答案 8.2多轮对话 8.2.1多轮对话概述 8.2.2任务型多轮对话的控制和生成 8.2.3多主题多轮对话 第9章对话系统的工程架构 9.1对话系统的工程技术 9.1.1常用技术 9.1.2对话系统的分类 9.1.3主要系统软件介绍 9.1.4系统运维相关 9.2对话系统的架构实现 9.2.1阿里小蜜 9.2.2百度对话系统 9.2.3垂直领域对话系统的架构 9.2.4开放领域对话系统的架构 9.3本章小结 第10章实战场景之一——客服机器人 10.1客服机器人架构 10.1.1功能需求 10.1.2系统逻辑架构图 10.2客服机器人设计 10.2.1FAQ的设计 10.2.2导购机器人的设计 10.2.3实例分析 10.3本章小结 第11章实战场景之二——开放域的QA问答 11.1开放领域问答机器人的架构 11.2开放领域问答机器人的开发流程和方案 11.3开放领域问答机器人的开发案例 第12章实战场景之三——聊天机器人 12.1Seq2Seq以及Attention机制 12.2Beam Search 12.3基于Seq2Seq的聊天机器人开发流程 12.3.1语料准备 12.3.2定义Encoder和Decoder 12.3.3模型训练和评估模块 12.3.4模型预测和Beam Search模块 12.4本章小结 ---------------------------TensorFlow自然语言处理--------------------------- 译者序 前言 关于作者 关于审阅者 第1章 自然语言处理简介 1 1.1 什么是自然语言处理 1 1.2 自然语言处理的任务 2 1.3 传统的自然语言处理方法 3 1.3.1 理解传统方法 4 1.3.2 传统方法的缺点 7 1.4 自然语言处理的深度学习方法 8 1.4.1 深度学习的历史 8 1.4.2 深度学习和NLP的当前状况 9 1.4.3 理解一个简单的深层模型—全连接神经网络 10 1.5 本章之外的学习路线 12 1.6 技术工具简介 14 1.6.1 工具说明 15 1.6.2 安装Python和scikit-learn 15 1.6.3 安装Jupyter Notebook 15 1.6.4 安装TensorFlow 16 1.7 总结 17 第2章 理解TensorFlow 18 2.1 TensorFlow是什么 18 2.1.1 TensorFlow入门 19 2.1.2 TensorFlow客户端详细介绍 21 2.1.3 TensorFlow架构:当你执行客户端时发生了什么 21 2.1.4 Cafe Le TensorFlow:使用类比理解TensorFlow 23 2.2 输入、变量、输出和操作 24 2.2.1 在TensorFlow中定义输入 25 2.2.2 在TensorFlow中定义变量 30 2.2.3 定义TensorFlow输出 31 2.2.4 定义TensorFlow操作 31 2.3 使用作用域重用变量 40 2.4 实现我们的第一个神经网络 42 2.4.1 准备数据 43 2.4.2 定义TensorFLow图 43 2.4.3 运行神经网络 45 2.5 总结 46 第3章 Word2vec——学习词嵌入 48 3.1 单词的表示或含义是什么 49 3.2 学习单词表示的经典方法 49 3.2.1 WordNet—使用外部词汇知识库来学习单词表示 50 3.2.2 独热编码表示方式 53 3.2.3 TF-IDF方法 53 3.2.4 共现矩阵 54 3.3 Word2vec—基于神经网络学习单词表示 55 3.3.1 练习:queen = king – he + she吗 56 3.3.2 为学习词嵌入定义损失函数 58 3.4 skip-gram算法 59 3.4.1 从原始文本到结构化的数据 59 3.4.2 使用神经网络学习词嵌入 60 3.4.3 使用TensorFlow实现skip-gram 67 3.5 连续词袋算法 69 3.6 总结 71 第4章 高级Word2vec 72 4.1 原始skip-gram算法 72 4.1.1 实现原始skip-gram算法 73 4.1.2 比较原始skip-gram算法和改进的skip-gram算法 75 4.2 比较skip-gram算法和CBOW算法 75 4.2.1 性能比较 77 4.2.2 哪个更胜一筹:skip-gram还是CBOW 79 4.3 词嵌入算法的扩展 81 4.3.1 使用unigram分布进行负采样 81 4.3.2 实现基于unigram的负采样 81 4.3.3 降采样:从概率上忽视常用词 83 4.3.4 实现降采样 84 4.3.5 比较CBOW及其扩展算法 84 4.4 最近的skip-gram和CBOW的扩展算法 85 4.4.1 skip-gram算法的限制 85 4.4.2 结构化skip-gram算法 85 4.4.3 损失函数 86 4.4.4 连续窗口模型 87 4.5 GloVe:全局向量表示 88 4.5.1 理解GloVe 88 4.5.2 实现GloVe 89 4.6 使用Word2vec进行文档分类 90 4.6.1 数据集 91 4.6.2 用词向量进行文档分类 91 4.6.3 实现:学习词嵌入 92 4.6.4 实现:词嵌入到文档嵌入 92 4.6.5 文本聚类以及用t-SNE可视化文档嵌入 93 4.6.6 查看一些特异点 94 4.6.7 实现:用K-means对文档进行分类/聚类 95 4.7 总结 96 第5章 用卷积神经网络进行句子分类 97 5.1 介绍卷积神经网络 97 5.1.1 CNN基础 97 5.1.2 卷积神经网络的力量 100 5.2 理解卷积神经网络 100 5.2.1 卷积操作 100 5.2.2 池化操作 103 5.2.3 全连接层 104 5.2.4 组合成完整的CNN 105 5.3 练习:在MNIST数据集上用CNN进行图片分类 105 5.3.1 关于数据 106 5.3.2 实现CNN 106 5.3.3 分析CNN产生的预测结果 108 5.4 用CNN进行句子分类 109 5.4.1 CNN结构 110 5.4.2 随时间池化 112 5.4.3 实现:用CNN进行句子分类 112 5.5 总结 115 第6章 递归神经网络 116 6.1 理解递归神经网络 116 6.1.1 前馈神经网络的问题 117 6.1.2 用递归神经网络进行建模 118 6.1.3 递归神经网络的技术描述 119 6.2 基于时间的反向传播 119 6.2.1 反向传播的工作原理 120 6.2.2 为什么RNN不能直接使用反向传播 120 6.2.3 基于时间的反向传播:训练RNN 121 6.2.4 截断的BPTT:更有效地训练RNN 121 6.2.5 BPTT的限制:梯度消失和梯度爆炸 122 6.3 RNN的应用 123 6.3.1 一对一RNN 123 6.3.2 一对多RNN 123 6.3.3 多对一RNN 124 6.3.4 多对多RNN 124 6.4 用RNN产生文本 125 6.4.1 定义超参数 125 6.4.2 将输入随时间展开用于截断的BPTT 125 6.4.3 定义验证数据集 126 6.4.4 定义权重和偏置 126 6.4.5 定义状态持续变量 127 6.4.6 用展开的输入计算隐藏状态和输出 127 6.4.7 计算损失 128 6.4.8 在新文本片段的开头重置状态 128 6.4.9 计算验证输出 128 6.4.10 计算梯度和优化 129 6.4.11 输出新生成的文本块 129 6.5 评估RNN的文本结果输出 130 6.6 困惑度:衡量文本结果的质量 131 6.7 有上下文特征的递归神经网络:更长记忆的RNN 132 6.7.1 RNN-CF的技术描述 132 6.7.2 实现RNN-CF 133 6.7.3 RNN-CF产生的文本 138 6.8 总结 140 第7章 长短期记忆网络 142 7.1 理解长短期记忆网络 142 7.1.1 LSTM是什么 143 7.1.2 更详细的LSTM 144 7.1.3 LSTM与标准RNN的区别 149 7.2 LSTM如何解决梯度消失问题 150 7.2.1 改进LSTM 152 7.2.2 贪婪采样 153 7.2.3 集束搜索 153 7.2.4 使用词向量 154 7.2.5 双向LSTM(BiLSTM) 155 7.3 其他LSTM的变体 156 7.3.1 窥孔连接 156 7.3.2 门循环单元 157 7.4 总结 159 第8章 LSTM应用:文本生成 160 8.1 数据集 160 8.1.1 关于数据集 160 8.1.2 数据预处理 162 8.2 实现LSTM 162 8.2.1 定义超参数 163 8.2.2 定义参数 163 8.2.3 定义LSTM单元及操作 165 8.2.4 定义输入和标签 165 8.2.5 定义处理序列数据所需的序列计算 166 8.2.6 定义优化器 167 8.2.7 随时间衰减学习率 167 8.2.8 做预测 168 8.2.9 计算困惑度(损失) 168 8.2.10 重置状态 169 8.2.11 贪婪采样避免单峰 169 8.2.12 生成新文本 169 8.2.13 生成的文本样例 170 8.3 LSTM与窥孔LSTM和GRU对比 171 8.3.1 标准LSTM 171 8.3.2 门控循环单元(GRU) 172 8.3.3 窥孔LSTM 174 8.3.4 训练和验证随时间的困惑度 175 8.4 改进LSTM:集束搜索 176 8.4.1 实现集束搜索 177 8.4.2 集束搜索生成文本的示例 179 8.5 LSTM改进:用单词替代n-gram生成文本 179 8.5.1 维度灾难 179 8.5.2 Word2vec补救 180 8.5.3 使用Word2vec生成文本 180 8.5.4 使用LSTM-Word2vec和集束搜索生成的文本示例 181 8.5.5 随时间困惑度 182 8.6 使用TensorFlow RNN API 183 8.7 总结 186 第9章 LSTM应用:图像标题生成 188 9.1 了解数据 188 9.1.1 ILSVRC ImageNet数据集 189 9.1.2 MS-COCO数据集 189 9.2 图像标题生成实现路径 191 9.3 使用CNN提取图像特征 193 9.4 实现:使用VGG-16加载权重和推理 193 9.4.1 构建和更新变量 194 9.4.2 预处理输入 195 9.4.3 VGG-16推断 196 9.4.4 提取图像的向量化表达 197 9.4.5 使用VGG-16预测类别概率 197 9.5 学习词嵌入 198 9.6 准备输入LSTM的标题 198 9.7 生成LSTM的数据 199 9.8 定义LSTM 201 9.9 定量评估结果 203 9.9.1 BLEU 203 9.9.2 ROUGE 204 9.9.3 METEOR 204 9.9.4 CIDEr 206 9.9.5 模型随着时间变化的BLEU-4 206 9.10 为测试图像生成标题 207 9.11 使用TensorFlow RNN API和预训练的GloVe词向量 210 9.11.1 加载GloVe词向量 210 9.11.2 清洗数据 212 9.11.3 使用TensorFlow RNN API和预训练的词嵌入 213 9.12 总结 218 第10章 序列到序列学习:神经机器翻译 220 10.1 机器翻译 220 10.2 机器翻译简史 221 10.2.1 基于规则的翻译 221 10.2.2 统计机器翻译(SMT) 222 10.2.3 神经机器翻译(NMT) 223 10.3 理解神经机器翻译 225 10.3.1 NMT原理 225 10.3.2 NMT架构 226 10.4 为NMT系统准备数据 228 10.4.1 训练阶段 229 10.4.2 反转源句 229 10.4.3 测试阶段 230 10.5 训练NMT 230 10.6 NMT推理 231 10.7 BLEU评分:评估机器翻译系统 232 10.7.1 修正的精确度 232 10.7.2 简短惩罚项 233 10.7.3 最终BLEU得分 233 10.8 从头开始实现NMT:德语到英语的翻译 233 10.8.1 数据介绍 234 10.8.2 处理数据 234 10.8.3 学习词嵌入 235 10.8.4 定义编码器和解码器 236 10.8.5 定义端到端输出计算 238 10.8.6 翻译结果 239 10.9 结合词嵌入训练NMT 241 10.9.1 最大化数据集词汇表和预训练词嵌入之间的匹配 241 10.9.2 将嵌入层定义为TensorFlow变量 243 10.10 改进NMT 245 10.10.1 教师强迫 246 10.10.2 深度LSTM 247 10.11 注意力 247 10.11.1 突破上下文向量瓶颈 247 10.11.2 注意力机制细节 248 10.11.3 注意力NMT的翻译结果 253 10.11.4 源句子和目标句子注意力可视化 254 10.12 序列到序列模型的其他应用:聊天机器人 256 10.12.1 训练聊天机器人 256 10.12.2 评估聊天机器人:图灵测试 257 10.13 总结 258 第11章 自然语言处理的现状与未来 259 11.1 NLP现状 259 11.1.1 词嵌入 260 11.1.2 神经机器翻译 264 11.2 其他领域的渗透 266 11.2.1 NLP与计算机视觉结合 266 11.2.2 强化学习 268 11.2.3 NLP生成式对抗网络 269 11.3 走向通用人工智能 270 11.3.1 一个模型学习全部 271 11.3.2 联合多任务模型:为多个NLP任务生成神经网络 272 11.4 社交媒体NLP 273 11.4.1 社交媒体中的谣言检测 274 11.4.2 社交媒体中的情绪检测 274 11.4.3 分析推特中的政治框架 274 11.5 涌现的新任务 275 11.5.1 讽刺检测 275 11.5.2 语言基础 276 11.5.3 使用LSTM略读文本 276 11.6 新兴的机器学习模型 277 11.6.1 阶段LSTM 277 11.6.2 扩张RNN(DRNN) 278 11.7 总结 278 11.8 参考文献 279 附录 数学基础与高级TensorFlow 282 |