如何使用百度EasyDL进行情感分析
使用百度EasyDL定制化训练和服务平台有一段时间了,越来越能体会到EasyDL的易用性。在此之前我也接触过不少的深度学习平台,如类脑平台、Google的GCP深度学习平台、AWS深度学习平台,但我觉得EasyDL在模型训练和使用上给了开发者更大的辅助:开发者或者用户只需要提交对应格式的训练文件,即可开始深度学习之旅。我的专业是自然语言处理中的情感分析,用的语料主要是电商评价文本数据,下面简单介绍一下情感分析任务。 情感分析(Sentiment Analysis,简称SA)综合了自然语言处理(Nature Language Processing,简称NLP)、机器学习(Machine Learning,简称ML)、文本挖掘、信息抽取与检索、概率统计等多个学科,是一种对用户生成数据(User Generate Content,简称UGC)中带有情感色彩的主观内容进行抽取、分析、处理、归纳和推理的融合技术,通过自动的分析某种产品/服务评论的文本内容,发现消费者对该产品/服务的态度和意见,对文本情感倾向,具体如褒/贬,好/坏,支持/反对等做出定性判断,并对其中的情感倾向性的强度做出分析。 所以基本上我的工作和研究都是以文本为主,那么分词、去停用词、合并同义词、建立词向量模型等等很多预处理步骤都由自己手动来处理,还有后面的机器学习分类技术,包括SVM、贝叶斯、决策树和Text-CNN等,整体流程非常繁琐,绝大多数时间都在预处理数据花费掉了。但是自从接触了EasyDL平台之后,我觉得自己的研究生生涯开始走向了巅峰,因为这个平台使我见识到了深度学习竟然可以如此简单,绝大多数的工具都是由系统完成,只需要按照固定的格式进行提交即可,以至于目前唯一所要做的文本标注的工作都交给了网络爬虫自动标注完成。通过使用用户打分和文本评价进行结合,完成文本标签化,这些技术的实现极大地促进了我在大数据环境下的数据挖掘任务,使我从繁重Python代码实现中解脱出来。 使用EasyDL的训练结果和我之前的情感分类结果对比发现:我自己之前使用Word2vec和Text-CNN结合所实现的情感分类准确度达到了99.28%,如图1所示,但是花费的时间比较巨大,耗费的资源也较大。一般工业使用的准确率在80%以上即可,于是我又将相同的数据放到EasyDL上进行训练,训练的情感分类模型的准确率在88%,如图2所示,成绩不错,基本满足工业需求,EasyDL定制化训练和服务平台使我的开发和使用成本极大缩短。我相信以后在开发者的协作下,百度EasyDL在模型准确率方面能更上一层楼。 图1 自己的CNN情感分类模型 图2 百度EasyDL训练结果 接下来我将叙述一下在具有文本标注集的基础上,如何在EasyDL平台上实现通过API接口上传文本文件进行模型训练。 (1)首先将文件进行分类压缩,文件夹的名字即是txt文件的标签且数目大于2,具体的上传要求平台已有介绍如图4。下图3查看上传至平台的数据情况,为简单的情感二分类。 图3 上传后的文本数据集 图4 文本数据集上传结构 数据集内部结构如下图5所示。 图5 数据集内部结构 可以从数据集管理查看数据上传情况,如下图6所示。 图6 查看数据集 (2)然后接下来开始训练模型,首先填写如下的模型说明,如下图7所示。 图7 模型介绍 然后点击下一步开始添加情感分析所需要的数据集,本次我们使用褒义和贬义两种数据集进行训练,所以直接选用pos和neg数据进行训练即可,如下图8所示。 图8 添加训练的文本语料 当添加完文本语料之后,点击训练之后,EasyDL平台即可对数据集进行学习。可以点击数据集管理,查看模型训练的进展情况,模型训练的时间与数据集的大小和复杂程度一致,在这里为了演示demo,我选择了较小的数据集,训练界面如下图9所示。 图9 平台学习文本的界面 (3)模型训练好之后,需要对模型进行校验,以便了解模型的性能,模型的准确率和召回率都为88%,本次选用的数据集较小,结果尚可,校验的结果如下图10所示。之后若有需要还可以增加文本训练集的数量,从而进一步提升识别的准确率。 图10 文本情感分类模型校验结果图 (4)直接上传文件进行文本的情感倾向测试了,下面看一下测试效果,首先选中一个未进行训练的测试文件,然后点击上传即可对模型进行测试,结果如下图11所示。 图11 模型测试用例 (5)模型训练好了之后,通过模型性能测试,就可以申请上线,填写完表格即可制作文本情感分析API,在第一次的申请的时候,后台的客服小姐姐会打电话给你进行确认,我觉得这是使用EasyDL的一个小彩蛋,申请的具体的步骤如下图12所示。 图12 模型上线表格 至此,一个完整的文本情感分析模型就做好了,支持测试和继续上传文件进行再训练,EasyDL平台对于开发者真的是比较友好,即使是在不太懂里面的原理的情况下,基于自己已标注的数据集也能进行深度学习的应用,在易用性上面做到了极致。希望后面在文本分类上加上参数调优的选项,能让开发者进一步根据数据进行调参。我相信通过以后的版本迭代,百度工程师们能将模型的准确率提升到更高的层次。 作者:张振 |
如何使用百度EasyDL进行情感分析的更多相关文章
- java程序:调用百度api进行情感分析
源码: package com.jeson.ceshi; import java.util.HashMap; import org.json.JSONObject; import com.baidu. ...
- 基于百度EasyDL定制化图像识别平台的海洋鱼类识别方法
[目的]鱼类识别对渔业资源的开发利用有着重要的意义.针对海底环境恶劣.拍摄环境亮度低.场景模糊的实际情况导致海底观测视频品质差,视频中的鱼类识别难的问题以及现有鱼类识别方法存在的鱼类标注数据集过少导致 ...
- 朴素贝叶斯算法下的情感分析——C#编程实现
这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Pr ...
- Stanford NLP学习笔记:7. 情感分析(Sentiment)
1. 什么是情感分析(别名:观点提取,主题分析,情感挖掘...) 应用: 1)正面VS负面的影评(影片分类问题) 2)产品/品牌评价: Google产品搜索 3)twitter情感预测股票市场行情/消 ...
- 情感分析的现代方法(包含word2vec Doc2Vec)
英文原文地址:https://districtdatalabs.silvrback.com/modern-methods-for-sentiment-analysis 转载文章地址:http://da ...
- SA: 情感分析资源(Corpus、Dictionary)
先主要摘自一篇中文Survey,http://wenku.baidu.com/view/0c33af946bec0975f465e277.html 4.2 情感分析的资源建设 4.2.1 情感分析 ...
- 爬虫再探实战(五)———爬取APP数据——超级课程表【四】——情感分析
仔细看的话,会发现之前的词频分析并没有什么卵用...文本分析真正的大哥是NLP,不过,这个坑太大,小白不大敢跳...不过还是忍不住在坑边上往下瞅瞅2333. 言归正传,今天刚了解到boson公司有py ...
- Python爬虫和情感分析简介
摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着 ...
- C#编程实现朴素贝叶斯算法下的情感分析
C#编程实现 这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Lang ...
随机推荐
- GIS基础软件及操作(九)
原文 GIS基础软件及操作(九) 练习九.水文分析 水文分析:根据DEM提取河流网络,计算流水累积量.流向.根据指定的流域面积大小自动划分流域 水文分分析工具 (1)通过Arctoolbox:水文分析 ...
- ORA-13541: system moving window baseline size (691200) greater than retention (432000)
修改awr生成报告时间间隔和保存时间时报错,由默认的每小时生成,保存8天修改为每半个小时生成一次,保存5天: SQL, retention); , retention); END; * ERROR a ...
- 如何替换Windows的Shell(即explorer.exe)
原文:如何替换Windows的Shell(即explorer.exe) 下载一个可以查看用户的SID的软件,如SysInternals套装中的PsGetsid.exe(地址:http://www.it ...
- [转] Protobuf高效结构化数据存储格式
从公司的项目源码中看到了这个东西,觉得挺好用的,写篇博客做下小总结.下面的操作以C++为编程语言,protoc的版本为libprotoc 3.2.0. 一.Protobuf? 1. 是什么? Goo ...
- VCL比MFC好在哪里
作者:刘国华链接:https://www.zhihu.com/question/35218485/answer/118472021来源:知乎著作权归作者所有,转载请联系作者获得授权. 从使用感受而言, ...
- Delphi 中 断言 Assert 用法
procedure Assert(expr : Boolean [; const msg: string]); 用法: Assert(表达式,[显示信息]); 如果为假, assert会产生一个E ...
- Android和IOS启动第三方地图APP
最近客户新提了需求,地址字段要能通过第三方的地图进行定位,于是对Android和IOS端进行了调整. 以下是调用地图部分的代码. android可按照包名来判断app是否存在: 方法: /* * ch ...
- qt 心跳设计
网络通信中的心跳设计是为了判断客户端和服务器通信是socket是否处于连接状态,服务端每隔一个固定的时间间隔给客户端放消息,客户端设计一个心跳类,类中有一个定时器,当socket接收到信息时,心跳类记 ...
- 【DRP】-Dao层常用功能代码:增删改查
本系列博客内容为:做DRP系统中Dao层常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责: ...
- Linux命令行和shell编程
Shell Shell是一个程序,用户输入的命令通过shell来传达给内核或其它程序.用户在linux打开一个终端,终端就会自动调用用户的shell. Linux上的Shell有很多种,用的最多是sh ...