簡(jiǎn)書用戶畫像 之 如何挖掘用戶的電影喜好

《簡(jiǎn)書用戶畫像 之 如何挖掘用戶的電影喜好》

摘要

我在《爬取簡(jiǎn)書百萬(wàn)頁(yè)面 分析簡(jiǎn)書用戶畫像》 中分析了簡(jiǎn)書用戶的書籍喜好跟衅,這里繼續(xù)嘗試通過(guò)簡(jiǎn)書影評(píng)文章的抓取苗膝、內(nèi)容清洗止毕、影評(píng)句子提取尝盼,建立機(jī)器學(xué)習(xí)情緒預(yù)測(cè)模型吞滞,挖掘分析簡(jiǎn)書用戶對(duì)流行電影的喜好。

涉及的技術(shù)點(diǎn)/知識(shí)點(diǎn)

涉及的NLP(自然語(yǔ)言處理)知識(shí)點(diǎn):

  • 中文分詞
  • 關(guān)鍵詞提取
  • 文本相似度
  • 中心句提取
  • 情緒識(shí)別

涉及的ML(機(jī)器學(xué)習(xí))知識(shí)點(diǎn):

  • 有監(jiān)督分類
  • 數(shù)據(jù)不平衡問(wèn)題

大綱

  • 數(shù)據(jù)源
  • 難點(diǎn)問(wèn)題
    • 難點(diǎn)1:電影名稱識(shí)別
    • 難點(diǎn)2:評(píng)論句提取
    • 難點(diǎn)3:文本的情緒識(shí)別
    • 難點(diǎn)4:如何評(píng)估預(yù)測(cè)結(jié)果的準(zhǔn)確性
  • 總結(jié)

意欲何為 - 沒有評(píng)分機(jī)制時(shí)盾沫,如何判定用戶對(duì)電影的喜惡裁赠?

電影的拍攝成本高、票價(jià)也不低赴精,消費(fèi)者投入的關(guān)注度和觀看成本高(最終的投入成本是包括注意力投入佩捞、金錢投入、時(shí)間投入和感情投入)蕾哟。

簡(jiǎn)單算下觀看一部電影的成本(步驟):先看下預(yù)告內(nèi)容一忱,做下同期上映電影的比較,覺得導(dǎo)演渐苏、演員陣容都不錯(cuò)掀潮,下定決心要看了,跟男/女友/老婆 /老公/基友/閨密做推薦琼富,推薦成功后去選座買票,觀影當(dāng)天說(shuō)不定還得先吃個(gè)飯庄新,飯后乖乖的在影院呆上90分鐘(關(guān)鍵時(shí)刻還得憋尿)鞠眉,觀影結(jié)束后指不定還得來(lái)個(gè)夜宵、開個(gè)房間探討下人生什么的择诈。械蹋。。

讀一本書的成本(步驟):1.打開書/電子閱讀器/手機(jī)羞芍;2. 讀哗戈!

這樣對(duì)比看一部電影比讀一本書的投入成本高多了!

因此觀眾給出的反饋?zhàn)匀灰脖葧畷?huì)強(qiáng)烈一些荷科,特別是滿懷期待看完卻發(fā)現(xiàn)是一部爛片唯咬,有種上當(dāng)受騙的感覺。

因此對(duì)電影光是通過(guò)詞頻作為喜好度是不夠的畏浆,用戶可能反復(fù)的在罵呢胆胰。

所以需要引入多一個(gè)分析的因子:情緒。用戶提及某個(gè)電影時(shí)的情緒是怎么樣的刻获,是積極愉悅蜀涨、還是負(fù)面憤怒,加上這個(gè)才能有效判定用戶對(duì)電影或者某個(gè)事物的喜好。

如何得之 - 如何得到用戶的情緒厚柳?

在豆瓣上氧枣,用戶的評(píng)分就是最直接的情緒數(shù)值:5力薦,4推薦别垮,3還行便监,2較差,1很差宰闰。
但在簡(jiǎn)書這類寫作平臺(tái)上茬贵,發(fā)布文章時(shí)是沒有一個(gè)選項(xiàng)來(lái)填寫分?jǐn)?shù),也沒提供選擇心情的選項(xiàng)移袍。

“所言即其所思”解藻,這是普遍人性。每個(gè)用戶寫下的文字表達(dá)想法葡盗,在字里行間都會(huì)不經(jīng)意的使用一些情緒用詞來(lái)表達(dá)螟左,這些便是我可以獲取的“原始數(shù)據(jù)”。

得之何用 - 情緒分析用途觅够?

