短文本情感分析

一、什么是情感分析:

情感分析(SA)又称为倾向性分析和意见挖掘,它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程,其中情感分析还可以细分为情感极性(倾向)分析,情感程度分析,主客观分析等。

情感极性分析的目的是对文本进行褒义、贬义、中性的进行判断。

情感程度分析主要是对同一情感极性中再进行划分或者细分,以描述该极性的强度。例如“喜爱”和“敬爱”都是褒义词,但是“敬爱”相对来说褒义的程度更加强烈一些。

主客观分析主要目的是识别文本中哪些部分是客观称述而不带情感色彩,哪些是带有情感的主管描述。在对于微博,或者商品评论时,这个分析步骤一般都忽略,因为微博和商品评论本身就一定存在强烈的情感色彩,而且客观描述的情感值理论上是为零,不影响最终的情感分析结果。

二、情感分析的主要方法:

现阶段主要的情感分析方法主要有两类:

基于词典的方法

基于机器学习的方法

基于词典的方法主要通过制定一系列的情感词典和规则,对文本进行段落拆借、句法分析,计算情感值,最后通过情感值来作为文本的情感倾向依据。

基于机器学习的方法大多将这个问题转化为一个分类问题来看待,对于情感极性的判断,将目标情感分类2类:正、负;对情感程度的分析则转化为回归问题看待。对训练文本进行人工标标注,然后进行有监督的机器学习过程。

在还没有获得大量文本的情况下,使用基于词典的方法或者简单的机器学习方法是一个不错的选择。获得大量文本后,可以尝试使用一些复杂的机器学习方法甚至使用深度学习来进一步提升分析效果。

三、基于词典的情感分析:

情感分析对象的粒度最小是词汇,但是表达一个情感的最基本的单位则是句子,词汇虽然能描述情感的基本信息,但是单一的词汇缺少对象,缺少关联程度,并且不同的词汇组合在一起所得到的情感程度不同甚至情感倾向都相反。所以以句子为最基本的情感分析粒度是较为合理的。篇章或者段落的情感可以通过句子的情感来计算。

基于词典的情感分析大致步骤如下:

考虑到语句中的褒贬并非稳定分布,以上步骤对于积极和消极的情感词分开执行,最终的到两个分值,分别表示文本的正向情感值和负向情感值。

进过以上的步骤,每篇文章的每个段落的每个句子都会有相应的情感分值,之后针对需求,可以针对句子的分值作统计计算,也可以针对段落的分值作统计计算,得到最后的文本的正向情感值和负向情感值。

四、基于词典的情感分析实践:

(1)基于词典的情感分析首先要构建情感词典及程度副词词典。通常是拉取一些比较成熟的情感词典。常见的如知网台湾大学简体中文情感极性词典。将几个词典组合后再针对需要添加领域内的一些词就差不多了。

(2)  准备待分析文本、分词工具:

待分析文本:可以爬取一些购物网站、团购、电影平台的评论数据作为实验数据。

分析工具:中文的话推荐使用结巴分析,PythonJava等都有对应的接口,文档和应用案例也相对较多。同时需要准备一份自定义词典,由于领域内的新词及一些网络流行语等不容易切分出来,自己制作一份词典就OK了。

(3)利用结巴分词分解出一段文本中的句子、及每个句子中词汇:

(4)计算部分:首先将一段输入文本调用句子切分函数得到一系列句子,对每个句子进行分析处理,得到每个句子的分词结果。搜索分词结果中的情感词并标注和计数,由于情感词存在一些修饰词(如非常、一般、不等)对情感词的情感程度甚至情感极性影响很大,在此,搜索情感词前的程度词,根据程度大小,赋予不同权值,同时搜索情感词前的否定词,赋予反转权值(-1)。综合得到一个句子的正向情感得分、负向情感得分。

(5)综合每个句子的结果得到最后的文本情感值。

我们爬取了某购物网站的共计18978条平均数据,采用基于词典的方法对短文本情感倾向进行分类其结果如下图:

总结:

基于情感词典的技术重点分析文本中出现的情感词、同时关联该词附近的修饰词来最终表达句子的情感倾向。在句子结构复杂、无情感词出现但有明显情感倾向的情况下,基于词典的方法就会失效。因此,可以考虑从句子结构,词频,词序等方面构建更多特征,使用机器学习方法来解决这一类的问题。最终综合多个模型来表达最终的结果。

在此,本人也构建了一个基于word-embedding的CNN模型来进行情感分析,相比于基于词典的情感分析,CNN对复杂长句具备一定的优势,可以参考本人另外一篇博文:CNN在中文文本分类的应用

文章来源:http://blog.csdn.net/zbc1090549839/article/details/52800441

