草庐IT

NLP学习笔记——情感分析一 (简介)

唯有读书高! 2024-01-11 原文

目录

一、什么是情感分析 

二、研究现状及存在问题

1、研究现状

(1). 传统情感分类方法

(2). 短文本情感分类方法

(3). 基于深度学习的方法 

2、存在问题

(1). 文化差异

(2).情感词典无法覆盖全部情感词汇

(3). 语义相似不等于情感相似

三、情感分析的应用


一、什么是情感分析 

        情感分析又称倾向性分析观点挖掘,是一种重要的信息分析处理技术,其研究目的是自动挖掘文本中的立场观点看法情绪喜恶等。在情感状态的理论研究中,情感状态的主要表示方法有两种:离散类别型表示方法和维度连续型表示方法。

  • 离散类别型表示方法

       即将情感状态表示分为若干个类别,再通过信息特征进行分类,一般为正负极型(二类别)和多个类别。该表示方法的优势有:1.模型训练难度低2.准确率较高等优势,但也有一下三点限制:1.分类前必须先自定义类别,自定义类别无法涵盖所有类别,可能会出现没有定义的未知类别;2.类别命名过程中,相同的情感状态可能有不同的类别定义,会造成后续类别无法对应或无法公用的问题;3.更换研究领域时类别情感也必须重新定义,特别是该领域特有的类别。

  • 维度连续型表示方法:

        即将所有情感状态表示在一个低维度的空间(二维或三维),如下图所示:任何句子词汇或文本都可以表示到VA坐标平面内的一个坐标点,表示情感的正负向激动程度。该表示方法的优点有:1.可以提供更为细致的情感信息、2.不会出现类别定义不完全或类名不一致的情况;缺点是:模型训练难度相对较高。

        情感分析一般包含:情感基本单元抽取情感分类情绪分析情感摘要情感检索等,主要以当前研究最多且相对容易的离散类别型表示方法进行介绍。情感分析的基本流程如下图,具体过程后面的文章介绍:

  • 情感基本单元抽取:

        情感基本单元抽取是情感分析最低层的研究任务,是从情感文本中抽取出有意义的信息单元,然后将计算机难以识别的无结构文本信息转化为容易识别的的结构化文本信息。抽取的信息单元主要包括观点持有者评价对象(如老师)、属性词(如上课)、情感词(如好)以及情感词的极性判定(给情感词打一个正负标签,如褒义为正,贬义为负)等。

  • 情感分类:

        情感分类是情感分析中被最广泛研究的任务,是指对情感文本所体现出的主管看法进行判定,通常分为两类(正面和负面)或三类(正面、负面和中立)。按照不同的粒度可以分为:篇章级句子级属性级情感分类。

  • 情绪分析:

        情绪分析是在情感分类的二分类三分类的基础上衍生出来的,从心理学的角度出发,将情绪分为:惊喜愤怒悲哀快乐厌恶恐惧这六大类情绪(也有的说七大类)。这样的多分类无疑是比之前的二三分类难得,因为有些情感语句会存在歧义,就是表现得在两个情绪之间。当然在机器视觉领域已经有实现通过表情来识别这七大类情绪,效果还是很好的(我也有在学校的机器视觉的课设上实践过)。

  • 情感摘要:

        情感摘要是在文本摘要技术上衍生而来的,传统的文本摘要技术提取(或生成)与主题相关的信息,而情感摘要技术不仅要提取(或生成)主题信息还有提取(或生成)情感信息。与传统文本摘要技术不同的是情感摘要侧重于提取具有明显情感倾向性的主观文本信息。情感摘要一般有两种方式呈现:基于主题的情感摘要和基于情感倾向性的情感摘要。

  • 情感检索:

        情感检索是从海量的文本信息中查询文本所蕴含的观点,并根据主题的相关性观点的倾向性对结果进行排序。情感检索返回的结果需要同时满足主题的相关性和观点的倾向性。 

二、研究现状及存在问题

1、研究现状