精準(zhǔn)推薦胶背!用戶談?wù)摰枚嗟臇|西未必是TA所喜愛的,也許是TA痛恨的(比如說(shuō)前任)喘先。如果用戶在自己大力差評(píng)某部電影的文章底部看到另一部相似爛片的推薦钳吟,推薦文案還寫著“親,我猜你還喜歡看這些”窘拯,估計(jì)這用戶會(huì)有種吃了蒼蠅剛吐出來(lái)發(fā)現(xiàn)迎面又飛來(lái)幾只的感覺红且。

通過(guò)用戶在討論某事物時(shí)上下文的情緒分析,來(lái)判斷對(duì)該事物的喜惡涤姊,將預(yù)測(cè)結(jié)果加入對(duì)事物的打分計(jì)算中暇番,最后得出一個(gè)可量化、可計(jì)算的分?jǐn)?shù)值思喊,便是一個(gè)精準(zhǔn)推薦系統(tǒng)的需要解決的問(wèn)題壁酬。

如何為之 - 怎么做?

理論上只需要一句話:要識(shí)別出文章中提及的電影恨课,以及作者對(duì)該電影的評(píng)論舆乔,是好評(píng)還是差評(píng),作為文章作者對(duì)該電影的喜惡庄呈,并根據(jù)評(píng)論的情緒強(qiáng)烈程度轉(zhuǎn)化為喜惡程度即可蜕煌。

那實(shí)際上,就要解決以下問(wèn)題:

  • 難點(diǎn)1:電影名稱識(shí)別
  • 難點(diǎn)2:評(píng)論句提取
  • 難點(diǎn)3:文本的情緒識(shí)別
  • 難點(diǎn)4:如何評(píng)估預(yù)測(cè)結(jié)果的準(zhǔn)確率

下面逐一細(xì)說(shuō)诬留。


數(shù)據(jù)來(lái)源

我采集了簡(jiǎn)書上幾個(gè)比較受歡迎的電影專題以及一個(gè)大V帳號(hào)文章(數(shù)據(jù)截止至采集數(shù)據(jù)時(shí)):

但由于簡(jiǎn)書對(duì)專題頁(yè)面加了訪問(wèn)限制盒刚,每個(gè)專題只能訪問(wèn)到最新的200個(gè)列表頁(yè)面腺劣,因而每個(gè)專題可獲取2~3000篇文章,以此作為抽樣數(shù)據(jù)樣本因块。

抓取頁(yè)面報(bào)告

難點(diǎn)問(wèn)題

難點(diǎn)1:電影名稱識(shí)別

要分析對(duì)電影的評(píng)價(jià)橘原,首先就要獲取到文章中提到電影名稱有哪些,最簡(jiǎn)單的匹配規(guī)則便是提取書名號(hào)《》內(nèi)的內(nèi)容涡上。

而實(shí)際獲取到的電影名稱真可謂“臟亂差”趾断,有電影名、書籍名吩愧、文章名等芋酌,有些電影名稱會(huì)用縮寫引用(如《變1》、《復(fù)聯(lián)》雁佳、《生化危機(jī)4/5/6》)脐帝,或者中英文混合在一起(如《機(jī)器人總動(dòng)員(wall-e)》),甚至還有錯(cuò)漏別字(如《那些年糖权,我們一起追過(guò)的女孩》堵腹,多了個(gè)“過(guò)”字),以及包含中英文特殊標(biāo)點(diǎn)空白符號(hào)等星澳,例如:

因此需要進(jìn)行一輪“數(shù)據(jù)大清洗”疚顷,我使用如下清洗策略:

  1. 提取文章中所有書名號(hào)《》中包含的文本
  2. 去掉其中為鏈接、文章標(biāo)題(句子中包含“文章|寫過(guò)”等字眼的)禁偎、書名(句子中包含“本書|書中|那本...”等字眼的)
  3. 構(gòu)建電影專用詞典荡含,并使用文本相似性算法查找出與電影詞典最相似的一個(gè)名稱
  4. 構(gòu)建電影停用詞典,去掉停用詞典里包含的內(nèi)容
  5. 使用匹配規(guī)則届垫,統(tǒng)一標(biāo)點(diǎn)符號(hào)、去掉空白字符全释、中英文名稱分離装处、系列名分離
  6. 去重

構(gòu)建電影專用詞典

其中“電影專用詞典”,是通過(guò)采集了「貓眼 影片總票房排行榜」2000~2017年間上榜的所有電影浸船,約有3000+部妄迁,如圖:

