【舆情演变分析】2019.07.11阶段性工作总结

舆情演变分析-情感分析组实践总结

(为了养成严谨写论文的习惯,我决定一改沙雕文风,认认真真写博客)

实践用题简介:

九寨沟地震的新闻让公众惋惜担忧。针对这一事件,许多网友在中国最大的社交平台之一——微博上发表了自己的心情看法。现在,我们获取了新浪微博上的相关内容,从微博文本分析公众对该自然灾害产生的情感进行分析。
【舆情演变分析】2019.07.11阶段性工作总结_第1张图片
代码简析如下:

import csv
import numpy
import xlrd
import pandas
import jieba

df = pandas.read_csv('C:/Users/Rumin/Desktop/work/news_divided/data/all_spider_01_delete_duplicated_202874条数据.csv')
df.columns=['indexes','url_data','time','content','user_name','number']
# 处理源文件
# df=df.drop(['f1'],axis=1)
# df=df.drop(['f2'],axis=1)
newdata = df['content'].astype(str)
databases=pandas.DataFrame(newdata)
print(databases)

#去停用词集
deletewords = 'C:/Users/Rumin/Desktop/work/news_divided/diction/stopwords-master/哈工大停用词表.txt'
f = open(deletewords,'r',encoding='UTF-8')
deleteset = []
templist = f.readlines()
print(templist)
for dword in templist:
    dword = dword.strip('\n')
    deleteset.append(dword)


# 预处理+分词
wordsfile = []
#for i in range(newdata.size):
seg_list = jieba.cut(newdata[0])
result = []
for w in seg_list:
    #w=w.encode("utf-8")
    if w not in deleteset:
        result.append(w)
print(result)

#计算情绪值
PWords = pandas.read_excel('C:/Users/Rumin/Desktop/work/news_divided/diction/情感词汇本体/情感词汇本体.xlsx',sheet_name='Sheet1')
words = PWords['词语']
PWords=PWords.set_index(PWords["词语"])

emotionlist=[]
emotionlist=PWords.index.values.tolist()

Esets=[]
Esets=PWords["情感分类"].unique()
for ch in Esets:
        databases[ch]=0

for ch in result:
    if ch in emotionlist:
        fenlei=PWords.at[ch,'情感分类']
        power=(PWords.at[ch,'强度'])
        #scores=newdata.at[ch,'极性']
        databases.at[0,fenlei]=databases.at[0,fenlei]+power
        
print(databases.loc[0])




注:为节省运行时间,本次试验用一条数据为例

处理步骤详解

1.载入数据集、情感词典、停用词集

细粒度情感词典较为稀有,本次实验中,我们用到的细粒度情感词典为大连理工情感词典。
停用词词典为常见的停用词词典,这里不多做论述。

1.1预处理

【舆情演变分析】2019.07.11阶段性工作总结_第2张图片
首先,我们对目录名做处理,方便我们使用。其次,我们只留下content的部分,即微博的正文部分。

1.2停用词处理

【舆情演变分析】2019.07.11阶段性工作总结_第3张图片
加载停用词如图。
停用词都是选取常见的、频率较高的词语,例如,我、啊,但是去掉的一些连接词可能会破坏原有语义及情感。例外,一些常用的符号以及数字也被清除。

1.3情感词典加载

情感词典主要分为以下几个部分:
1.词语
2.词性
3.情感分类、强度和极性
【舆情演变分析】2019.07.11阶段性工作总结_第4张图片

2.分词

在这里插入图片描述
分词采用的jieba分词的默认
jieba分词有三种模式,分别为:全模式、精准模式以及搜索引擎模式。

3.计算情感值

【舆情演变分析】2019.07.11阶段性工作总结_第5张图片

待改进

1.没有考虑否定词、程度副词等词语的作用。
2.停用词中仍然存在数字、空格等不规范词语。
3.大连理工情感词典包含的词语数有限,在实验过程中,“地震”、“预警”这样明显带给人负面情绪的词语被忽略。相比较,第一条新闻中,我们抽取到的可用词只有“高新”(而且还是个正面词……)。
4.考虑到之后的任务,

  1. 我们可以从添加新词汇扩充容量,难度主要在于确定词的极性与强度。
  2. 可以考虑机器学习的方法,不过通常来说准确率较低。

你可能感兴趣的:(舆情演变分析)