第14章 使用Keras和spaCy进行深度学习
上一章介绍了文本处理方面的深度学习技术,并尝试使用神经网络生成文本。本章将更深入地研究文本的深度学习,特别是如何建立一个能够执行文本分类的Keras模型,以及如何将深度学习融入到spaCy的流水线中。
14.1 Keras和spaCy
第13章探讨了各种深度学习框架,本章将深入介绍Keras,同时还将探索如何使用spaCy进行深度学习。
在尝试文本生成的过程中,我们使用Keras作为示例,但是没有具体解释使用库的原因、方式和动机。下面继续通过搭建神经网络模型进行文本分类来逐步揭秘这些内容。
在简要回顾Python中提供的各种深度学习框架时,我们将Keras描述为一个高级库,它能够轻松构建神经网络。
Keras的出现为广大研究人员提供了一套简洁的API来应对复杂的深度学习系统。除了TensorFlow这一工业级框架,Keras是研究人员甚至是工业界广泛使用的框架。且Keras被谷歌所兼容,与TensorFlow封装为tf.keras,其CNTK后端也得到了微软的支持。CNTK也是一种用来构建神经网络的后端,本书不对它做深入探讨,因为它并不像TensorFlow或Theano那样广泛应用。Keras的特性使得其能同时兼容多个框架作为后端。由于有广泛的用户基础和配套的活跃社区支持,因此用户可以在StackoVerflow和GitHub平台上获得解决问题的方案。同时,将模型移植到生产环境也非常简单,例如苹果的CoreML团队同时支持iOS和Keras的开发。
本书选择Keras的理由仅仅是因为Keras非常容易执行文本分析任务。本书已经多次强调了预处理在文本分析上的重要性,而Keras提供了一个类,甚至是一个子模块来支持预处理操作。执行深度学习之前同样需要清理文本,但上下文可能略有不同。例如,文本生成不需要删除停止词或者词干,因为我们希望模型预测出真正文本的样子。下面将重点讨论分类任务,这部分的预处理和前面章节所讲的预处理基本一致。 ...
Get 自然语言处理与计算语言学 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.