《TensorFlow自然语言处理》

举报
华章计算机 发表于 2019/07/20 21:29:13 2019/07/20
【摘要】 本节书摘来自华章计算机《TensorFlow自然语言处理》——[澳] 图珊·加内格达拉(Thushan Ganegedara) 著 马恩驰 陆 健 译。

智能系统与技术丛书 

TensorFlow自然语言处理

Natural Language Processing with TensorFlow

TensorFlow自然语言处理 立.jpg

[澳] 图珊·加内格达拉(Thushan Ganegedara) 著

马恩驰 陆 健 译

 

 

 

 


 

 

 

 

The Translator’s Words

译 者 序


近几年来,自然语言处理(NLP)技术已经取得了阶段性进展,在电商、金融、翻译、智能硬件、医疗、旅游等行业广泛应用,应用场景涵盖语音交互、文本分类、情感分析、意图分析、图像识别等。在深度学习技术的驱动下,自然语言处理技术应用又上了一个台阶。这其中比较有代表性的是语音交互技术,在深度学习的驱动下,语音识别、声纹识别、语音合成等技术已经大规模应用于工业领域。以天猫精灵为代表的智能音箱也已经走入家庭生活中。根据Statista统计数据显示,在2018年,全球自然语言处理的市场规模达5.83亿美元,到2024年预计将达到约21亿美元,自然语言处理技术的应用前景广阔。

TensorFlow作为广泛使用的深度学习框架,在自然语言处理领域被广泛使用。比较成熟的应用场景有搜索引擎、个性化推荐、商业化广告、语音识别等。本书主要介绍NLP在TensorFlow中的实现,内容涉及词嵌入的各种方法、CNN/RNN/LSTM的TensorFlow实现及应用、LSTM在文本生成及图像标题生成方面的应用以及从统计机器翻译到神经网络翻译的转变,最后探讨自然语言处理的未来。通过结合TensorFlow的代码实现,可以让读者更容易理解自然语言处理技术的原理。

回顾2018年,自然语言处理技术的一个聚焦点是谷歌的BERT(Bidirectional Encoder Representations from Transformers)。谷歌AI团队新发布的BERT模型在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:两项衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩。毋庸置疑,BERT模型开启了NLP的新时代。BERT是基于Transformer的双向编码器表征。与其他语言表征模型不同,BERT旨在通过联合调节所有层中的上下文来预训练深度双向表征。BERT的另一个亮点是预训练,在预训练过程中作者随机掩蔽15%的标记,随机掩蔽的时候10%的单词会被替代成其他单词,10%的单词不替换,剩下80%才被替换为[MASK]。在预训练语料选取上,作者强调语料的选取很关键,要选用文档级别的语料而不是句子级别的,这样可以具备抽象表达连续长序列特征的能力。如果说BERT是预训练语言模型的代表,那么无监督机器翻译、常识推理、元学习、理解表示、使用大文档的QA问答系统和推理等领域在2018年一样备受关注。

尽管NLP在过去一段时间取得阶段性进展,但仍需要继续突破。比如BERT仍然强依赖于训练数据,阅读理解还是在给定问句的情况下从文章中抽取答案,推理进展相对缓慢。当前自然语言处理主要基于CNN和RNN及各种衍生,问答模型通常会阶段收敛,学习不到语言真正深层的表达。综上所述,当前自然语言处理的水平仍在推理和深层表征上与人类有较大的差距,还有很长一段路要走。

本书是我和陆健利用业余时间合作翻译完成的。第1~7章由陆健翻译,内容涉及TensorFlow介绍、词嵌入的各种方法、CNN/RNN/LSTM的TensorFlow实现及应用。第8~11章及附录由我翻译,内容涉及LSTM在文本生成及图像标题生成方面的应用、从统计机器翻译到神经网络翻译的转变以及自然语言处理的未来。由于译者水平有限,翻译过程难免会有瑕疵,如有相关问题请发邮件至maec1208@gmail.com。

感谢华章公司编辑在翻译过程中给予的协助,感谢我的爱人和孩子在本书翻译过程中给予的理解与支持。

 


马恩驰

人工智能实验室@杭州

2019年3月

 

 

 

 

Preface

前  言

在我们所处的数字信息时代,数据量呈指数级增长,在我们阅读本书时,它也正以前所未有的速度增长。此类数据大多数是与语言相关的数据(文本或语言),例如电子邮件、社交媒体帖子、电话和网络文章。自然语言处理(NLP)有效地利用这些数据来帮助人们开展业务或日常工作。NLP已经彻底改变了我们使用数据改善业务和生活的方式,并且这种改变将在未来一直持续。

NLP最普遍的应用案例之一是虚拟助手(VA),例如Apple的Siri、Google的Assistant和Amazon的Alexa。当你向VA询问“瑞士最便宜的酒店价格”时,就会触发一系列复杂的NLP任务。首先,VA需要了解(解析)你的请求(例如,它需要知道你要检索酒店价格,而不是寻找附近的公园)。VA需要做出的另一个决定是“哪家酒店便宜?”接下来,VA需要对瑞士的城市进行排名(可能基于你过去的旅行历史)。然后,VA可能会访问Booking.com和Agoda.com等网站,获取瑞士的酒店价格,并通过分析每家酒店的价格和评论对其进行排名。因此,你在几秒钟内看到的是执行了一系列非常复杂的NLP任务的结果。