时间: 2024-10-16 16:19:23

短文本情感分析的相关文章

主题模型及其在文本情感分析中的应用

随着Web2.0技术的出现和发展,互联网上(包括门户网站.电子商务网站.社交网站.音/视频分享网站.论坛.博客.微博等)产生了海量的.由用户发表的对于诸如人物.事件.产品等目标实体的评论信息.例如,下面这两个短文本评论:(1)“比较了多个智能手机后选择了8150,性价比还可以.另外,就是考虑到它是3.7的屏幕,大小比较合适,否则携带很不方便.”(京东商城用户,2011.11.25):(2)“我以前在杭州做二手房地产,用温州炒房客的话说:全世界房价降了,杭州的房价永远不会降,因为他们有一道坚不可摧

Python爬虫和情感分析简介

摘要 这篇短文的目的是分享我这几天里从头开始学习Python爬虫技术的经验,并展示对爬取的文本进行情感分析(文本分类)的一些挖掘结果. 不同于其他专注爬虫技术的介绍,这里首先阐述爬取网络数据动机,接着以豆瓣影评为例介绍文本数据的爬取,最后使用文本分类的技术以一种机器学习的方式进行情感分析.由于内容覆盖面巨大,无法详细道尽,这篇文章旨在给那些对相关领域只有少量或者没有接触的人一个认知的窗口,希望激发读者自行探索的兴趣. 以下的样本代码用Pyhton写成,主要使用了scrapy, sklearn两个

文本情感分析的基础在于自然语言处理、情感词典、机器学习方法等内容。以下是我总结的一些资源。

词典资源:SentiWordNet<知网>中文版中文情感极性词典 NTUSD情感词汇本体下载 自然语言处理工具和平台:哈尔滨工业大学社会计算与信息检索研究中心isnowfy/snownlp · GitHub 汉语分词:自然语言处理与信息检索共享平台 NLPIR.orgfxsjy/jieba · GitHub 语料资源:信息分类与情感发现 课程:斯坦福大学自然语言处理第七课"情感分析(Sentiment Analysis)" 网站和博客:Text Classification

python snownlp情感分析简易demo

SnowNLP是国人开发的python类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典.注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode.MIT许可下发行.其 github 主页我自己修改了上文链接中的python代码并加入些许注释,以方便你的理解: f

情感分析语料资源(免费)

1.知网的情感词典- http://www.keenage.com/html/c_bulletin_2007.htm由知网发布的词典,包括中文情感词典和英文情感词典 2.台湾大学的情感极性词典- http://www.datatang.com/data/11837包括2810个正极性词语和8276个负极性词语准确度很高 3.酒店评论语料- http://www.datatang.com/data/11936 谭松波整理的一个较大规模的酒店评论语料语料规模为10000篇语料从携程网上自动采集,并经

情感分析的现代方法(包含word2vec Doc2Vec)

英文原文地址:https://districtdatalabs.silvrback.com/modern-methods-for-sentiment-analysis 转载文章地址:http://datartisan.com/article/detail/48.html 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中.通过这种方式,情感分析可以被视为利用一些情感得分指标来量化定性数据的方法.尽管情绪在很大程度上是主观的,但是情感量化分析已经有

微博情感分析(一)

话说微博面世已经很久了,但对于微博信息的挖掘却才刚刚起步,这其中的原因当然有信息挖掘的技术还不成熟,但我觉得主要问题还是在于中文信息处理的技术还处于萌芽的阶段.中文语言本身信息量就很大,歧义性词汇多,再加上微博语言语义不整.微博媒介本体中夹杂着大量的标签,导致微博技术发展缓慢.在现在的网络上,用户通过网络主动地表达自己的观点或对其他人或事件的态度,主观性强:微博载体规定的语言只有140字,使信息在微博中呈现出碎片化.即时化和移动化的特性,而不再是具有完整的上下文信息.通过微博自由.便捷.即时地抒

C#编程实现朴素贝叶斯算法下的情感分析

C#编程实现 这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Progressing)中的重要问题,用以对文本进行正负面的判断,以及情感度评分和意见挖掘.本文借助朴素贝叶斯算法,针对文本正负面进行判别,并且利用C#进行编程实现. 不先介绍点基础? 朴素贝叶斯,真的很朴素 朴素贝叶斯分类算法,是一种有监督学习算法,通过对训练集的学习,基于先验概率与贝叶

如何用KNIME进行情感分析

Customer Intelligence Social Media Finance Credit Scoring Manufacturing Pharma / Health Care Retail Cross Industry Government Credit Scoring / Credit Rating / Customer Risk (This workflow can be found on the KNIME Workflow Public Server under       0