快乐学习
前程无忧、中华英才非你莫属!

一次分析舆情数据经历记录

首先要实现三个功能点
1、语义情感分析
2、数值聚类统计
3、数据分组(按照某个重复的字段)、组内排序(按照时间点)、组内过滤TopN(保留每组内最小的时间点)


思路构想:
1、编程语言,首选Python,因为它有很多实用的库~
2、找一个支持中文的情感分析,现成的类库
3、开始撸代码!
备注:代码没撸好,是因为自然语言处理这块还是不太熟练,以后慢慢就熟了,总有第一次!哈哈~最后还是选用我最爱的工具大Tableau,经发现它从10版本以后就开始内置Python脚本开发!可以在内部使用Python。一想,聚类统计、情感分析功能不就都有了么,起码可以省百分之80的代码,而且还不易报错!


实现三个功能点步骤:
一、语义情感分析

1、首先把源数据加载到Tableau中。把需要的字段,都拖拽到行功能区!


2、然后创建计算字段,我们需要对内容字段和标题字段做情感分析!
     在计算字段中,需要编写固定格式的Python代码,如下:SCRIPT_REAL(“这里是python代码 必须要有一个返回值,[这个是要计算的字段])
     稍微解释一下,我们这里是哟弄了python 语义分析的类库bosonnlp ,和数组计算的库:Numpy。就可以了!

SCRIPT_REAL("from bosonnlp import BosonNLP
import numpy as np
vs=[]

nlp = BosonNLP('这个是秘钥')

for i in range(0,len(_arg1)):
    a = nlp.sentiment(_arg1[i])
   
    nrry = np.array(a).ravel()
    
    for row in nrry[0].flat:
        
        vs.append(row)
        print(vs[0])

return vs",ATTR([文章标题])
)

代码写完之后,把计算字段命名为情感分类(正、负)数值大于0.5的是正能量,小于0.5的是负能量是坏的评论需要注意,把这个字段拖拽到Tableau的行功能区即可完成情感分析的功能!
效果图

按照文章标题进行的情感分析计算,低于0.5的都是负面的文章!这个值可以自定义,如果要求严格,低于0.4的就是负能量,越接近1的越是正能量!


二、数值聚类统计
    拖拽Tableau 软件自带的记录数功能,拖拽到行功能区,即可实现。
三、分组计算和统计
    Tableau更新到10.5版本还没有发现它支持分组计算功能,也没找到类似于Group的函数
 
    之前用了这个聚合函数,对于分组计算的还是不行!

  突然想到了数据库它是支持分组计算的! 然后我们把Excel数据又导入到MySQL数据库里面进行计算!

  对于导入导出,可以用Navicat的数据库管理工具,或者ETL工具,这里建议用ETL工具(Kettle),可以处理Excel导入到MySQL过程中,把空值、特殊符号,编码问题可以处理好、如果你的数据中有日期,然后再把日期变成规范的mysql datatime的字段格式,如果源数据日期是酱紫 2015/03/04/ 12:99.99   导入就会出错丫,我们需要处理成2018-04-27 17:57:08比较稳妥!

  然后我们只用了含有 min和group by的SQL语句就搞定了就实现了保留最小的时间点的一条重复信息。
SELECT yuqing.pingtai,  yuqing.title,yuqing.source
from yuqing where yuqing.time  in (select mintime from (select min(yuqing.time) as mintime from yuqing group by yuqing.title) b) ;

后续的就是,多个文件合并,合并之后根据多个维度字段,进行排序就OK辣!
后续还有~,如果对你有帮助,请别忘了,PC端登陆https://www.ztloo.com 右下角进行打赏!
打赏
赞(0) 打赏
未经允许不得转载:同乐学堂 » 一次分析舆情数据经历记录

特别的技术,给特别的你!

联系QQ:1071235258QQ群:710045715

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

error: Sorry,暂时内容不可复制!