情感分析(又称为观点挖掘或感情AI)是指使用自然语言处理、文本分析、计算语言学和生物特征识别来系统地识别、提取、量化和研究情感状态和主观信息。情感分析广泛应用于分析客户的心声,如评论和调查回复,在线和社交媒体,以及从市场营销到客户服务再到临床医学的保健材料。
情感分析的一个基本任务是在文档、句子或特征/方面级别对给定文本的极性进行分类,判断在文档、句子或实体特征/方面中表达的意见是积极的、消极的还是中性的。高级的“超越极性”情感分类着眼于诸如“愤怒”、“悲伤”和“快乐”等情绪状态。
进行情感分析的先驱包括“一般询问者”(General Inquirer),它提供了量化文本模式的线索,另外,还提供了基于对人的言语行为进行分析来检查一个人的心理状态的心理学研究。
微博言论往往带有强烈的情感色彩,对微博言论的情感分析是获取用户观点态度的重要方法。许多学者都是将研究的重点集中在句子词性、情感符号以及情感语料库等方面,然而用户自身的情感倾向性并没有受到足够的重视,因此,提出了一种新的微博情感分类方法,其通过建模用户自身的情感标志得分来帮助识别语句的情感特征,具体地讲,将带有情感信息的微博语句词向量序列输入到长短期记忆网络(LSTM),并将LSTM输出的特征表示与用户情感得分进行结合作为全连接层的输入,并通过Softmax层实现了对微博文本的情感极性分类。实验表明,提出的方法UA-LSTM在情感分类任务上的表现超过的所有基准方法,并且比最优的基准方法MF-CNN在F1值上提升了34%,达到091。
关键词: 情感分析, 长短期记忆网络, 用户情感倾向
Abstract:
Micro-blog's speech often has strong sentimental color, and the sentiment analysis of Micro-blog's speech is an important way to get users' opinions and attitudes Many researchers conduct research via focusing on the parts of speech (POS), emotion symbol and emotion corpus This paper proposes a novel method for Micro-blog sentiment analysis, which aims to identify the sentiment features of a text by modeling user sentiment tendency Specifically, we construct a sentiment information embedded word embedding sequence, and input it into a long short term memory (LSTM) model to get a sentiment embedded output representation Then we merge both the user sentiment tendency score and the output representation of LSTM, and use it as the input of a fully connected layer which is followed by a softmax layer to get the final sentiment classification result The experiment shows that the performance of our proposed method UA-LSTM is better than all the baseline methods on the sentimental classification task, and it achieves the F1-score up to 091, with an improvement of 34% over the best baseline method MF-CNN
总有情感在心头。
1情感定义
情感是指人类在特定环境中产生的一系列主观体验,反映出人类对世界和事物的态度、价值评价和生理反应。情感可以是高兴、愉悦、悲伤、愤怒等各种不同的情绪体验。
2情感分类
情感有多种分类方法,例如从强度、质量和表达方式等角度,可将情感分为积极情感和消极情感、基本情感和混合情感、自我体验和他人感知等。通过情感分类研究,可以更加深入了解人类内在情感的特点和规律。
3情感与人类行为
情感是人类内心体验的重要组成部分,也是人类行为和决策的重要依据。根据情感的不同程度和内容,人们会做出不同的决策,并产生不同的行为。因此,在科学研究、商业营销、社交交往等方面,情感成为了一个非常重要的研究对象。
4情感管理
情感管理是指通过拥有和表达积极情感以及减少和应对负面情感来有效地支持自身和他人行为的过程。有效的情感管理在个人生活和工作中有着重要意义,有助于改善心理健康、增强人际沟通交往等方面的效果。
5情感影响力
情感对人类的影响力是非常大的,在社交和政治领域中尤其明显。政治家、演说家和社交名人之所以能够产生如此强大的影响,也是因为他们善于利用情感和言语来驱动和激发人群。在现代社交网络和舆论场中,情感也是成为了许多网民热议话题的核心。
6情感在机器学习中的应用
情感分析是机器学习领域中的一个重要研究方向,即通过自然语言处理和数据挖掘技术等手段,对文本中包含的情感进行分析和分类。情感分析的应用非常广泛,包括产品评论、社交媒体情感分析、**评论等等。
那么, 怎么如果有条件概率了, 我们怎么算联合概率呢 可以倒腾一下条件概率公式, 得到 P(a, b) = P(b) · P(a|b), 也就是说两个事件ab共同发生的概率 = a发生的概率 x 已知a发生条件下b发生的概率;
于是, 我们得到了
信息熵 = 不确定性
note: 此处p(x)是x发生的概率
注意观察这个定义函数, 就可以发现, 因为p(x)<1, 所以如果p(x)值越小且x数目越多的话, 这个H(X)将增大
因此, 很容易知道, 汉语的信息熵是比英语大不少的, 因为汉语文字数目大于英语文字数目, 且汉语长尾词语非常多, 他们相对来说概率都比较小, 很容易拉高H的值
联合熵: H(X, Y) = - Σp(x, y) log(p(x, y)), 其实就是把p(x)替换成了p(x,y)代表联合概率
条件熵: 在一个随机变量已知的时候, 另外一个变量的不确定性
H(Y|X) = - Σp(x, y) log(p(y|x))
链式规则: H(X, Y) = H(X) + H(Y|X)
互信息: I(X; Y) = Σp(x, y) log p(x, y)/p(x)p(y)
互信息的性质: I(X; Y) = H(X) - H(X|Y)
I指标其实就是表现的两个实体之间的相关程度 如果X和Y完全独立, 那么I(X; Y) = H(X)- H(X) = 0
举例子: I(计算机软件, 软件) > I(计算机, 汽车)
what:
两种关系,
聚合关系/平行关系: paradigmatic
组合关系/共同关系: syntagmatic
上下文中A能被B替换, 那这是聚合关系 //平行关系, 比如cat , dog
A和B能放在一起做搭配, 那么这是组合关系 //共同关系, 互补 比如cat, eat
why
应用: 信息检索中的search suggestion, 主题图谱entity map
How
词语关联, 对于平行关系词语来说,他们往往有十分相似的context
my cat eats fish on Saturday
my dog eats meat on Monday
平行关系: 按照常识, 上下文context相似度高的词是平行关系
组合关系: 组合关系是一种词语的搭配关系 按照常识, 这两个词会一起搭配使用 如果共同出现的概率高, 而独自出现的概率低, 那么就是组合关系
所以我们由此得出的初步结论:
对于平行关系的, 我们获取每个词语的context, 然后计算词语间context的相似度, 相似度高的就是平行关系
对于组合关系的, 同时出现在某个语段context(比如一句话或者一段话)中的概率高, 而两个词语独自出现的概率比较低, 那么这两者就是组合关系
有意思的是, 如果两个词语是平行关系的话, 那么他们往往有着相同的组合关系词语来搭配使用 比如dog eats meat cat eats meat
那么接下去, 我们首先注意到一个问题, 如何获取每个词语的context
我们可以把context转化为一个我们熟悉的概念 -- document, 这样我们就可以利用以前学过的文档相似度计算的很多方法了
这里, 我们约定Context = pseudo doc = bag of words词袋
这里词袋的大小选择起来有很多种方法
比如下面这个公式
Sim("cat","dog") = Sim(Left1("cat"),Left1("dog")) + Sim(Right1("cat"), Right1("dog")) + + Sim(Win8("cat"), Win8("dog"))
其中, Window8("cat") = {"my","his","big", "eats", "fish"}
我们将使用Vector Space Model 非常常见, 往往用在文本分类, 情感分类上
当我们定好了词袋, 也就是我们的doc以后, 我们将会把它转化为多维度空间中的一个向量
这个空间有n个维度, 这个维度大小取决于文本库corpus的总体独特单词数, 因此维度数目非常地大
假设表示一个doc("cat") = {"eats": 5, "ate":3, "is":10 , }
doc("cat")可能被表示为如下:
表示成向量后, 我们的下一个问题是: 怎么计算相似度
求相似度往往使用余弦定理: cos(a, b) = a · b / |a||b| ,
但是, 在我们真正开始算之前, 我们得先进行标准化(正规化), 否则各个维度上的向量长度不一, 会出现大数吃小数的现象 要深刻理解余弦定理是为了求解向量之间夹角的大小, 或者说a向量在b向量单位化后方向上投影的长度(值是0~1)
因此,
d1 = (x1, x2, xn), 其中xi = c(wi, d1)/|d1|, c = count, 换句话说, xi是x在d1中出现的概率
Sim(d1, d2) = d1 · d2 = x1y1 + + xnyn = Σ(1~n) xiyi 求解向量内积
如果Sim = cos = 1, 夹角为0°, 那么就是完全的平行关系, 即同义词
这个模型还存在的问题:
某些频繁出现的词仍然存在压制其他词影响力的可能
存在大量的废词, 比如and, or, the 等等
对空间的浪费, 这个维度数过高了(n如果在这里可能>=10k, 毕竟英语还是汉语的词语都是非常多的)
为了解决上述简单模型条件下存在的问题, 我们引入TF-IDF term weighting
我们首先重新定义怎么计算TermFrequency 过去是出现一次我就+1, 所以在词袋中出现10次, TF=10
现在, 我们决定压制那些出现次数过多的词, 因此考虑引入两种朴素办法, 0/1 bit法, 或者对数函数法
此处, 请务必记得我们约定y: 处理后的TF变形值, x : C(wi, d1) 词语出现频次
TF transformation method:
第二种对数函数的方法已经比较好用了, 但是我们追求完美! 于是乎我们又整出了第三种更牛逼一点的TF计算方法, 它是BM25算法的中对于TF部分的计算方法
y = BM25(x) = (k+1)·x / (x+k), k是认为调整的参数, k是容忍参数 k越大, 对freq words越没有任何调整 求导后, 可以看到当k->∞, y->x
k=0, 其实就是bit hot
所以, BM25的TF计算完美实现了可以自由设定对高频词语维度容忍参数k
IDF: IDF(word) = log[(M+1)/m] ,
其中m = total number of docs containing word, 是一个变量, 可以看到, m越大, IDF会相应变得越小
M: total number of docs in collection, 是一个常数
造成效果是: 文档出现频率m越高的词语word, 会相应有一个较低的IDF weight 当一个词语几乎每篇文档都出现的时候, 那么 IDFweight会很接近 log(1) = 0 而一个词语出现得非常罕见, 比如unicorn, 那么它的IDFweight会被对数函数限制增长速度, 而不至于变得过大
我们约定word[i] = wi, document[1] = d1, i指的是第i个元素
那么, 现在我们整篇文章的对于平行关系发现的论述就归于如下两步:
第一步:
第二步:
再次强调, 现在 xi, yi来自BM25(wi, d1) / ΣBM25(wj, d1) , 即BM25's TF of wi / BM25's TF sum of all, 是∈[0, 1]的标准化量
相似度的计算例子
End
怎样通过句法分析分析句子情感算法例子?现阶段主要的情感分析方法主要有两类:
基于词典的方法
基于机器学习的方法
基于词典的方法主要通过制定一系列的情感词典和规则,对文本进行段落拆借、句法分析,计算情感值,最后通过情感值来作为文本的情感倾向依据。
基于机器学习的方法大多将这个问题转化为一个分类问题来看待,对于情感极性的判断,将目标情感分类2类:正、负。对训练文本进行人工标标注,然后进行有监督的机器学习过程。例如想在较为常见的基于大规模语料库的机器学习等。
本文整理自网络,主要是对自然语言处理能发展和落地的方向进行总结,也算是对自然语言处理常见任务的总结。
NLP的四大任务如下:
序列标注(Sequence labeling)是我们在解决NLP问题时经常遇到的基本问题之一。在序列标注中,我们想对一个序列的每一个元素标注一个标签。一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。
序列标注一般可以分为两类:
命名实体识别(Named entity recognition, NER)是信息提取问题的一个子任务,需要将元素进行定位和分类,如人名、组织名、地点、时间、质量等。
举个NER和联合标注的例子。一个句子为:Yesterday , George Bush gave a speech 其中包括一个命名实体:George Bush。我们希望将标签“人名”标注到整个短语“George Bush”中,而不是将两个词分别标注。这就是联合标注。
11 BIO标注
解决联合标注问题最简单的方法,就是将其转化为原始标注问题。标准做法就是使用BIO标注。
BIO标注:将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。
比如,我们将 X 表示为名词短语(Noun Phrase, NP),则BIO的三个标记为:
因此可以将一段话划分为如下结果:
我们可以进一步将BIO应用到NER中,来定义所有的命名实体(人名、组织名、地点、时间等),那么我们会有许多 B 和 I 的类别,如 B-PERS、I-PERS、B-ORG、I-ORG等。然后可以得到以下结果:
[上传失败(image-b1cfb3-1609330627120)]
12 序列标注常用模型
选择双向LSTM的原因是:当前词的tag和前后文都有关。
13 序列标注具体任务
(1)分词
(2)词性标注(Part-of-Speech tagging ,POS tagging)
(3)命名实体标注(name entity recognition, NER)
21 分类的具体任务
(1)文本分类、情感分类
31 具体任务
(1)句法分析、蕴含关系判断(entailment)
这类任务一般直接面向普通用户,提供自然语言处理产品服务的系统级任务,会用到多个层面的自然语言处理技术。
41 具体任务
(1)机器翻译(Machine Translation,MT)
Encoder-Decoder的最经典应用,事实上这一结构就是在机器翻译领域最先提出的。
(2)文本摘要、总结(Text summarization/Simplication)
输入是一段文本序列,输出是这段文本序列的摘要序列。
(3)阅读理解(Reading Comprehension)
将输入的文章和问题分别编码,再对其进行解码得到问题的答案。
(4)语音识别
输入是语音信号序列,输出是文字序列。
(5)对话系统(Dialogue Systerm)
输入的是一句话,输出是对这句话的回答。
(6)问答系统(Question-Answering Systerm)
针对用户提出的问题,系统给出相应的答案。
(7)自动文章分级(Automatic Essay Grading)
给定一篇文章,对文章的质量进行打分或分级。
1 词法分析(Lexical Analysis):对自然语言进行词汇层面的分析,是NLP基础性工作
2 句子分析(Sentence Analysis):对自然语言进行句子层面的分析,包括句法分析和其他句子级别的分析任务
3 语义分析(Semantic Analysis):对给定文本进行分析和理解,形成能勾够表达语义的形式化表示或分布式表示
4 信息抽取(Information Extraction):从无结构文本中抽取结构化的信息
5 顶层任务(High-level Tasks):直接面向普通用户,提供自然语言处理产品服务的系统级任务,会用到多个层面的自然语言处理技术
1序列标注中的BIO标注介绍,地址: https://blogcsdnnet/HappyRocking/article/details/79716212
2 http://nlpersblogspotcomau/2006/11/getting-started-in-sequence-labelinghtml
3NLP 四大任务,地址: https://wwwdazhuanlancom/2019/08/21/5d5ca1e2826b9/
4NLP基本任务,地址: https://blogcsdnnet/lz_peter/article/details/81588430
5微信研究员解析深度学习在NLP中的发展和应用,地址: https://educsdnnet/course/play/8673
6从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 - 张俊林的文章 - 知乎 https://zhuanlanzhihucom/p/49271699
这是计算机世界的一个尚未开发的前沿:将各种人类情感转化成实实在在的数据。
起源
虽然之前也有一些相关工作,但目前公认的情感分析比较系统的研究工作开始于(Pang et al, 2002)基于监督学习(supervised learning)方法对**评论文本进行情感倾向性分类和(Turney,2002)基于无监督学习(unsupervised learning)对文本情感情感倾向性分类的研究。Pang et al, 2002)基于文本的N元语法(ngram)和词类(POS)等特征分别使用朴素贝叶斯(Naive Bayes),最大熵(Maximum Entropy)和支持向量机(Support Vector Machine,SVM)将文本情感倾向性分为正向和负向两类,将文本的情感进行二元划分的做法也一直沿用至今。同时他们在实验中使用**评论数据集目前已成为广泛使用的情感分析的测试集。(Turney ,2002)基于点互信息(Pointwise Mutual Information,PMI)计算文本中抽取的关键词和种子词(excellent,poor)的相似度来对文本的情感倾向性进行判别(SO-PMI算法)。在此之后的大部分都是基于(Pang et al, 2002)的研究。而相对来说,(Turney et al,2002)提出的无监督学习的方法虽然在实现上更加简单,但是由于单词之间的情感相似度难以准确的计算和种子词的难以确定,继续在无监督学习方向的研究并不是很多的,但是利用SO-PMI算法计算文本情感倾向性的思想却被很多研究者所继承了
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)