再根據(jù)文章中所收集到的電影名稱的候選文本,抓取「豆瓣網(wǎng)」的官方電影名字(遭遇了豆瓣業(yè)內(nèi)聞名的反爬策略就不多說(shuō)了)李命,合并去重后約有8400多部登淘。看一眼才發(fā)現(xiàn)好多電影連聽都沒聽過(guò)封字,有些電影名稱還挺有趣黔州,以后有時(shí)間還可以做下電影名稱的分析耍鬓。

電影名稱糾錯(cuò)

為了解決錯(cuò)別字,我通過(guò)文本相似性算法流妻,在電影專用詞典里找出與之最相似名稱牲蜀。

知名的相似算法有不少,如:

  • jaro_distance
  • ngram_distance
  • levenshtein_distance
  • damerau_levenshtein_distance

經(jīng)過(guò)簡(jiǎn)單比較绅这,我選擇了其中表現(xiàn)最好的jaro_winkler_distance

# e.g.: str_edit_distance("加勒比海盜五:死無(wú)對(duì)證") # => ["加勒比海盜5:死無(wú)對(duì)證", 0.9754]

jaro_winkler_distance(str1, str2).round(4) # 0.9754, best
jaro_distance(str1, str2).round(4) # 0.9589
ngram_distance(str1, str2).round(4) # => 0.9091
normalized_levenshtein_distance(str1, str2).round(4) # => 0.7273
normalized_damerau_levenshtein_distance(str1, str2).round(4) # => 0.7273

運(yùn)用到文章內(nèi)容上涣达,可得到相似電影名稱,感覺效果還可以:

構(gòu)建Pipeline

構(gòu)建一個(gè)Pipeline用于提取頁(yè)面中電影名稱证薇,對(duì)單個(gè)頁(yè)面測(cè)試效果如下:

運(yùn)用到所有頁(yè)面上:

至此完成了電影名稱的提取度苔、清洗,得出每篇文章提及的電影名稱浑度,如圖:


難點(diǎn)2:評(píng)論句提取

判斷一篇文章的情緒寇窑,最簡(jiǎn)單的做法是通過(guò)提取所有情緒詞來(lái)統(tǒng)計(jì)下詞頻及其權(quán)重可得到一個(gè)粗糙的結(jié)果,但這樣的結(jié)果對(duì)“影評(píng)”類文章不是很準(zhǔn)確俺泣。

根據(jù)觀察疗认,一篇電影評(píng)論文章中,往往會(huì)有大段的電影情節(jié)描述伏钠,然后夾雜一兩句評(píng)論横漏。而有些電影本身劇情就是比較負(fù)面、陰暗的(如災(zāi)難片類的)熟掂,但影片本身質(zhì)量很高(如《釜山行》缎浇,豆瓣評(píng)分8.2),如果文章內(nèi)容包含大量的劇情描述赴肚,那么得到關(guān)鍵詞會(huì)偏向于負(fù)面情緒素跺,并不能用于表達(dá)出作者對(duì)電影的喜好情緒。

因此我使用了這樣的提取策略:

  1. 跳過(guò)電影名稱多于一個(gè)的文章(不確定因素太多)
  2. 直接相關(guān)語(yǔ)句子:包含電影名的句子
  3. 間接相關(guān)句子:包含點(diǎn)評(píng)詞語(yǔ)的句子誉券,如:“這部電影|豆瓣評(píng)分|總的來(lái)說(shuō)|看完之后|電影結(jié)束|個(gè)人感受...”等等
  4. 總結(jié)性段落:文章標(biāo)題和文章最后段落

評(píng)論句子提取的結(jié)果示例如下:

demo 1
demo 2

這樣的策略對(duì)有些內(nèi)容不是很適用指厌,例如這樣的標(biāo)題:《同樣是豆瓣9.2分,它或許比《摔跤吧踊跟!爸爸》更深》踩验,這是典型的“借勢(shì)營(yíng)銷”型文案,文章內(nèi)容中推介的是另外一部韓國(guó)電影《熔爐》商玫,而時(shí)下《摔跤吧箕憾!爸爸》正熱,標(biāo)題中帶上這個(gè)會(huì)更吸引用戶點(diǎn)擊拳昌。

另外一個(gè)思路是對(duì)文章進(jìn)行摘要提取寂祥,然后對(duì)摘要進(jìn)行情緒識(shí)別照棋。而對(duì)于文章的主題提取,可以使用在ML算法中的用于解決主題模型問(wèn)題的算法(如LDA)敬辣,但不確定是否適合影評(píng)這種混合了大量劇情描述的文章內(nèi)容。

