基于百度API的豆瓣电影评论情感分析

2021-09-22 20:12罗旋
科技研究 2021年22期
关键词:情感分析

摘要:对豆瓣电影评论的情感分析,可以帮助后续电影票房的预测。调用百度情感分析API,将按照电影上映时间划分,计算出每个时间段内的观众的情感趋势。

关键词:电影评论;情感分析;百度API

中图分类号:TP391.1 文献标识码:A

1 引言

电影评论反映了观众对影片的认同程度,在电影消费行为上起着决定性的指导作用,它可以给未观影者提供一种情感的导向参考,也给电影制作及发行方提供了参考方向,对电影票房产生了各种各样的影响[1,2]。

首先需要从豆瓣网爬取每个电影评论的相关信息[3],每个电影评论大概是200条。再通过调用百度情感文本分析API对每条评论进行分析,通过调用会返回相关的JSON格式字符串。通过对字符串内容的分析得出每部电影在上映前用户、上映7天内以及上映7天后评论的情感趋势。这里的情感趋势指的是评论文字所持态度的可能性。例如1代表的积极,0.5代表中性,0代表消极。在0-1之间的数就代表了相关程度。例如0.9代表很积极,0.75代表一般积极,0.1代表消极。

2 调用百度API

2.1 百度API介绍

对只包含单一主体主观信息的文本,进行自动情感倾向性判断(积极、消极、中性),并给出相应的置信度。为口碑分析、话题监控、舆情分析等应用提供基础技术支持,同时支持用户自行定制模型效果调优。

2.2 安装API Python SDK

对于一般的请求来说,需要通过URL进行手动请求。但是,此处使用的是Python语言。百度对Python语言的请求接口做了封装,因此只需对SDK进行pip下载即可使用内置包。如果已安装pip,执行pip install baidu-aip即可,如果需要使用HTTP2,请安装pip install baidu-aip-http2。如果已安裝setuptools,执行python setup.py install即可。

2.3 新建AipNlp

AipNlp是百度大脑自然语言处理的Python SDK客户端,为使用自然语言处理的开发人员提供了一系列的交互方法。编写如下代码,可新建一个AipNlp。

""" 你的 APPID AK SK """

APP_ID = '18884915'

API_KEY = 'Bm4P8py3wcPkGFCuK0aDsO16'

SECRET_KEY = 'GIIBgETUXcKXF2gosswUHa4hV5W1auYu'

def getAPI():

client = AipNlp(APP_ID,API_KEY,SECRET_KEY)

return client

在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

情感分析API对包含主观观点信息的文本进行情感极性类别(积极、消极、中性)的判断,并给出相应的置信度。调用百度情感倾向分析API的代码如下:

client = BaiDuCutWord.getAPI()

调用API进行分析如下:

res = client.sentimentClassify(text);

其中text是请求参数,为String类型文本内容(GBK编码)。

把分析数据保存如下:

SingleItem['emotions']= res

3 对返回参数分析

3.1数据类型转换

将数据从数据库中以DataFrame形式加载至内存以便后续分析。由于原始数据的时间是字符串形式,为了方便后续使用DataFrame的query查询,需要做前期准备,将字符串类型转换成datatime64[ns]类型。利用datetime的timedelta对时间进行操作,计算出所需的时间,并合并成新的DataFrame。

3.2 情感分析

在数据类型转换完毕后,将按照影片上映前、上映7天内以及上映7天后进行时间划分,并计算出每个时间段内的观众的情感趋势。对影片上映前分析代码如下:

beforeReleaseComments = df.query('commentTime<releaseTime')

beforeRelease = beforeReleaseComments.groupby(by="movieUniqueId").mean()['positive_prob']

对影片上映7天内分析代码如下:

in7Comments = ddff.query('commentTime<=release7Time')

in7= in7Comments.groupby(by="movieUniqueId").mean()['positive_prob']

对影片上映7天后分析代码如下:

after7Comments = ddff.query('commentTime>release7Time')

after7 = after7Comments.groupby(by="movieUniqueId").mean()['positive_prob']

最后将分析的数据,按照电影名称进行分类并存储备用,以便后续预测所需。

参考文献:

[1]罗捷.基于电影评价的进口影片票房预测研究[D].重庆:重庆大学,2015.

[2]张红,张海悦,王萃.基于文本情感分析的类型电影受众特征与偏好研究[J].现代电影技术.2019,(11).

[3]孟梅.基于BERT-TextCNN-B的电影评论情感分析[D].上海:上海师范大学,2021.

基金项目:校级教学研究项目(2020Y03)

作者简介:罗旋(1983-),女,湖北武汉人,讲师,硕士,主要研究方向为大数据技术、软件工程。

猜你喜欢
情感分析
面向应用比较的用户评论挖掘工具的设计与实现
基于微博文本的情感倾向分析
基于word2vec扩充情感词典的商品评论倾向分析
基于语义的互联网医院评论文本情感分析及应用
基于双向循环神经网络的评价对象抽取研究
基于SVM的产品评论情感分析系统的设计与实现
基于词典与机器学习的中文微博情感分析
在线评论情感属性的动态变化
歌曲《我的深情为你守候》的情感分析与演唱诠释
文本观点挖掘和情感分析的研究