(1). 传统情感分类方法

        传统情感分类方法主要分为两种:基于情感词典方法机器学习方法。传统情感分类方法大多利用词袋,那么就有一个忽视了情感词上下文信息的一个缺点。因此有人提出了基于句法分析的情感分类方法(例如基于依存句法分析的分类方法),但也有一些缺点,以依存句法分许为例:1.需要大量训练数据集、2.大多针对商品评论数据集,对话题广泛用词灵活、句法结构复杂的文本具有一定的局限性。

  • 情感词典方法:

        这类方法是利用词汇(词组)的情感倾向来判断文本的情感极性,首先通过计算词汇(词组)的褒贬倾向性,再以词汇(词组)为单位,通过对它们的褒贬程度的加权求和等方法,获得整个句子整个篇章的情感极性。

        情感词典的构建方法通常有三种手工标注法基于知识库的方法基于语料库的方法。其中基于知识库的方法主要是借助知识库资源中的概念的解释之间的关系(反义词、同义词等)等来判断词语的情感极性。基于语料库的方法通常有如下假设:具有相同情感倾向性的情感词容易出现在同一句子中。这类方法通常需要事先手工标注小部分种子情感词,然后通过判定情感词与种子词在语料中共现关系的强度来估计待判定情感词的情感极性。

  • 机器学习方法:

        该方法需要经过数据预处理文本表示(特征选择、特征简约、特征权重设置)与分类器训练,最终输出对情感极性的预测。在有监督学习的方法中,可以用标注好的语料来训练情感分类器,可以看成文本分类任务的过程,如果标注文本稀缺或以已标注文本和待标注文本领域不同时,可采用半监督学习迁移学习等策略

            1.特征选择:选取适当的语义单元作为特征,对不同的文档具有较强的区分力。

            2.特征简约:去除特征集中不能有效反应类别信息的特征,提高分类效率和准确率。

            3.特征权重设置:一般按照特征值是否出现取0/1值,或者按词频信息取TF、TF*IDF值等。

(2). 短文本情感分类方法

        与传统的长文本相比,短文本受词数限制,呈现内容简短特征稀疏富含新词噪音词等特点,这使得传统情感分析方法在短文本上难以保证分析效果。短文本的情感分析主要分为三类基于内部特征的方法、基于外部知识的方法和基于社会关系的方法。

  • 基于内部特征的方法

        该方法通常借助文本内的其他特征来增强特征表达,例如表情符号、标点符号等

  • 基于外部知识的方法

        该方法一般通过丰富的外部知识体系如百度百科等资源,来扩充短文本中孤立词语义特征,这是提高文本分析内容的另一途径。比如可以通过维基百科的来源知识库上通过主题模型(LDA)训练主题向量,然后将短文本中的词汇和对应的主题向量一起用于情感分类的过程。

  • 基于社交关系的方法

        该方法是利用如微博中存在的点赞、关注、转发等交互方式所体现的社交关系来改进短文本情感分类。有实验表明,加入了社会关系之后,情感分类的性能要优于仅仅基于文本的模型(具体是哪篇论文我忘了)。

(3). 基于深度学习的方法 

        对于基于深度学习的方法有太多太多,有基础的LSTM,再到seq2seq模型transformerBert预训练加微调、还有GPT模型等。这些模型相对比较复杂,三言两语介绍不清楚,感兴趣的自己再了解了解。

2、存在问题

        当前研究现状所存在的问题和挑战比较多,例如文化差异情感词典无法覆盖全部情感词汇语义相似并不等于情感相似等

(1). 文化差异

        在不同的文化条件下,词汇的情感标注已经被证明是有区别的,不同的语言中词汇的情感标注也是不同的。例如现有的中文情感词典和语料资源翻译成英文后,并不能作为其他英文的情感词典和或语料资源使用,并且一些中文的情感分析方法并不一定适用于英文。

(2).情感词典无法覆盖全部情感词汇

        对于中文来说,每年都有新的网络词汇产生,也可以理解为中文的词汇是无穷的,所以情感词典无法覆盖全部情感词汇,总会有新的情感词汇产生。

(3). 语义相似不等于情感相似

        现有的文本、句子层次的情感分析基本上使用词嵌入作为模型特征,但是词嵌入包含的是语义信息,有时候相似的语义信息可能情感差距很大,比如开心和悲伤,基本上是两个情感相反的词,但是它们的词向量的余弦相似度却不低。

三、情感分析的应用

  1. 商业领域:电商的商品评论,好评与差评的分类。
  2. 文化领域:可以实现对影评、书评的褒贬分类,减少观影和阅读的盲目性。
  3. 社会管理:不正当言论的识别屏蔽。
  4. 信息预测:可进行态势预测,如美国总统竞选时通过大众言论预测谁呼声高。
  5. 情绪管理:通过社交平台可以预测人的生活状态和情绪特点,例如公司可以根据员工的状态合理安排工作计划。

有关NLP学习笔记——情感分析一 (简介)的更多相关文章

  1. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  2. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  3. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  4. HBase Region 简介和建议数量&大小 - 2

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile

  5. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  6. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  7. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  8. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

  9. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