難點(diǎn)3:文本的情緒識(shí)別

得到相關(guān)評(píng)論文本后,便可對(duì)文本進(jìn)行分詞及情緒識(shí)別,這里有兩種做法,一是使用帶有情緒情感度的專業(yè)詞典并闲,配合專有算法;另外一種是使用機(jī)器學(xué)習(xí)算法谷羞。

使用專業(yè)詞典

一開始我使用了大連理工大學(xué)的《大連理工情感詞匯本體庫(kù)》帝火,是目前最權(quán)威的中文情緒詞典,共含有情感詞共計(jì)27466個(gè)湃缎,包含了詞語(yǔ)的詞性種類犀填、情感類別、情感強(qiáng)度及極性等信息嗓违,例如:

詞語(yǔ) 詞性種類 詞義數(shù) 詞義序號(hào) 情感分類 強(qiáng)度 極性 輔助情感分類 強(qiáng)度 極性
無(wú)所畏懼 idiom 1 1 PH 7 1
手頭緊 idiom 1 1 NE 7 0
周到 adj 1 1 PH 5 1
言過(guò)其實(shí) idiom 1 1 NN 5 2

中文情感詞匯本體的情感分類體系是在國(guó)外比較有影響的Ekman的6大類情感分類體系的基礎(chǔ)上構(gòu)建的九巡。在Ekman的基礎(chǔ)上,詞匯本體加入情感類別“好”對(duì)褒義情感進(jìn)行了更細(xì)致的劃分蹂季。最終詞匯本體中的情感共分為7大類21小類冕广,如圖:

把情感詞典加入分詞詞典,對(duì)候選每個(gè)句子進(jìn)行分詞偿洁,得出情感詞組撒汉,并累加每個(gè)情感詞的強(qiáng)度值作為句子的情感值。

但經(jīng)過(guò)測(cè)試后涕滋,發(fā)現(xiàn)預(yù)測(cè)效果并不理想睬辐,究其原因發(fā)現(xiàn)是情感詞典中命中的詞語(yǔ)太少,在句子中得不到相關(guān)詞語(yǔ)宾肺,也就無(wú)法判斷情感極性和強(qiáng)度溯饵。

使用情感詞典的測(cè)試結(jié)果:

而專業(yè)詞典的擴(kuò)展需要專業(yè)領(lǐng)域知識(shí),擴(kuò)展起來(lái)很困難锨用,我目前沒找到更新的專業(yè)詞典丰刊,國(guó)內(nèi)這塊的資料相當(dāng)匱乏,而國(guó)外有個(gè)知名的SentiWordNet庫(kù)增拥,中文NLP研究的難度系數(shù)可想而知藻三。

使用機(jī)器學(xué)習(xí)

鑒于情感詞典的資源限制,決定嘗試使用機(jī)器學(xué)習(xí)來(lái)對(duì)文本做正跪者、負(fù)面情緒預(yù)測(cè)。

1). 構(gòu)建分詞詞典:

分詞需要構(gòu)建專用領(lǐng)域的詞典熄求,這樣得到的分詞結(jié)果才會(huì)更精確渣玲。

因?yàn)橹恍枰姓?fù)情感類別、不需要有情感強(qiáng)度及極性等信息弟晚,我使用了網(wǎng)絡(luò)上公開的一些情感詞典忘衍,:

“正面情感”詞語(yǔ)搀捷,如:愛星掰,贊賞,快樂嫩舟,感同身受氢烘,好奇,喝彩家厌,魂?duì)繅?mèng)縈播玖,嘉許 ...
“負(fù)面情感”詞語(yǔ),如:哀傷饭于,半信半疑蜀踏,鄙視,不滿意掰吕,不是滋味兒果覆,后悔,大失所望 ...
“正面評(píng)價(jià)”詞語(yǔ)畴栖,如:不可或缺随静,部?jī)?yōu),才高八斗吗讶,沉魚落雁燎猛,催人奮進(jìn),動(dòng)聽照皆,對(duì)勁兒 ...
“負(fù)面評(píng)價(jià)”詞語(yǔ)重绷,如:丑,苦膜毁,超標(biāo)昭卓,華而不實(shí),荒涼瘟滨,混濁候醒,畸輕畸重,價(jià)高杂瘸,空洞無(wú)物 ...

合并倒淫、清洗和去重后,最終構(gòu)建出了14000+個(gè)詞的積極情緒詞典败玉,18000+個(gè)詞的消極情緒詞典敌土。

積極詞典:

