董學(xué)陽, 郜山權(quán), 劉 磊, 劉華虓
(1. 吉林大學(xué) 公共計算機教學(xué)與研究中心, 長春 130012; 2. 吉林大學(xué) 軟件學(xué)院, 長春 130012;3. 吉林大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 長春 130012)
近年來, 隨著世界電影行業(yè)的發(fā)展, 優(yōu)秀影片不斷涌現(xiàn), 觀影人數(shù)也越來越多. 由于每年都有大量的新影片上映, 因此如何從眾多影片中挑選出自己喜歡的影片成為眾多電影愛好者關(guān)心的問題. 閱讀影片評論是了解影片的有效渠道, 但僅通過簡單閱讀很難得到影片全面、準(zhǔn)確的信息[1-3]. 其原因是: 1) 一部影片下的評論數(shù)目通常很龐大, 難以全部閱讀; 2) 由于個人偏好等原因, 不同觀眾對同一影片的評價常充滿矛盾. 因此, 本文提出一種新的影片評論分析方法, 能個性化地為觀眾推薦喜愛的影片.
一部電影通常同時有幾個標(biāo)簽, 如action,culture,family等, 本文把每個標(biāo)簽作為影片的一個主題, 由于不同的觀眾喜好的方向有所不同, 因此對于同一部影片, 不同觀眾可能會關(guān)注不同的主題. 本文利用語義相似度方法關(guān)聯(lián)評論與主題, 把評論屬性引入到主題分析中[4-5]. 首先, 利用評論的屬性得到關(guān)于評論本身的滿意度值, 即評論發(fā)表者對電影的滿意度; 然后, 根據(jù)主題評估函數(shù)計算關(guān)聯(lián)到主題所有評論的滿意度值, 得到主題的滿意度; 最后, 根據(jù)觀眾的喜好為影片各主題設(shè)定權(quán)重, 獲得個性化評價. 根據(jù)評估結(jié)果, 為觀眾提供一個可供選擇的影片序列.
首先, 把電影發(fā)行者為電影所標(biāo)記的標(biāo)簽設(shè)定為主題, 如action,culture,story等, 并把主題進行擴展; 其次, 關(guān)聯(lián)主題與評論, 把評論的屬性引入主題分析中; 最后, 利用主題評估函數(shù)評估主題, 并為各主題設(shè)定權(quán)重, 最終得到影片的個性化評價.
1.1 確定主題并擴展主題 由于電影發(fā)行者為電影標(biāo)記的標(biāo)簽通常為一個詞匯, 導(dǎo)致設(shè)定的每個主題也只包含一個詞匯, 限制了與其直接關(guān)聯(lián)評論的數(shù)量, 影響后續(xù)評估的準(zhǔn)確性, 因此需要對每個主題進行擴展. 本文采用把評論中的相關(guān)詞匯添加到主題中進而擴展主題的方法. 首先, 選取待分析電影下一定數(shù)量的評論作為擴展評論集合; 然后, 抽取擴展評論集合中評論的名詞組成擴展詞匯集合; 最后, 利用基于wordnet的語義相似度計算方法計算擴展詞匯集合中的每個詞匯與各主題詞匯間的語義相似度[6-7], 并設(shè)定一個閾值, 若它們之間的相似度大于或等于閾值, 則認為它們是相關(guān)詞匯, 把該詞匯擴展到主題中. 從而每個主題便由一個詞匯變成一個詞匯的集合. 本文將主題形式化表示為以下形式:
定義1每個主題(T)可表示為一個二元組(word,wordset), 其中: word表示電影發(fā)行者為電影標(biāo)記的標(biāo)簽; wordset表示主題擴展后的詞匯集合.
1.2 關(guān)聯(lián)主題與評論 本文將評論形式化表示為以下形式:
定義2評論(rev)可表示為一個二元組(des,Attibution), 其中: des表示評論的文本描述; Attribution表示評論的屬性集合. Attribution集合中每個元素都是評論的一種屬性, 分析人員可根據(jù)需求選擇為屬性集合添加哪種屬性. 本文定義Attribution={time,rate}, time和rate分別表示評論時間與星級打分的分數(shù).
為了與主題進行關(guān)聯(lián)并支撐后續(xù)主題評分的分析, 本文對評論的文本描述及其中包含的用戶主觀感受進行分析. 首先, 利用SentiStrength情感分析工具分析des得到情感分數(shù)值senti[8-9], 加入到Attribution中, 評論的屬性集合變?yōu)閧time,rate,senti}; 其次, 抽取des中的所有名詞得到詞匯集合wordset, 把des替換成wordset, 作為與主題進行關(guān)聯(lián)的基礎(chǔ).
通過上述過程, 即可將評論rev重新形式化表示為(wordset,Attritbution), 其中wordset是評論詞匯集合, Attribution={time,rate,senti}. 通過計算詞匯間的語義相似度, 即可計算兩個詞匯集合間的相關(guān)度, 下面給出兩個詞匯集合間相關(guān)度計算的定義.
定義3Relatedegree(wordset1,wordset2)表示詞匯集合wordset1和wordset2間的相關(guān)度, 公式如下:
Relatedegree(wordseti,wordsetj)=max{Wordnet(wi,wj)|wi∈wordseti,wj∈wordsetj},
其中, Wordnet(wi,wj)表示利用Wordnet計算詞匯wi和wj的語義相似度, 任意的(wi,wj)屬于wordset1差乘wordset2, Relatedegree(wordset1,wordset2)表示利用Wordnet計算任意詞匯對中相似度數(shù)值最大一對詞匯的相似度數(shù)值.
評論rev中的rev.wordset與主題T中的詞匯集合T.wordset都是詞匯集合, 可通過計算rev.wordset與T.wordset的相關(guān)度, 即Relatedegree(rev.wordset,T.wordset), 計算評論與目標(biāo)的相關(guān)度. 設(shè)定一個閾值, 如果評論與目標(biāo)的相關(guān)度值大于或等于閾值, 就把評論關(guān)聯(lián)到主題下. 選取待分析電影下一定數(shù)量的評論, 把這些評論與主題進行關(guān)聯(lián), 完成關(guān)聯(lián)后, 每個主題都擁有一個關(guān)聯(lián)集合RRset.
定義4RRset是一個二元組集合, 其中每個二元組RR均可表示為(rev,RelateScore), 其中: rev表示關(guān)聯(lián)到該主題下的一條評論; RelateScore表示該評論與該主題的相關(guān)度值, 數(shù)值范圍為[0,1].
1.3 利用評估函數(shù)對主題進行評估 每條評論rev均有一個屬性集合Attribution={A1,A2,…,An}, 開發(fā)者可從每個屬性中直接或間接地得到觀眾對影片的滿意程度. 可根據(jù)屬性集合Attribution對評論進行量化, 得到發(fā)表該評論的觀眾對影片的滿意程度. 評論rev的滿意度計算公式為
SR(rev)=w1g1(A1)+w2g2(A2)+…+wngn(An),
本文中, Attribute={time,rate,senti}, 因為time屬性不影響滿意度, 因此不作為滿意度計算要素之一. 首先, 針對屬性senti, 定義其變換函數(shù)為
gsenti(senti)=(senti+5)/10,
senti的取值范圍是[-5,5], 經(jīng)過變換函數(shù)變換后,gsenti(senti)的取值范圍是[0,1], 完成歸一化處理, 方便與其他屬性間的聯(lián)合運算. 其次, 針對屬性rate, 定義其變換函數(shù)為
grate(rate)=(rate-1)/4,
rate的取值范圍是[1,5], 利用變換函數(shù)可對其進行歸一化處理, 使其能與其他屬性進行聯(lián)合運算. 本文給出的權(quán)重wsenti=0.4,wrate=0.6, 于是本文定義評論的量化公式為
SR(res)=0.4×gsenti(senti)+0.6×grate(rate).
評論量化完成后, 可基于量化后的評論對主題進行量化. 主題T完成與評論的關(guān)聯(lián)后, 得到關(guān)聯(lián)集合RRset={RR1,RR2,…,RRn}. 量化集合中的評論后, 再利用主題的滿意度評估函數(shù)計算主題的滿意度. 主題的滿意度評估函數(shù)為
主題的滿意度取值范圍是[0,1], 數(shù)值越大, 表示觀眾的滿意度越高.
通過上述操作, 得到各主題的滿意度值, 觀眾可根據(jù)自己的喜好為各主題設(shè)定權(quán)重, 最終得到影片的個性化評價, 計算公式為
FilmScore=w1×ST(T1)+w2×ST(T2)+…+wi×ST(Ti),
FilmScore的取值范圍為[0,1], 數(shù)值越大, 表示越可能推薦觀眾去觀影.
下面通過實驗對上述方法進行驗證. 從英文網(wǎng)站IMDB選擇5部較受歡迎且均包含“animation”,“action”,“comedy”,“family”這4個標(biāo)簽的電影作為實驗對象, 分別為《Captain Underpants》,《Wonder Woman》,《Baywatch》,《War Machine》和《Logan》, 對其進行分析. 本文分別從這5部電影下爬取2 983,1 986,2 543,2 243,3 006條對該影片的評論信息, 同時下載星級評論及發(fā)表時間. 下面以《Captain Underpants》為例, 介紹個性化評估過程.
IMDB為《Captain Underpants》標(biāo)記的標(biāo)簽包含“animation”,“action”,“comedy”、“family”, 這4個標(biāo)簽即為分析的4個主題. 首先, 選取《Captain Underpants》下的50條評論作為主題擴展的評論集合, 并根據(jù)本文描述的方法擴展主題, 擴展結(jié)果列于表1.
表1 主題擴展后的主題詞匯集合
擴展完主題后, 利用主題詞匯集合與評論詞匯集合間的相關(guān)度計算主題與評論間的相關(guān)度. 本文設(shè)定閾值為0.6, 即當(dāng)評論與主題的相關(guān)度值≥0.6時, 關(guān)聯(lián)成功, 把評論關(guān)聯(lián)到主題下. 實驗中, 每個主題關(guān)聯(lián)到的評論數(shù)目列于表2.
表2 各主題關(guān)聯(lián)到的評論數(shù)目
根據(jù)主題評估方法對每個主題進行評估, 各主題評估結(jié)果列于表3. 由表3可見, 觀眾對“animation”,“comedy”,“family”這3個主題較滿意, 而對“action”主題較不滿意.
表3 各主題的評估結(jié)果
為上述4個主題分別設(shè)定權(quán)重值0.2,0.4,0.3,0.1, 可得到關(guān)于影片《Captain Underpants》的個性化評估, 評估分數(shù)FilmScore=0.54. 同理, 可得其他影片的個性化評估結(jié)果, 分別為0.61,0.49,0.66和0.52. 因此, 可給出這5部電影的個性化排序, 并推薦給觀眾. 排序結(jié)果為《War Machine》,《Wonder Woman》,《Captain Underpants》,《Logan》,《Baywatch》.
綜上所述, 本文提出了一種基于評論的影片個性化推薦方法, 將影片標(biāo)簽作為主題對評論進行分類, 并根據(jù)觀眾感興趣程度為主題設(shè)定權(quán)重, 實現(xiàn)對影片的個性化評估, 按照評估結(jié)果為用戶提供一個可供選擇的影片序列. 本文以IMDB上的5部影片為例進行了實驗分析, 實驗結(jié)果表明, 該方法有效. 本文提出的方法除應(yīng)用在影片推薦中, 還可應(yīng)用到商品推薦等其他領(lǐng)域.