热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【NLP_Stanford课堂】情感分析

一、简介实例:电影评论、产品评论是positive还是negative公众、消费者的信心是否在增加公众对于候选人、社会事件等的倾向预测股票市场的涨跌Affective

一、简介

实例:

  • 电影评论、产品评论是positive还是negative
  • 公众、消费者的信心是否在增加
  • 公众对于候选人、社会事件等的倾向
  • 预测股票市场的涨跌

Affective States又分为:

  • emotion:短暂的情感,比如生气、伤心、joyful开心、害怕、羞愧、骄傲等
  • mood:漫无原因的低强度长时间持续的主观感觉变化,比如cheerful,gloomy阴郁、irritable急躁、
  • interpersonal stance:人际关系中对另一个人的立场,比如友好的、友善的
  • attitude:态度,比如喜欢、讨厌
  • personality trait:个性品质,比如鲁莽、焦虑

在情感分析中,我们针对的是attitude,分析的是:

  • attitude的持有者(来源)
  • attitude的目标(方面)
  • attitude的类型:
    • 来自一组类型:喜欢、爱、恨hate、重视value、渴望desire等
    • 简单的带权重的极性:积极、消极和中性,均带有强度
  • attitude的文本:句子或者整个文档

情感分析的任务:

  • 简单任务:文本的attitude是积极还是消极
  • 复杂任务:按照1-5对文本的attitude评级
  • 高级任务:检查attitude的来源、目标或者复杂的attitude类型

二、基准算法

任务:极性检测:一部IMDB上的电影评论是积极还是消极

数据:Polarity Data 2.0: http://www.cs.cornell.edu/people/pabo/movie-­review-­data

步骤:

  1. Tokenization:将文本切分成词汇
  2. 特征提取
  3. 使用分类器分类:
    • Naive Bayes
    • MaxEnt
    • SVM

1. Tokenization 

需要应对:

  • HTML和XML标记
  • Twitter的标记(如,用户名、@)
  • 大写单词(有时候需要保留)
  • 电话号码、日期
  • 表情符号
  • 其他:

2. 特征提取

有效特征:

  • 否定词
    • 把在not后面直到下一个标点符号之间的词都加上NOT_,如下:
  • 只选择形容词或者所有词(所有词的效果更好)

3. 二值多项式朴素贝叶斯

主要思想:在情感分析或者其他文本分类的任务中,认定一个词是否出现比起出现的频次更重要

训练过程:

  • 将所有词的计数都重设为1
  • 从训练语料中提取词汇表
  • 将每个文档中的词去重,只保留一个实例
  • 将所有属于docsj类别的文档都连接成一个文档得到Textj

测试过程:

  • 将测试文档中的词去重

交叉验证:

  • 将数据分成10组,每组内的测试集和训练集中positive和negative的比例一样
  • 用前9组数据分别训练9个分类器,将最后一组数据完全作为测试集
    • 以下是其中五组数据:
  • 每组数据得到一个正确率,然后计算平均正确率

4. 难点

  • 有些评论很隐晦,难以被分类器察觉
  • 评论说的是原来自身的期望,然后说不符合期望,比如It should be brilliant,但是最后一句往往会说一句消极的话,所以语序也很重要

三、情感词典

词典中的每个词都存储了所属的情感。

1. 一般的情感词典

如下:

不同情感词典之间的同一个词极性的不一致性

 

2. 实例分析

分析IMDB中的每个词的极性

类别为1-10星,电影评论中都会附有星级评价,用这个来做类别,然后分析每个评论中的词,用以确定每个词的极性。

同一个词“bad”在不同的星级下计数如下:

可以发现1星最多,这也是因为1星的评价最多,所以我们不能直接用这个来确定极性,而是用如下计算:

最大似然估计:

不同词之间的比较使用范围最大似然估计Scaled likelihood:

 具体分析不同词在不同星级下的范围最大似然估计如下:

可以发现amazing和awesome在高分星级上出现的比较多,而bad和terrible在低分星级上出现较多

其他情感特征:否定词(no, not)

可以发现否定词在低分星级上出现的比较多

四、建立情感词典

主要使用半监督学习

  • 先使用一个小的数据集,可能是
    • 一些带标签的实例
    • 一些手动建立的模式
  • 然后建立一个词典

1. 基准算法

基本思想:源于

  • 如果两个形容词用“and”连接,那么他们有相同的极性
  • 如果用“but"连接,那么他们有相反的极性

步骤:

  1. 手动标记一个包括1336个形容词的种子数据集,其中有657个词是positive,679个词是negative
  2. 通过连接的形容词来扩展种子数据集。
    • 比如使用Google:
  3. 建立一个有监督的分类器,用以给每个词对分配极性相似性,即两个词极性上有多相似,主要使用count(AND)和count(BUT)。得到如下示意图:
  4. 将上图聚类成两堆,分别为positive和negative,如下:
  5. 输出极性的词典:positive和negative

以上是针对形容词,下面介绍一种针对短语的词典的建立方法Turney Algorithm。

2. Turney算法

步骤类似,如下:

  1. 从评论中提取建立一个短语词典
    • 将有如下词性组合的两个词都作为一个短语:
      • ,其中JJ表示形容词,NN表示名词,NNS表示复数形式的名词
  2. 学习每个短语的词性:使用点间互信息PMI,基本思想也是使用两个词“and”共现的词的计数
    • 如何预估PMI:使用查询机制,类似于上述的搜索Google:
    • 然后计算一个短语的极性:
  3. 对一个评论,计算其中的短语的平均极性,再评级
    • 一个评论结果如下:

Turney Algorithm结果如下:

可以发现Turney算法比起基准算法更准确,或许是因为

  • 短语比起单个词更准确
  • Turney算法可以学到特定领域的信息

3. 使用WordNet学习极性

 WordNet:在线同义词词典

步骤:

  • 创建positive和negative的种子词典(“good”和“terrible”)
  • 找到各种子词典里的同义词和反义词
  • 重复以上步骤
  • 过滤

五、其他情感分析任务

 

转:https://www.cnblogs.com/a-present/p/9489899.html



推荐阅读
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 我正在尝试将Firebase添加到涉及添加以下内容的现有应用程序中:classpath'com.googl ... [详细]
  • MybatisPlus入门系列(13) MybatisPlus之自定义ID生成器
    数据库ID生成策略在数据库表设计时,主键ID是必不可少的字段,如何优雅的设计数据库ID,适应当前业务场景,需要根据需求选取 ... [详细]
  • Android程序员面试宝典自定义控件一分钟实现贴纸功能一分钟实现TextView高亮一分钟实现新手引导页一分钟实现ViewPager卡片一分钟实现加载对话框一分钟实现轮播图一分钟 ... [详细]
  • 原文:http:blog.linjunhalida.comblogpjaxgithub:https:github.comdefunktjquery-pjax ... [详细]
  • 试图恢复UST锚定的方法不对,危急时刻要与用户频繁交流,维系用户的信任。原文标题:《赵长鹏:关于UST/LU ... [详细]
  • 范式转移:构建超级应用——胖应用 + 胖协议
    范式转移:构建超级应用——胖应用 + 胖协议 ... [详细]
author-avatar
手机用户2602915215
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有