消極詞典:

2). 準(zhǔn)備訓(xùn)練語(yǔ)料

從網(wǎng)上搜集到幾個(gè)帶有積極镜硕、消極的標(biāo)注的評(píng)論語(yǔ)料數(shù)據(jù)集,分別包含了書籍返干、DVD兴枯、音樂、購(gòu)物領(lǐng)域的各有4000條評(píng)論矩欠,如下圖:

可惜沒找到中文影評(píng)相關(guān)的語(yǔ)料财剖,但找到國(guó)外英文的影評(píng)語(yǔ)料 ,對(duì)晚顷,英文資料很豐富峰伙。。该默。

3). 訓(xùn)練模型

由于是文本型特征瞳氓,分類算法上選擇了樸素貝葉斯,把數(shù)據(jù)分為2份栓袖,一半訓(xùn)練匣摘,另一半做測(cè)試。

使用jieba分詞工具裹刮,對(duì)文本進(jìn)行分詞得到候選詞組音榜,把得到的詞組作為特征輸入來(lái)訓(xùn)練情緒預(yù)測(cè)模型。

訓(xùn)練后的模型測(cè)試結(jié)果如下:

Classifier stats:
{:categories=>["positive", "negative"],
 :category_stats=>
  "For category positive, 20731 examples (47.94% of the total) and 144306 total_tokens\n" +
  "For category negative, 22512 examples (52.06% of the total) and 91796 total_tokens",
 :total_examples=>43243,
 :train_times=>43243}

Run measure task for data_type=book
Loading test data for book
Test with 2000(2000~4000) comments for book
Progress(Time: 00:00:14)[2000/2000](100%):|========================================================================================================================|Time: 00:00:14
Measure scores:
{:tp=>796,
 :tn=>832,
 :fp=>181,
 :fn=>191,
 :precision=>0.815,
 :recall=>0.806,
 :f1_score=>0.81}
Accuracy:
Predict 1628 success of 2000, accuracy is 81.4% (?? Good)
Show details?(y/n):n
save correct_words?(y/n): n

Run measure task for data_type=music
Loading test data for music
Test with 2000(2000~4000) comments for music
Progress(Time: 00:00:12)[2000/2000](100%):|========================================================================================================================|Time: 00:00:12
Measure scores:
{:tp=>716,
 :tn=>910,
 :fp=>237,
 :fn=>137,
 :precision=>0.751,
 :recall=>0.839,
 :f1_score=>0.793}
Accuracy:
Predict 1626 success of 2000, accuracy is 81.3% (?? Good)
Show details?(y/n):n
save correct_words?(y/n): n

Run measure task for data_type=dvd
Loading test data for dvd
Test with 2000(2000~4000) comments for dvd
Progress(Time: 00:00:12)[2000/2000](100%):|========================================================================================================================|Time: 00:00:12
Measure scores:
{:tp=>791,
 :tn=>851,
 :fp=>229,
 :fn=>129,
 :precision=>0.775,
 :recall=>0.86,
 :f1_score=>0.815}
Accuracy:
Predict 1642 success of 2000, accuracy is 82.1% (?? Good)
Show details?(y/n):n
save correct_words?(y/n): n

Run measure task for data_type=shopping
Loading test data for shopping
Test with 2000(2000~4000) comments for shopping
Progress(Time: 00:00:11)[2000/2000](100%):|========================================================================================================================|Time: 00:00:11
Measure scores:
{:tp=>970,
 :tn=>751,
 :fp=>30,
 :fn=>249,
 :precision=>0.97,
 :recall=>0.796,
 :f1_score=>0.874}
Accuracy:
Predict 1721 success of 2000, accuracy is 86.1% (?? Good)
Show details?(y/n):n
save correct_words?(y/n): n

訓(xùn)練后的模型在書籍捧弃、音樂赠叼、影碟及購(gòu)物評(píng)論的語(yǔ)料上都有不錯(cuò)的效果。

在提取出的影評(píng)短句上測(cè)試:

又是“無(wú)聊”违霞、“又俗又傻”而一個(gè)“但”字就反轉(zhuǎn)了情緒嘴办,真是難為分類器了:

經(jīng)過(guò)反復(fù)對(duì)比實(shí)驗(yàn),發(fā)現(xiàn)語(yǔ)料的質(zhì)量決定了模型的精度买鸽,而語(yǔ)料的擴(kuò)展對(duì)比擴(kuò)展專業(yè)詞典卻容易多了涧郊。例如幾年前都沒有“因吹斯汀”這些網(wǎng)絡(luò)流行詞,更不知道它代表是正面情緒眼五,以后只要不斷更新相關(guān)領(lǐng)域的語(yǔ)料庫(kù)來(lái)重新訓(xùn)練則可得到更精確的模型妆艘。

