当前位置: 首页 > news >正文

自然语言处理系列之: 实战电影评论情感分析

大纲

  • 对舆情数据进行舆情分析
  • 分类算法应用
  • 初步了解深度学习方法RNN
  • 实战使用RNN变种-LSTM

8.1 情感分析的应用

  • 电子商务
  • 舆情分析
  • 市场呼声
  • 消费者呼声

8.2 情感分析的基本方法

  • 分析方法分类

    • 词法分析
    • 基于机器学习的分析
    • 混合分析
  • 词法分析

    运用预标记词汇组成的字典,使用词法分析器将输入文本转换为单词序列,将每个新的单词与字典中的词汇进行匹配,若有积极匹配,则对输入文本的分数总池进行加分,若是消极匹配,则输入文本总分减少。但是存在一个不足:其性能(时间复杂度和准确率)随着字典大小(词汇数量)增加而下降。流程如下图;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IfupWjp2-1604644504504)(https://i.loli.net/2019/08/31/lc8WpITCwav6qZi.png)]

  • 机器学习方法

    主要使用监督学习方法,分为:数据收集、预处理、训练分类三阶段,其关键是选择合适的特征,从而觉得分类器的准确率。主要面临:分类器设计、训练数据的获取、对未见过的短语的正确解释等挑战;


8.3 实战电影评论情感分析

  • CNN

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dbPhn1vE-1604644504506)(https://i.loli.net/2019/08/31/MHgItn4pRsLiUB5.png)]

    利用卷积层处理词向量序列,生成多通道特征图,对特征图采用时间维度上的最大池化操作来得到与此卷积核对应的整句话的特征,最后将所有卷积核得到的特征拼接起来即为文本的定长向量表示;

  • RNN

    句子示意图

    RNN按时间顺序展开,在 t t t时刻,网络读入第 t t t个输入 x t x_t xt,以及前一时刻状态值 h t − 1 h_{t-1} ht1(向量表示, h 0 h_0 h0表示初始化为0的向量),从而计算出本时刻隐藏层的状态值 h t h_t ht,若函数表示为 f f f,则公式表示为:

    h t = f ( x t , h t − 1 ) = σ ( W x h x t + W h h h t − 1 + b h ) h_t=f(x_t,h_{t-1})=\sigma(W_{xh}x_t+W_{hh}h_{t-1}+b_h) ht=f(xt,ht1)=σ(Wxhxt+Whhht1+bh)

    其中 W x h W_{xh} Wxh是输入层到隐藏层的矩阵参数, W h h W_{hh} Whh为隐藏层到隐藏层的矩阵参数, b h b_h bh为隐藏层偏置参数。RNN示意图如下,隐藏层的状态向量被送入一个Softmax分类器,然后判断其情感;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oICBgfmo-1604644504508)(https://i.loli.net/2019/08/31/sI14tTz5rkNegyh.png)]

  • LSTM

    保留了文本中的长期依赖信息,通过对循环层的刻意设计避免了长期依赖和梯度消失问题。输入单元输入数据 x ( t ) x(t) x(t),隐藏层输出 h ( t ) h(t) h(t),在这些单元中,隐藏层表达复杂,主要分为4个部分:输入门 i i i、输出门 o o o、遗忘门 f f f、记忆控制器 c c c,将LSTM表示函数记为 F F F h t = F ( x t , h t − 1 ) h_t=F(x_t,h_{t-1}) ht=F(xt,ht1)

    title

    其中 W W W b b b是模型参数, t a n h tanh tanh是双曲正切函数;

    LSTM cell单元图

  • 情感分析任务步骤

    • 训练或载入一个词向量生成模型;
    • 创建一个用于训练集的ID矩阵;
    • 创建LSTM计算单元;
    • 训练;
    • 测试;

相关文章:

  • 自然语言处理系列之: NLP中用到的机器学习算法
  • Java网络编程:UDP套接字程序设计,UDP实现Socket通信(附完整代码实现)
  • Java网络编程:邮件发送程序设计,SMPT传输协议实现(完整代码实现)
  • java网络编程:基于HTTP的下载程序设计及web浏览器制作(完整代码实现)
  • Java网络编程:Socket实现的扫描程序设计 (完整代码实现)
  • 为什么要学习设计模式?看完这篇你就懂了!
  • 使用Wps切分单页PDF文件为多页pdf
  • 深入解析JVM(四):对象的创建
  • IntellIJ IDEA导入项目后无法运行方法的解决方法!
  • Java使用Redis删除指定前缀Key
  • Linux中删除重复行的三种方法
  • Java面试突击系列(一):消息队列的面试连环炮
  • Java面试突击系列(二):分布式搜索引擎的面试连环炮
  • Java面试突击系列(三):分布式缓存
  • Java面试突击系列(四):Redis面试常见问题
  • ----------
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • ES6 ...操作符
  • Js基础——数据类型之Null和Undefined
  • JS数组方法汇总
  • ng6--错误信息小结(持续更新)
  • PermissionScope Swift4 兼容问题
  • Phpstorm怎样批量删除空行?
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue 个人积累(使用工具,组件)
  • webpack入门学习手记(二)
  • 仿天猫超市收藏抛物线动画工具库
  • 规范化安全开发 KOA 手脚架
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何编写一个可升级的智能合约
  • 实习面试笔记
  • 一道闭包题引发的思考
  • 【云吞铺子】性能抖动剖析(二)
  • 第二十章:异步和文件I/O.(二十三)
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​一些不规范的GTID使用场景
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • $jQuery 重写Alert样式方法
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)hibernate配置管理
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (六)Hibernate的二级缓存
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (顺序)容器的好伴侣 --- 容器适配器
  • (五)MySQL的备份及恢复
  • (转)关于多人操作数据的处理策略
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Core 项目指定SDK版本
  • .NET delegate 委托 、 Event 事件