实验题目
利用实验1完成的分词和去除停用词后的实验文本,进行文本的情感分析。
选择基于(1)情绪词典;或者(2)基于机器训练的两种方式之一,完成逐句的情感标注。
使用情绪词典构建每日情绪指数,可参考以下两种算法:(1)逐句计算每个句子的极性得分,正极性词加1,负极性词则减1。然后每日累计,并使用总新闻条数进行调整。或者(2)计算每日所有新闻中的正极性词与负极性词数量之比。
实验代码
1. 引入库
import os
import re
import jieba
import codecs
import xlrd, xlwt
from xlutils.copy import copy
from collections import defaultdict
2. 打开文件
实验要求构建每日情绪指数,就需要对数据按日期分类。我先将excel表格中数据按日期升序排列,可以看到每日有多条评论。将日期转化为数值格式,小数点之前的数字是年月日转换而成,小数点之后代表发帖小时分钟。舍弃小数点之后的数字,这样time一栏相同的数据即是同一天的评论内容。
新建情绪指数.xls,复制time一列,去除重复项,用于写入每日情绪指数。
data = xlrd.open_workbook('新闻数据.xls')
sheet = data.sheet_by_index(0)
data2 = xlrd.open_workbook('情绪指数.xls')
new_data = copy(data2) # 将xlrd对象拷贝转化为xlwt对象
new_sheet = new_data.get_sheet(0) # 获取转化后工作簿中的第一个表格
3. 创建停用词列表
stopwords = [line.strip() for line in open('中文停用词表.txt',encoding='ANSI'