難點(diǎn)4:如何評(píng)估預(yù)測(cè)結(jié)果的準(zhǔn)確性

俗話說(shuō)“是騾子是馬拉出來(lái)遛遛”。

得到一個(gè)預(yù)測(cè)情緒的模型后看幼,便可對(duì)影評(píng)文章進(jìn)行預(yù)測(cè)批旺,但預(yù)測(cè)的結(jié)果是否準(zhǔn)確?準(zhǔn)確率又有多高诵姜?這又是個(gè)問(wèn)題朱沃。

每當(dāng)事情陷入停滯,我就會(huì)想起日本漫畫大師安達(dá)充說(shuō)過(guò)“當(dāng)故事情節(jié)發(fā)展不下去的時(shí)候,加入一個(gè)新角色逗物,是最簡(jiǎn)單的做法”。

《秀逗方程式》Vol 1瑟俭、《村崎》—— 故事發(fā)展不下去的時(shí)候翎卓,就加個(gè)轉(zhuǎn)學(xué)生

這時(shí)需要祭出一個(gè)“旁證”了。這所謂的“旁證”摆寄,也就是目前大家比較認(rèn)可的電影評(píng)分網(wǎng)站——豆瓣網(wǎng)失暴。

引入“旁證”

大家都知道豆瓣網(wǎng)上的電影用戶通過(guò)打星(5力薦,4推薦微饥,3還行逗扒,2較差,1很差)欠橘,轉(zhuǎn)換得出的10分制的評(píng)分矩肩,我們可簡(jiǎn)單把14.9分視作負(fù)面評(píng)價(jià)、510分視作正面評(píng)價(jià)肃续,沒有分?jǐn)?shù)的視作中性評(píng)價(jià)黍檩。再把豆瓣的評(píng)價(jià)結(jié)果視作大部分人認(rèn)同的結(jié)果,當(dāng)然這樣肯定是有偏差的始锚。

大膽假設(shè)刽酱,小心求證,先試試看吧瞧捌。

根據(jù)電影名詞典再次去抓取豆瓣網(wǎng)上的電影信息棵里,這次包含了電影分?jǐn)?shù)::

使用獲取到的電影專題『簡(jiǎn)書電影院』文章內(nèi)容測(cè)試,結(jié)果如下:

1048篇中姐呐,豆瓣評(píng)分結(jié)果與模型預(yù)測(cè)符合的有974篇殿怜,準(zhǔn)確率是92.9%,WOW皮钠!真的這么準(zhǔn)嗎稳捆?

看下詳細(xì)結(jié)果,豆瓣評(píng)分是正面的有1022條麦轰,預(yù)測(cè)對(duì)了973篇乔夯,例如:

而豆瓣評(píng)分是負(fù)面的有28條記錄,而模型只預(yù)測(cè)出1篇是負(fù)面的:

真的是模型預(yù)測(cè)錯(cuò)了嗎款侵?

從負(fù)面例子中抽樣看看模型分解的結(jié)果:

評(píng)論《麻煩家族》(豆瓣評(píng)分4.8)的:

從自動(dòng)摘要出來(lái)的句子來(lái)看末荐,實(shí)際上文章作者表現(xiàn)出正面情緒,模型預(yù)測(cè)為正面新锈,預(yù)測(cè)正確 ??甲脏。

再看評(píng)論同一部電影的另外一個(gè)文章的評(píng)論:

作者顯然是給了個(gè)差評(píng),但模型給了出的預(yù)測(cè)是正面,預(yù)測(cè)錯(cuò)誤 ??块请。

校驗(yàn)“旁證”

負(fù)例的預(yù)測(cè)準(zhǔn)確率低娜氏,有兩個(gè)原因,一個(gè)是豆瓣評(píng)分正負(fù)標(biāo)準(zhǔn)的閥值設(shè)定不夠精準(zhǔn)墩新,二是訓(xùn)練數(shù)據(jù)不平衡贸弥。

之前使用的閥值策略是:“簡(jiǎn)單把14分視作負(fù)面評(píng)價(jià)、510分視作正面評(píng)價(jià)海渊,沒有分?jǐn)?shù)的視作中性評(píng)價(jià)”绵疲。

