文本挖掘-避孕药主题情感分析

Posted 说说数据分析那些事儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本挖掘-避孕药主题情感分析相关的知识,希望对你有一定的参考价值。

前言


距离上次文本挖掘小文章时间已经过了3个月了,北京已经入冬,有人说北京的冬天很冷,但是吃上火锅很暖;也有人说北京的冬天雾霾严重,太干。这两句表达的是对北京冬天的情感,即有正面也有负面。如果在舆情分析而言,我们在做营销分析,分析产品、活动优劣,或者希望维护品牌PR,我们就需要针对消费者网络发声去分析情感,来帮助我们维护品牌,改善活动产品,来达到监测舆情分析效果。换句话说也就是我们今天分享的主题---sentiment


舆情分析思路

笔者5年前做舆情分析时候一般来说就是人工舆情,并没有加入高级点的分析工具减少人工投入。随着Rpython等的流行,同时,随着各种开源包tmLDARwordseg开发,以及高等概率数学的应用,例如分词算法根据隐性马尔科夫链算法编写而成(有兴趣的同学自己研究),让我们之前的工作量大大减少。因此人工舆情转换成人工纠正舆情大势所趋,即我们使用工具减少读帖子的时间,并且让机器学习,人工后期纠错。

 

 

一般而言,舆情分析报告分为以下几个步骤




前两个可以作为统计分析-统计时间趋势音量,音量份额,后两个可以作为建模分析-主题分析,情感判别。


这里有个小插曲:上次分享的是主题分析,笔者最近又重新梳理了下LDA,发现tm包中文分词形成词频矩阵很不理想,这会导致LDA无法应用,因此,后续笔者会自己写个脚本将词频矩阵实现,这样会方便LDA,会方便聚类分析,以及预测分析



言回正传,情感分析就是表达发言人对一个主题的看法,有好有坏,或者中立。情感分析应用分类两类,第一是给定正负面词,算分值,高于或者低于baseline则表示正面、负面情绪。第二,根据深度学习,利用神经网络来区分正负情感。本文先实现第一类情感分析



第一类情感分析:正负面词典(简版)

1.     读入文本,数据清理



本次还是以上次文本为输入项,将content_Full内容 文本处理

文本挖掘-避孕药主题情感分析


清理原则:

1).     去除特殊字符,例如☆移动平台☆ios

2).     去除转发的内容,留原作者观点。例如:保留红框内的文本,去除后面转发文本


文本挖掘-避孕药主题情感分析



3).     删除文本过长的内容,内容偏向日记和广告,减少文本噪声


文本挖掘-避孕药主题情感分析


4).     去除stopwords

比如中文常规字符,‘的‘地‘得’‘我




2.     添加词汇

由于本文是医用词汇,需要添加的词汇偏重医用或者品牌,不让分词拆成单个字符。例如:妈富隆,调经



3.     分词&词云图



文本处理后,根据词频出现频次,且过滤掉分词为单个词的中文,绘制词云图,鼠标所过的词可以显示文本出现次数,例如避孕药:767


文本挖掘-避孕药主题情感分析



4.     载入正负词典,正面词记1。负面词为-1,便于之后算分值划定情感



文本挖掘-避孕药主题情感分析


5.     将文本中的分词按照中英文词典的正负面词打分,计算分值,若中性词(不出现字典)则记为0



分值计算原理:

a)      公式(自己编的,有疑问请留言一起讨论)

情感分值=i=1(正面+中性)*(-1)^tt

i 表示第i句话;t表示出现负面词的次数


b)      公式表示一句话中若出现偶数负面词,表示肯定,例如:我其实觉得 他没有那么不通情达理。两次否定:不,没有,t=2


结果:


1)正面发声:



2)负面发声:    



后续改进:

 

1.     将词频矩阵脚本改写,重现LDA 或者 聚类

2.     对文本先人工预判,将此打分进行confusion matrix,评估分类器

3.     目测而言负面分类基本正确,正面分类中包含很多中性发声,需要进一步剔除研究

4.     深度学习重现下情感分析









以上是关于文本挖掘-避孕药主题情感分析的主要内容,如果未能解决你的问题,请参考以下文章

R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究

[Python人工智能] 三十一.Keras实现BiLSTM微博情感分类和LDA主题挖掘分析(上)

Python做文本挖掘的情感极性分析

应用Python做文本挖掘的情感极性分析

电商产品评论数据情感分析

iDST-文本挖掘算法专家-情感分析&文本反垃圾-杭州