那么,是什么使得这些NLP任务在处理我们的日常任务时如此聪明和准确?其底层方法是深度学习算法。深度学习算法本质上是复杂的神经网络,它可以将原始数据映射到所需的输出,而无须针对特定任务执行任何特征工程。这意味着只需提供客户的酒店评论,算法就可以直接回答“客户对这家酒店的评价如何?”这样的问题。此外,深度学习已经在一系列NLP任务(例如,语音识别和机器翻译)中达到甚至超过了人类的表现。

通过阅读本书,你可以学习如何使用深度学习去解决许多有趣的NLP问题。如果你想成为一个改变世界的人,那么研究NLP是至关重要的。这些任务包括学习单词的语义,生成全新的故事,以及通过研究双语句对进行语言翻译。所有技术章节都附有练习,这些练习会指导读者逐步实现这些系统。对于本书中的所有练习,我们都使用基于Python的TensorFlow库,TensorFlow是一种流行的分布式计算库,可以非常方便地实现深度神经网络。

本书读者

本书适用于那些有志于利用语言数据改造世界的初学者。本书将为你提供解决NLP任务的坚实基础。在本书中,我们将涵盖NLP的各个方面,更多地关注实际应用而不是理论基础。等到学习这些方法的更高级理论时,拥有解决各种NLP任务的良好实践知识将帮助你实现更平稳的过渡。此外,扎实的实践知识可以帮助你最大限度地将算法从一个特定领域迁移到更多领域。

本书内容

第1章是对NLP的简单介绍。该章将首先讨论我们需要NLP的原因。接下来,将讨论NLP中一些常见的子任务。之后,将讨论NLP的两个主要阶段,即传统阶段和深度学习阶段。通过研究如何使用传统算法解决语言建模任务,我们将了解传统阶段NLP的特点。然后,将讨论深度学习阶段,在这一阶段中深度学习算法被大量用于NLP。我们还将讨论深度学习算法的主要系列。最后,将讨论一种最基本的深度学习算法:全连接神经网络。该章结束时会提供一份路线图,简要介绍后面的内容。

第2章介绍Python TensorFlow库,这是我们实现解决方案的主要平台。首先在TensorFlow中编写一段代码,执行一个简单的计算,并讨论从运行代码到得到结果这一过程中到底发生了什么。我们将详细介绍TensorFlow的基础组件。把Tensorflow比作丰富的餐厅,了解如何完成订单,以便进一步加强对TensorFlow的理解。稍后,将讨论TensorFlow的更多技术细节,例如数据结构和操作(主要与神经网络相关)。最后,我们将实现一个全连接的神经网络来识别手写数字。这将帮助我们了解如何使用TensorFlow来实现端到端解决方案。

第3章首先讨论如何用TensorFlow解决NLP任务。在该章中,我们将讨论如何用神经网络学习单词向量或单词表示。单词向量也称为词嵌入。单词向量是单词的数字表示,相似单词有相似值,不同单词有不同值。首先,将讨论实现这一目标的几种传统方法,包括使用称为WordNet的大型人工构建知识库。然后,将讨论基于现代神经网络的方法,称为Word2vec,它在没有任何人为干预的情况下学习单词向量。我们将通过一个实例来了解Word2vec的机制。接着,将讨论用于实现此目的的两种算法变体:skip-gram和连续词袋(CBOW)模型。我们将讨论算法的细节,以及如何在TensorFlow中实现它们。

第4章介绍与单词向量相关的更高级方法。首先,会比较skip-gram和CBOW,讨论其中哪一种有明显优势。接下来,将讨论可用于提高Word2vec算法性能的几项改进。然后,将讨论一种更新、更强大的词嵌入学习算法:GloVe(全局向量)算法。最后,将在文档分类任务中实际观察单词向量。在该练习中,我们将看到单词向量十分强大,足以表示文档所属的主题(例如,娱乐和运动)。

第5章讨论卷积神经网络(CNN),它是擅长处理诸如图像或句子这样的空间数据的神经网络家族。首先,讨论如何处理数据以及处理数据时涉及哪种操作,以便对CNN有较深的理解。接下来,深入研究CNN计算中涉及的每个操作,以了解CNN背后的数学原理。最后,介绍两个练习。第一个练习使用CNN对手写数字图像进行分类,我们将看到CNN能够在此任务上很快达到较高的准确率。接下来,我们将探讨如何使用CNN对句子进行分类。特别地,我们要求CNN预测一个句子是否与对象、人物、位置等相关。

第6章介绍递归神经网络。递归神经网络(RNN)是一个可以模拟数据序列的强大的神经网络家族。首先讨论RNN背后的数学原理以及在学习期间随时间更新RNN的更新规则。然后,讨论RNN的不同变体及其应用(例如,一对一RNN和一对多RNN)。最后,用RNN执行文本生成任务的练习。我们用童话故事训练RNN,然后要求RNN生成一个新故事。我们将看到在持久的长期记忆方面RNN表现不佳。最后,讨论更高级的RNN变体,即RNN-CF,它能够保持更长时间的记忆。