我猜測(cè)在4~5分這個(gè)區(qū)間應(yīng)該是灰度地帶,正負(fù)面評(píng)論都會(huì)有臣疑。為了驗(yàn)證這個(gè)猜想盔憨,使用獲取到的所有豆瓣電影分?jǐn)?shù),導(dǎo)入數(shù)據(jù)分析工具中讯沈,排除掉沒有分?jǐn)?shù)的條目后得到6500+條電影數(shù)據(jù)郁岩,其中最低是2.1,最高是9.7芙盘。

查看評(píng)分分布的直方圖與比例餅圖:

調(diào)整區(qū)間閥值驯用,把2.1-4.9 劃分為一個(gè)區(qū)間,系統(tǒng)自動(dòng)分成了3組分值:

發(fā)現(xiàn)5分以下電影僅占12%儒老。

從評(píng)分分布結(jié)果看蝴乔,在簡(jiǎn)書上大部分人寫文章是針對(duì)高分(好評(píng))電影為主,低分(差評(píng))電影的文章數(shù)量很少驮樊,從提取出來(lái)的數(shù)據(jù)量看薇正,兩者比率約為100:3。

解決數(shù)據(jù)不平衡問(wèn)題

訓(xùn)練數(shù)據(jù)不平衡導(dǎo)致正例過(guò)擬合囚衔,而負(fù)例欠擬合挖腰。

要解決數(shù)據(jù)不平衡問(wèn)題,可以重新采樣訓(xùn)練集练湿。有兩種方法使不平衡的數(shù)據(jù)集來(lái)建立一個(gè)平衡的數(shù)據(jù)集——欠采樣和過(guò)采樣猴仑,解釋如下:

欠采樣:

欠采樣是通過(guò)減少豐富類的大小來(lái)平衡數(shù)據(jù)集,當(dāng)數(shù)據(jù)量足夠時(shí)就該使用此方法肥哎。通過(guò)保存所有稀有類樣本辽俗,并在豐富類別中隨機(jī)選擇與稀有類別樣本相等數(shù)量的樣本,可以檢索平衡的新數(shù)據(jù)集以進(jìn)一步建模篡诽。

過(guò)采樣:

相反崖飘,當(dāng)數(shù)據(jù)量不足時(shí)就應(yīng)該使用過(guò)采樣,它嘗試通過(guò)增加稀有樣本的數(shù)量來(lái)平衡數(shù)據(jù)集杈女,而不是去除豐富類別的樣本的數(shù)量朱浴。通過(guò)使用重復(fù)吊圾、自舉或合成少數(shù)類過(guò)采樣等方法(SMOTE)來(lái)生成新的稀有樣品。

由于訓(xùn)練數(shù)據(jù)不多翰蠢,我使用了過(guò)采樣中的自舉方案项乒。我將另外一個(gè)簡(jiǎn)書的電影專題『影視天堂』中模型預(yù)測(cè)結(jié)果與豆瓣評(píng)分結(jié)果一致的內(nèi)容作為訓(xùn)練數(shù)據(jù)集來(lái)強(qiáng)化訓(xùn)練模型:

然后再對(duì)電影專題『簡(jiǎn)書電影院』測(cè)試一次:

負(fù)例的準(zhǔn)確率改善了一些些,這說(shuō)明效果是有的梁沧,以后只需繼續(xù)獲取到新的數(shù)據(jù)再“喂”給模型板丽,模型預(yù)測(cè)結(jié)果會(huì)越來(lái)越精準(zhǔn)。

總結(jié)

至此趁尼,得到一個(gè)不算成熟的電影情緒預(yù)測(cè)模型,可以用來(lái)做一些有趣的統(tǒng)計(jì)分析了猖辫。

專題分析

將『影視天堂』專題的分析結(jié)果在數(shù)據(jù)分析工具上進(jìn)行數(shù)據(jù)可視化展示酥泞,得到一個(gè)「長(zhǎng)尾圖」:

簡(jiǎn)書-影視天堂-專題-電影喜惡分析

從報(bào)表中可得到這些信息:

  • 最多人關(guān)注的影視作品前5是《歡樂頌》、《歡樂頌2》啃憎、《神奇女俠》芝囤、《白鹿原》和《深夜食堂》
  • 最多人喜歡的是《歡樂頌》(豆瓣評(píng)分7.3)
  • 最多差評(píng)的卻是《歡樂頌2》(豆瓣評(píng)分5.3),看來(lái)觀眾的期望值被第一部放大了很多

注1:嚴(yán)格來(lái)說(shuō)《歡樂頌》不是電影而是電視劇作品辛萍,在用豆瓣網(wǎng)的數(shù)據(jù)構(gòu)建電影詞典時(shí)我沒有做嚴(yán)格區(qū)分

