使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识!
上一篇文章中一直围绕着CNN处理图像数据进行讲解,而CNN除了处理图像数据之外,还适用于文本分类。CNN模型首次使用在文本分类,是Yoon Kim发表的“Convolutional Neural Networks for Sentence Classification”论文中。在讲解text-CNN之前,先介绍自然语言处理和Keras对自然语言的预处理。
自然语言处理就是通过对文本进行分析,从文本中提取关键词来让计算机处理或理解自然语言,完成一些有用的应用,如:情感分析,问答系统等。比如在情感分析中,其本质就是根据已知的文字和情感符号(如评论等)推测这段文字是正面还是负面的。想象一下,如果我们能够更加精确地进行情感分析,可以大大提升人们对于事物的理解效率。比如不少基金公司利用人们对于某家公司的看法态度来预测未来股票的涨跌。
接下来将使用imdb影评数据集简单介绍Keras如何预处理文本数据。该数据集在这里下载。由于下载得的是tar.gz压缩文件,可以使用python的tarfile模块解压。解压后的目录为:
1.读取imdb数据集
我们通过以下函数分别读取train和test中的所有影评
得到的影评如下图,每条影评用双引号包住。
2.使用Tokenizer将影评文字转换成数字特征
在上文中已经得到了每条影评文字了,但是text-CNN的输入应该是数字矩阵。可以使用Keras的Tokenizer模块实现转换。
简单讲解Tokenizer如何实现转换。当我们创建了一个Tokenizer对象后,使用该对象的fit_on_texts()函数,可以将输入的文本中的每个词编号,编号是根据词频的,词频越大,编号越小。可能这时会有疑问:Tokenizer是如何判断文本的一个词呢?其实它是以空格去识别每个词。因为英文的词与词之间是以空格分隔,所以我们可以直接将文本作为函数的参数,但是当我们处理中文文本时,我们需要使用分词工具将词与词分开,并且词间使用空格分开。具体实现如下:
使用word_index属性可以看到每次词对应的编码,可以发现类似”the”、”a”等词的词频很高,但是这些词并不能表达文本的主题,我们称之为停用词。对文本预处理的过程中,我们希望能够尽可能提取到更多关键词去表达这句话或文本的中心思想,因此我们可以将这些停用词去掉后再编码。网上有许多归纳好的停用词,大家可以下载了之后,去除该文本中的停用词。
对每个词编码之后,每句影评中的每个词就可以用对应的编码表示,即每条影评已经转变成一个向量了:
3.让每句数字影评长度相同
对每个词编码之后,每句影评中的每个词就可以用对应的编码表示,即每条影评已经转变成一个向量。但是,由于影评的长度不唯一,需要将每条影评的长度设置一个固定值。
每个句子的长度都固定为150,如果长度大于150,则将超过的部分截掉;如果小于150,则在最前面用0填充。每个句子如下:
4.使用Embedding层将每个词编码转换为词向量
通过以上操作,已经将每个句子变成一个向量,但上文已经提及text-CNN的输入是一个数字矩阵,即每个影评样本应该是以一个矩阵,每一行代表一个词,因此,需要将词编码转换成词向量。使用Keras的Embedding层可以实现转换。Embedding层基于上文所得的词编码,对每个词进行one-hot编码,每个词都会以一个vocabulary_size(如上文的2000)维的向量;然后通过神经网络的训练迭代更新得到一个合适的权重矩阵(具体实现过程可以参考skip-gram模型),行大小为vocabulary_size,列大小为词向量的维度,将本来以one-hot编码的词向量映射到低维空间,得到低维词向量。比如the的编号为1,则对应的词向量为权重矩阵的第一行向量。如下图,蓝色线对应权重值组成了该词的词向量。需要声明一点的是Embedding层是作为模型的第一层,在训练模型的同时,得到该语料库的词向量。当然,也可以使用已经预训练好的词向量表示现有语料库中的词。
至此已经将文本数据预处理完毕,将每个影评样本转换为一个数字矩阵,矩阵的每一行表示一个词向量。下图梳理了处理文本数据的一般步骤。在此基础上,可以针对相应数据集的特点对数据集进行特定的处理。比如:在该数据集中影评可能含有一些html标签,我们可以使用正则表达式将这些标签去除。
下一篇文章,我们将介绍text-CNN模型,利用该模型对imdb数据集进行情感分析,并在文末给出整个项目的完整代码链接。欢迎持续关注!
本篇文章出自http://www.tensorflownews.com,对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
数据集大全:25个深度学习的开放数据集
介绍 深度学习的关键是训练。无论是从图像处理到语音识别,每个问题都有其独特的细微差别和方法。 但是,你可以从哪里获得这些数据?现在你看到的很多研究论文都使用专有数据集,而这些数据集通常不会向公众发布。如果你想学习并应用你新掌握的技能,数据就成为一个问题。 在本文中,我们列出了一些高质量的数据集,每个深度学习爱好者都可以使用并改善改进他们模型的性能。拥有这些数据集将使你成为一名更好的数据科学家,并且你将从中获得无可估量的价值。我们还收录了具有最新技术(SOTA)结果的论文,供你浏览并改进你的模型。 如何使用这些数据集? 首先要做的事——下载这些数据集,这些数据集的规模很大!所以请确保你有一个快速的互联网连接。 数据集分为三类——图像处理、自然语言处理和音频/语音处理。 让我们开始我们的数据集之旅吧! 图像数据集 1.MNIST MNIST是最受欢迎的深
- 下一篇
大象中原
中国文化,100年看上海,1000年看北京,3000年看河南。河南是中华民族的发祥地,其历史悠久,文化厚重,正如河南博物馆的名字:大象中原。 当然,大象也很容易联想到“大象”。 一、文明曙光 天地玄黄,宇宙洪荒。人类和猿类相揖别,开启人类自己的历史。 黄河之所以被叫做“母亲河”,是因为孕育了中华文明。 尤其是黄河的上游地区,聚集了大量的史前文明。 原古人 首先以 石头、骨头等最为容易获得的材料制造工具,已经体现出精湛的技艺。 注意这个石镰上的锯齿 并且开始使用文字进行记录。 仰韶文化处于由母系氏族社会向父系氏族社会转变的重要时期 这是一个用来打水的桶 这个时候的器具已经体现出来很高的技术。 二、定鼎中原 夏商周伊始,从此家天下。 所谓“钟鸣鼎食”指的就是用这种鼎来烧饭。 还有非常重要的事情,就是喝酒。 以及武器 和装饰。今天的人对“什么是重要”和古人一脉相承。 在周的后期,青铜的技术更加高涨,开始出现使用青铜制作的面具 食器也体现出小型化的趋势 西周末年,王室的族邦联合体开始瓦解。天下公主的观念受到挑战。王纲接纽,礼崩乐坏。楚于周...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7安装Docker,走上虚拟化容器引擎之路