您好、欢迎来到现金彩票网!
当前位置:秒速时时彩开奖 > 算法 >

520礼包 情感分析算法从原理到PaddlePaddle实战全解

发布时间:2019-05-20 15:56 来源:未知 编辑:admin

  在自然语言处理中,情感分析一般是指判断一段文本所表达的情绪状态。其中,一段文本可以是一个句子,一个段落或一个文档。情绪状态可以是两类,如(正面,负面),(高兴,悲伤);也可以是三类,如(积极,消极,中性)等等。

  情感分析的应用场景十分广泛,如把用户在购物网站(亚马逊、天猫、淘宝等)、旅游网站、电影评论网站上发表的评论分成正面评论和负面评论;或为了分析用户对于某一产品的整体使用感受,抓取产品的用户评论并进行情感分析等等。

  今天是5月20日,PaddlePaddle教你用情感分析算法体会女神心意。

  在下文中,我们将以情感分析为例,介绍使用深度学习的方法进行端对端的短文本分类,并使用PaddlePaddle完成全部相关实验。

  在自然语言处理中,情感分析属于典型的文本分类问题,即把需要进行情感分析的文本划分为其所属类别。文本分类涉及文本表示和分类方法两个问题。

  对于一段文本,BOW表示会忽略其词顺序、语法和句法,将这段文本仅仅看做是一个词集合,因此BOW方法并不能充分表示文本的语义信息。

  例如,句子“这部电影糟糕透了”和“一个乏味,空洞,没有内涵的作品”在情感分析中具有很高的语义相似度,但是它们的BOW表示的相似度为0。又如,句子“一个空洞,没有内涵的作品”和“一个不空洞而且有内涵的作品”的BOW相似度很高,但实际上它们的意思很不一样。

  在本教程中,我们所要介绍的深度学习模型克服了BOW表示的上述缺陷,它在考虑词顺序的基础上把文本映射到低维度的语义空间,并且以端对端(end to end)的方式进行文本表示及分类,其性能相对于传统方法有显著的提升[1]。

  对卷积神经网络来说,首先使用卷积处理输入的词向量序列,产生一个特征图(feature map),对特征图采用时间维度上的最大池化(max pooling over time)操作得到此卷积核对应的整句话的特征,最后,将所有卷积核得到的特征拼接起来即为文本的定长向量表示,对于文本分类问题,将其连接至softmax即构建出完整的模型。

  在实际应用中,我们会使用多个卷积核来处理句子,窗口大小相同的卷积核堆叠起来形成一个矩阵,这样可以更高效的完成运算。另外,我们也可使用窗口大小不同的卷积核来处理句子,图1表示卷积神经网络文本分类模型,不同颜色表示不同大小的卷积核操作。

  对于一般的短文本分类问题,上文所述的简单的文本卷积网络即可达到很高的正确率[1]。若想得到更抽象更高级的文本特征表示,可以构建深层文本卷积神经网络[2,3]。

  循环神经网络是一种能对序列数据进行精确建模的有力工具。实际上,循环神经网络的理论计算能力是图灵完备的[4]。自然语言是一种典型的序列数据(词序列),近年来,循环神经网络及其变体(如long short term memory[5]等)在自然语言处理的多个领域,如语言模型、句法解析、语义角色标注(或一般的序列标注)、语义表示、图文生成、对话、机器翻译等任务上均表现优异甚至成为目前效果最好的方法。

  在处理自然语言时,一般会先将词(one-hot表示)映射为其词向量表示,然后再作为循环神经网络每一时刻的输入

  对于较长的序列数据,循环神经网络的训练过程中容易出现梯度消失或爆炸现象[6]。LSTM能够解决这一问题。相比于简单的循环神经网络,LSTM增加了记忆单元c、输入门i、遗忘门f及输出门o。这些门及记忆单元组合起来大大提升了循环神经网络处理长序列数据的能力。若将基于LSTM的循环神经网络表示的函数记为F,则其公式为:

  LSTM通过给简单的循环神经网络增加记忆及控制门的方式,增强了其处理远距离依赖问题的能力。类似原理的改进还有Gated Recurrent Unit (GRU)[8],其设计更为简洁一些。这些改进虽然各有不同,但是它们的宏观描述却与简单的循环神经网络一样(如图2所示),即隐状态依据当前输入及前一时刻的隐状态来改变,不断地循环这一过程直至输入处理完毕:

  如图4所示(以三层为例),奇数层LSTM正向,偶数层LSTM反向,高一层的LSTM使用低一层LSTM及之前所有层的信息作为输入,对最高层LSTM序列使用时间维度上的最大池化即可得到文本的定长向量表示(这一表示充分融合了文本的上下文信息,并且对文本进行了深层次抽象),最后我们将文本表示连接至softmax构建分类模型。

  我们以IMDB情感分析数据集为例进行介绍。IMDB数据集的训练集和测试集分别包含25000个已标注过的电影评论。其中,负面评论的得分小于等于4,正面评论的得分大于等于7,满分10分。

  PaddlePaddle在 dataset/imdb.py 中实现了imdb数据集的自动下载和读取,并提供了读取字典、训练数据、测试数据等API。

  在该示例中,我们实现了两种文本分类算法,文本卷积神经网络,和栈式双向LSTM。我们首先引入要用到的库和定义全局变量:

  以上的栈式双向LSTM抽象出了高级特征并把其映射到和分类类别数同样大小的向量上。最后一个全连接层的’softmax’激活函数用来计算分类属于某个类别的概率。

  因为是有监督的学习,训练集的标签也在fluid.layers.data中定义了。在训练过程中,交叉熵用来在fluid.layer.cross_entropy中作为损失函数。

  在测试过程中,分类器会计算各个输出的概率。第一个返回的数值规定为cost。

  下一步是为训练和测试定义数据提供器。提供器读入一个大小为 BATCH_SIZE的数据。paddle.dataset.imdb.word_dict 每次会在乱序化后提供一个大小为BATCH_SIZE的数据,乱序化的大小为缓存大小buf_size。

  word_dict 是一个字典序列,是词和label的对应关系,运行下一行可以看到具体内容:

  最后,我们启动训练主循环来开始训练。训练时间较长,如果为了更快的返回结果,可以通过调整损耗值范围或者训练步数,以减少准确率的代价来缩短训练时间。

  和训练过程一样,我们需要创建一个预测过程,并使用训练得到的模型和参数来进行预测,params_dirname 用来存放训练过程中的各个参数。

  为了进行预测,我们任意选取3个评论。请随意选取您看好的3个。我们把评论中的每个词对应到word_dict中的id。如果词典中没有这个词,则设为unknown。 然后我们用create_lod_tensor来创建细节层次的张量

  感兴趣的小伙伴可以在PaddlePaddle官网上阅读其他相关文档内容:

  小米、华为以及联想等智能手机企业都在倾力打造IoT生态,这些品牌的智能手机相比在IoT领域依然“孤单”的iPhone,优势显而易见。详细

  百度“看门人”向海龙出走,令人对百度未来多了一丝担忧:引进的陆奇留不住,连多年的老臣也要离开了。详细

  尽管美国资本市场动荡,中国新零售咖啡连锁品牌瑞幸咖啡还是如期在纳斯达克成功上市,首日收盘上涨近20%,市值约50亿美元。详细

  程序员群体曾是低调多金的代表,但最近996话题、甲骨文大裁员等事件持续发酵,让这个群体成了大众眼中的“失意中年人”。详细

http://homeschoolwwh.com/suanfa/36.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有