摘要:對(duì)豆瓣電影評(píng)論的情感分析,可以幫助后續(xù)電影票房的預(yù)測。調(diào)用百度情感分析API,將按照電影上映時(shí)間劃分,計(jì)算出每個(gè)時(shí)間段內(nèi)的觀眾的情感趨勢。
關(guān)鍵詞:電影評(píng)論;情感分析;百度API
中圖分類號(hào):TP391.1 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言
電影評(píng)論反映了觀眾對(duì)影片的認(rèn)同程度,在電影消費(fèi)行為上起著決定性的指導(dǎo)作用,它可以給未觀影者提供一種情感的導(dǎo)向參考,也給電影制作及發(fā)行方提供了參考方向,對(duì)電影票房產(chǎn)生了各種各樣的影響[1,2]。
首先需要從豆瓣網(wǎng)爬取每個(gè)電影評(píng)論的相關(guān)信息[3],每個(gè)電影評(píng)論大概是200條。再通過調(diào)用百度情感文本分析API對(duì)每條評(píng)論進(jìn)行分析,通過調(diào)用會(huì)返回相關(guān)的JSON格式字符串。通過對(duì)字符串內(nèi)容的分析得出每部電影在上映前用戶、上映7天內(nèi)以及上映7天后評(píng)論的情感趨勢。這里的情感趨勢指的是評(píng)論文字所持態(tài)度的可能性。例如1代表的積極,0.5代表中性,0代表消極。在0-1之間的數(shù)就代表了相關(guān)程度。例如0.9代表很積極,0.75代表一般積極,0.1代表消極。
2 調(diào)用百度API
2.1 百度API介紹
對(duì)只包含單一主體主觀信息的文本,進(jìn)行自動(dòng)情感傾向性判斷(積極、消極、中性),并給出相應(yīng)的置信度。為口碑分析、話題監(jiān)控、輿情分析等應(yīng)用提供基礎(chǔ)技術(shù)支持,同時(shí)支持用戶自行定制模型效果調(diào)優(yōu)。
2.2 安裝API Python SDK
對(duì)于一般的請(qǐng)求來說,需要通過URL進(jìn)行手動(dòng)請(qǐng)求。但是,此處使用的是Python語言。百度對(duì)Python語言的請(qǐng)求接口做了封裝,因此只需對(duì)SDK進(jìn)行pip下載即可使用內(nèi)置包。如果已安裝pip,執(zhí)行pip install baidu-aip即可,如果需要使用HTTP2,請(qǐng)安裝pip install baidu-aip-http2。如果已安裝setuptools,執(zhí)行python setup.py install即可。
2.3 新建AipNlp
AipNlp是百度大腦自然語言處理的Python SDK客戶端,為使用自然語言處理的開發(fā)人員提供了一系列的交互方法。編寫如下代碼,可新建一個(gè)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在百度云控制臺(tái)中創(chuàng)建,常量API_KEY與SECRET_KEY是在創(chuàng)建完畢應(yīng)用后,系統(tǒng)分配給用戶的,均為字符串,用于標(biāo)識(shí)用戶,為訪問做簽名驗(yàn)證,可在AI服務(wù)控制臺(tái)中的應(yīng)用列表中查看。
情感分析API對(duì)包含主觀觀點(diǎn)信息的文本進(jìn)行情感極性類別(積極、消極、中性)的判斷,并給出相應(yīng)的置信度。調(diào)用百度情感傾向分析API的代碼如下:
client = BaiDuCutWord.getAPI()
調(diào)用API進(jìn)行分析如下:
res = client.sentimentClassify(text);
其中text是請(qǐng)求參數(shù),為String類型文本內(nèi)容(GBK編碼)。
把分析數(shù)據(jù)保存如下:
SingleItem['emotions']= res
3 對(duì)返回參數(shù)分析
3.1數(shù)據(jù)類型轉(zhuǎn)換
將數(shù)據(jù)從數(shù)據(jù)庫中以DataFrame形式加載至內(nèi)存以便后續(xù)分析。由于原始數(shù)據(jù)的時(shí)間是字符串形式,為了方便后續(xù)使用DataFrame的query查詢,需要做前期準(zhǔn)備,將字符串類型轉(zhuǎn)換成datatime64[ns]類型。利用datetime的timedelta對(duì)時(shí)間進(jìn)行操作,計(jì)算出所需的時(shí)間,并合并成新的DataFrame。
3.2 情感分析
在數(shù)據(jù)類型轉(zhuǎn)換完畢后,將按照影片上映前、上映7天內(nèi)以及上映7天后進(jìn)行時(shí)間劃分,并計(jì)算出每個(gè)時(shí)間段內(nèi)的觀眾的情感趨勢。對(duì)影片上映前分析代碼如下:
beforeReleaseComments = df.query('commentTime<releaseTime')
beforeRelease = beforeReleaseComments.groupby(by="movieUniqueId").mean()['positive_prob']
對(duì)影片上映7天內(nèi)分析代碼如下:
in7Comments = ddff.query('commentTime<=release7Time')
in7= in7Comments.groupby(by="movieUniqueId").mean()['positive_prob']
對(duì)影片上映7天后分析代碼如下:
after7Comments = ddff.query('commentTime>release7Time')
after7 = after7Comments.groupby(by="movieUniqueId").mean()['positive_prob']
最后將分析的數(shù)據(jù),按照電影名稱進(jìn)行分類并存儲(chǔ)備用,以便后續(xù)預(yù)測所需。
參考文獻(xiàn):
[1]羅捷.基于電影評(píng)價(jià)的進(jìn)口影片票房預(yù)測研究[D].重慶:重慶大學(xué),2015.
[2]張紅,張海悅,王萃.基于文本情感分析的類型電影受眾特征與偏好研究[J].現(xiàn)代電影技術(shù).2019,(11).
[3]孟梅.基于BERT-TextCNN-B的電影評(píng)論情感分析[D].上海:上海師范大學(xué),2021.
基金項(xiàng)目:校級(jí)教學(xué)研究項(xiàng)目(2020Y03)
作者簡介:羅旋(1983-),女,湖北武漢人,講師,碩士,主要研究方向?yàn)榇髷?shù)據(jù)技術(shù)、軟件工程。