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客户端中的各种变量。