注2:專題的數(shù)據(jù)獲取是在5月份完成的悯姊,以及簡(jiǎn)書專題的最新收錄文章有訪問(wèn)限制,無(wú)法獲取到舊的文章贩毕,因此得到的當(dāng)時(shí)熱門影視作品的影評(píng)悯许,從而呈現(xiàn)出信息跟當(dāng)時(shí)熱播作品比較相關(guān) 

整體用戶分析

再對(duì)先前獲取到的1萬(wàn)個(gè)簡(jiǎn)書用戶的近60萬(wàn)篇文章內(nèi)容,運(yùn)行相應(yīng)的Pipeline進(jìn)行電影情緒數(shù)據(jù)的提取辉阶。

可視化數(shù)據(jù)后得到圖表:

現(xiàn)在可以看看先壕,簡(jiǎn)書上用戶給予好評(píng)的電影有哪些,使用「詞云圖」展示如下:

簡(jiǎn)書用戶給予差評(píng)的電影有哪些:

個(gè)體用戶分析

現(xiàn)在也可以精準(zhǔn)了解每一個(gè)簡(jiǎn)書用戶的電影口味了谆甜,以『毒舌電影 - 簡(jiǎn)書』 為例子:

注3:本文發(fā)表時(shí)簡(jiǎn)書上“毒舌電影”經(jīng)歷過(guò)被封事件后已改名為“Sir電影”垃僚;簡(jiǎn)書專題“影視天堂”已改名為“簡(jiǎn)書電影”

以后做電影個(gè)性化推薦可就不要推薦錯(cuò)了 ??。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末规辱,一起剝皮案震驚了整個(gè)濱河市谆棺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罕袋,老刑警劉巖改淑,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炫贤,居然都是意外死亡溅固,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門兰珍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)侍郭,“玉大人,你說(shuō)我怎么就攤上這事×猎” “怎么了猛计?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)爆捞。 經(jīng)常有香客問(wèn)我奉瘤,道長(zhǎng),這世上最難降的妖魔是什么煮甥? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任盗温,我火速辦了婚禮,結(jié)果婚禮上成肘,老公的妹妹穿的比我還像新娘卖局。我一直安慰自己,他們只是感情好双霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布砚偶。 她就那樣靜靜地躺著,像睡著了一般洒闸。 火紅的嫁衣襯著肌膚如雪染坯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天丘逸,我揣著相機(jī)與錄音单鹿,去河邊找鬼。 笑死鸣个,一個(gè)胖子當(dāng)著我的面吹牛羞反,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播囤萤,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼昼窗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了涛舍?” 一聲冷哼從身側(cè)響起澄惊,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎富雅,沒想到半個(gè)月后掸驱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡没佑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年毕贼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛤奢。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鬼癣,死狀恐怖陶贼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情待秃,我是刑警寧澤拜秧,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站章郁,受9級(jí)特大地震影響枉氮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜暖庄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一聊替、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧培廓,春花似錦佃牛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)象缀。三九已至蔬将,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間央星,已是汗流浹背霞怀。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莉给,地道東北人毙石。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像颓遏,于是被迫代替她去往敵國(guó)和親徐矩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在本文中我會(huì)嘗試如何從0數(shù)據(jù)開始到獲取百萬(wàn)頁(yè)面叁幢,進(jìn)行用戶數(shù)據(jù)分析滤灯、建模,再數(shù)據(jù)信息化曼玩、可視化鳞骤,生成用戶畫像分析用戶...
    hirainchen閱讀 25,277評(píng)論 121 690
  • 導(dǎo)讀 用戶反饋文本,作為用戶問(wèn)題黍判、建議豫尽、態(tài)度的載體,對(duì)產(chǎn)品評(píng)估和改進(jìn)優(yōu)化極具價(jià)值顷帖。但作為非結(jié)構(gòu)化數(shù)據(jù)美旧,用戶反饋文本...
    橫雀閱讀 5,577評(píng)論 3 34
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • 前面的文章主要從理論的角度介紹了自然語(yǔ)言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)渤滞。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 13,867評(píng)論 2 64
  • 文/趙曉璃 作為一名財(cái)務(wù)人趴腋,之所以想談?wù)勥@個(gè)話題,是因?yàn)槭紫冗@個(gè)問(wèn)題也是很多人關(guān)心的论咏,具有一定的代表性优炬;其次不少文...
    趙曉璃閱讀 3,871評(píng)論 12 86