第7章介绍长短期记忆网络。RNN在保持长期记忆方面效果较差,这使我们需要探索能在更长时间内记住信息的更强大技术。我们将在该章讨论一种这样的技术:长短期记忆网络(LSTM)。LSTM功能更强大,并且在许多时间序列任务中表现得优于其他序列模型。首先通过一个例子,研究潜在的数学原理和LSTM的更新规则,以说明每个计算的重要性。然后,将了解为什么LSTM能够更长时间地保持记忆。接下来,将讨论如何进一步提高LSTM预测能力。最后,将讨论具有更复杂结构的几种LSTM变体(具有窥孔连接的LSTM),以及简化LSTM门控循环单元(GRU)的方法。

第8章介绍LSTM的应用:文本生成。该章广泛评估LSTM在文本生成任务中的表现。我们将定性和定量地衡量LSTM产生的文本的好坏程度,还将比较LSTM、窥孔连接LSTM和GRU。最后,将介绍如何将词嵌入应用到模型中来改进LSTM生成的文本。

第9章转到对多模态数据(即图像和文本)的处理。在该章中,我们将研究如何自动生成给定图像的描述。这涉及将前馈模型(即CNN)与词嵌入层及顺序模型(即LSTM)组合,形成一个端到端的机器学习流程。

第10章介绍有关神经机器翻译(NMT)模型的应用。机器翻译指的是将句子或短语从源语言翻译成目标语言。首先讨论机器翻译是什么并简单介绍机器翻译历史。然后,将详细讨论现代神经机器翻译模型的体系结构,包括训练和预测的流程。接下来,将了解如何从头开始实现NMT系统。最后,会探索改进标准NMT系统的方法。

第11章重点介绍NLP的现状和未来趋势。我们将讨论前面提到的系统的相关最新发现。该章将涵盖大部分令人兴奋的创新,并让你直观地感受其中的一些技术。

附录向读者介绍各种数学数据结构(例如,矩阵)和操作(例如,矩阵的逆),还将讨论概率中的几个重要概念。然后将介绍Keras,它是在底层使用TensorFlow的高级库。Keras通过隐藏TensorFlow中的一些有难度的细节使得神经网络的实现更简单。具体而言,通过使用Keras实现CNN来介绍如何使用Keras。接下来,将讨论如何使用TensorFlow中的seq2seq库来实现一个神经机器翻译系统,所使用的代码比在第11章中使用的代码少得多。最后,将向你介绍如何使用TensorBoard可视化词嵌入的指南。TensorBoard是TensorFlow附带的便捷可视化工具,可用于可视化和监视TensorFlow客户端中的各种变量。

如何充分利用本书

为了充分利用本书,读者需要具备以下能力:

有强烈的意愿和坚定的意志学习NLP的先进技术。

熟悉Python的基本语法和数据结构(例如,列表和字典)。

理解基本的数学原理(例如,矩阵或向量的乘法)?。

(可选)对于一些小节,需要高级的数学知识(例如,微分计算)来理解特定模型是如何在训练时克服潜在的实际问题的。

(可选)对超出本书的内容,可以阅读相关论文以获取最新进展或细节。

下载示例代码及彩***像

本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。

这些代码还可在GitHub上获取,网址是:https://github.com/PacktPublishing/Natural-Language-Processing-with-TensorFlow。

 

 

 

 

About the Author

关 于 作 者

图珊·加内格达拉(Thushan Ganegedara)目前是澳大利亚悉尼大学第三年的博士生。他专注于机器学习和深度学习。他喜欢在未经测试的数据上运行算法。他还是澳大利亚初创公司AssessThreat的首席数据科学家。他在斯里兰卡莫拉图瓦大学获得了理学士学位。他经常撰写有关机器学习的技术文章和教程。此外,他经常通过游泳来努力营造健康的生活方式。

感谢我的父母、兄弟姐妹和我的妻子,感谢他们对我的信任以及给予我的支持,感谢我所有的老师和博士生导师提供的指导。

 

 

 

 

About the Reviewers

关 于 审 阅 者

Motaz Saad拥有洛林大学计算机科学专业博士学位,他喜欢数据并以此为乐。他在NLP、计算语言学、数据科学和机器学习领域拥有超过10年的专业经验,目前担任IUG信息技术学院的助理教授。

Joseph O’Connor博士是一名对深度学习充满热情的数据科学家。他的公司Deep Learn Analytics是一家总部位于英国的数据科学咨询公司,旨在与企业合作,开发从概念到部署的机器学习应用程序和基础架构。因为对MINOS高能物理实验的数据分析所做的研究,他获得伦敦大学学院授予的博士学位。从那时起,他为许多私营公司开发ML产品,主攻NLP和时间序列预测。你可以在http://deeplearnanalytics.com/找到他的相关信息。

 

 

 

 

CONTENTS

目  录

译者序

前言

关于作者

关于审阅者

第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


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。