欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當前位置:首頁 > 軟件開放 > 正文內容

豆瓣電影數據可視化項目(豆瓣電影大數據分析)

軟件開放2年前 (2023-02-11)1140

本篇文章給大家談談豆瓣電影數據可視化項目,以及豆瓣電影大數據分析對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

數據可視化的設計步驟有哪些?

1、需求分析

需求分析是大數據可視化項目開展的前提,要描述項目背景與目的、業(yè)務目標、業(yè)務范圍、業(yè)務需求和功能需求等內容,明確實施單位對可視化的期望和需求。包括需要分析的主題、各主題可能查看的角度、需要發(fā)泄企業(yè)各方面的規(guī)律、用戶的需求等內容。

2、建設數據倉庫/數據集市的模型

數據倉庫/數據集市的模型是在需求分析的基礎上建立起來的。數據倉庫/數據集市建模除了數據庫的ER建模和關系建模,還包括專門針對數據倉庫的維度建模技術。

3、數據抽取、清洗、轉換、加載(ETL)

數據抽取是指將數據倉庫/集市需要的數據從各個業(yè)務系統(tǒng)中抽離出來,因為每個業(yè)務系統(tǒng)的數據質量不同,所以要對每個數據源建立不同的抽取程序,每個數據抽取流程都需要使用接口將元數據傳送到清洗和轉換階段。

4、建立可視化場景

建立可視化場景是對數據倉庫/集市中的數據進行分析處理的成果,用戶能夠借此從多個角度查看企業(yè)/單位的運營狀況,按照不同的主題和方式探查企業(yè)/單位業(yè)務內容的核心數據,從而作出更精準的預測和判斷。

數據可視化的16個經典案例

[數據可視化]

本文編譯自:Ross Crooks

數據可視化是指將數據以視覺的形式來呈現,如圖表或地圖,以幫助人們了解這些數據的意義。通過觀察數字、統(tǒng)計數據的轉換以獲得清晰的結論并不是一件容易的事。而人類大腦對視覺信息的處理優(yōu)于對文本的處理——因此使用圖表、圖形和設計元素,數據可視化可以幫你更容易的解釋數據模式、趨勢、統(tǒng)計數據和數據相關性,而這些內容在其他呈現方式下可能難以被發(fā)現。

數據可視化可以是靜態(tài)的或交互的。幾個世紀以來,人們一直在使用靜態(tài)數據可視化,如圖表和地圖。交互式的數據可視化則相對更為先進:人們能夠使用電腦和移動設備深入到這些圖表和圖形的具體細節(jié),然后用交互的方式改變他們看到的數據及數據的處理方式。

我們必須用一個合乎邏輯的、易于理解的方式來呈現數據。但是,并非所有數據可視化作品的效果都一樣好。那么,如何將數據組織起來,使其既有吸引力又易于理解?讓我們通過下面的16個有趣的例子獲得啟發(fā),它們是既注重風格也注重內容的數據可視化經典案例。

1:為什么會有“巴士群”現象

這里有一個關于復雜數據集的很好的例子,它看起來感覺像一個游戲。在這個例子里,Setosa網站為我們呈現了“巴士群”現象是如何發(fā)生的,即當一輛巴士被延遲,就會導致多輛巴士在同一時間到站。

只用數字講述這個故事是非常困難的,所以取而代之的是,他們把它變成一個互動游戲。當巴士沿著路線旋轉時,我們可以點擊并按住一個按鈕來使巴士延遲。然后,我們所要做的就是觀察一個短暫的延遲如何使巴士在一段時間以后聚集起來。

2:世界上的語言

這個由DensityDesign設計的互動作品令人印象深刻,它將世界上眾多(或者說,我們大多數人)語言用非語言的方法表現出來,一共有2678種。

這件作品可以讓你瀏覽使用共同語言的家庭,看看哪些語言是最常用的,并查看語言在世界各地的使用范圍。這是一種了不起的視覺敘事方法:將一個有深度的主題用一種易于理解的方式進行解讀。

3:按年齡段分布的美國人口百分比

應該用什么方式去呈現一種單一的數據?這是一個令人信服的好榜樣。

Pew Research創(chuàng)造了這個GIF動畫,顯示人口統(tǒng)計數量隨著時間推移的的變化。這是一個好方法,它將一個內容較多的故事壓縮成了一個小的動圖包。此外,這種類型的微內容很容易在社交網絡上分享或在博客中嵌入,擴大了內容的傳播范圍。

4:NFL(國家橄欖球聯(lián)盟)的完整歷史

體育世界有著豐富的數據,但這些數據并不總是能有效地呈現。然而,FiveThirtyEight網站做得特別好。

在下面這個交互式可視化評級中,他們對國家橄欖球聯(lián)盟史上的每一場比賽計算“等級分” – – 根據比賽結果對球隊實力進行簡單的衡量 。總共有超過30,000個評級,觀眾可以通過比較各個隊伍的等級分來了解每個隊伍在數十年間的比賽表現。

5:Google Flights 上的美國感恩節(jié)

下面是將一段時間內在空中移動的物體進行可視化的好方法。這是由Google Trends驅動的項目,它跟蹤感恩節(jié)前出發(fā)、到達和穿越美國的航班。

可視化始于當天很早的時間,隨著時間的推移,像播放電影一樣顯示在全國各地飛行中的航班。不需要顯示時間外的任何數字,觀眾即可以看到當天哪段時間是國際航班、國內航班以及往返于全國各地不同樞紐的航班的熱門時間。

6:是什么真正造成了全球變暖?

我們都知道,“不要只簡單地展示數據,講個故事吧”。這正是彭博商業(yè)正在做的可視化 ——用互動的方式來講述故事的來龍去脈。。

此圖的關鍵是要反駁用自然原因解釋全球變暖的理論。首先你會看到從1880年至今觀測到的溫度上升情況。為了使故事內容更加豐富,當你向下滾動時,這個可視化圖會讓你清楚的了解到相較于已被觀測到的因素,造成全球變暖的不同因素到底有多少。作者希望觀眾能夠得到非常清晰的結論。

7:在敘利亞,誰和誰在戰(zhàn)斗?

許多不同的團體之間的關系可能令人很難理解 – 尤其是當有11個這樣的團體存在的時候。這些團體之間有的結盟,有的敵對,反之亦然。這讓人難以理解。

但是,Slate網站通過表格的形式和熟悉的視覺表達,將這些數據簡化為一種簡單的、易于理解和可交互的形式。觀眾可以點擊任一張臉來查看雙方關系的簡要描述。

8:最有價值的運動隊

這是通過疊加數據來講述深層故事的一個典型例子。

這個交互由Column Five設計,受福布斯“2014年最具價值的運動隊50強”名單得到的啟發(fā)。但是它不僅將列表可視化,用戶還可以通過它看到每支隊伍參賽的時間以及奪得總冠軍的數量。這為各隊的歷史和成功提供了更全面的概況信息。

9:美國風圖

下面是一個類似感恩節(jié)航班的可視化圖,除了圖中顯示的時刻,它還能實時顯示美國本土的風速和風向。

它是直觀設計的一個很好的案例:風速用線條移動的快慢來表示,方向通過線條移動的路徑來表示。它會即時顯示美國風向的總體趨勢,無需任何數字,除非你在地圖上點擊鼠標。另外,使用時設定最多兩個變量會使它更容易操作。

10:政治新聞受眾渠道分布圖

據Pew研究中心稱,當設計師在信息內容很多又不能刪的時候,他們通常會把信息放到數據表中,以使其更緊湊。但是,他們在這里使用分布圖來代替。

為什么呢?因為分布圖可以讓觀眾在頻譜上看到每個媒體的渠道。在分布圖上,每個媒體的渠道之間的距離尤為顯著。如果這些點僅僅是在表中列出,那么觀眾就無法看到每個渠道之間的對比效果。

11:著名創(chuàng)意人士的日程安排

這個數據可視化圖是用奇特的想法描繪出的一個簡單概念。這個表格利用Mason Currey的《日常慣例》一書中的信息展示了那些著名創(chuàng)意人士的日程安排,解讀其時間和活動安排。這不僅是一個數據分析的例子(因為你可以通過單獨的活動來瀏覽日程安排),也是一個品牌宣傳的佳作。

12:今年發(fā)生了哪些新聞?

最好的數據可視化方式,就是用直觀和美麗的方式傳達信息。Echelon Insights致力于這一方式,將2014年Twitter上最受關注的新聞進行了可視化。

1億8450萬條推文是什么樣子?就是如下圖所示的藝術品。

13:問題的深度

當你想強調規(guī)模的時候,靜態(tài)數據可視化是表達你的觀點的極佳方式。下面這張來自《華盛頓郵報》的信息圖長得令人難以置信…這是故意的。他們在圖中展示了一架飛機可以探測到的深海信號是多么的深,通過比較飛機的探測深度與高層建筑、已知哺乳動物的最大深度、泰坦尼克號沉船的深度等。這是簡單的視覺效果和顏色梯度的極佳使用方式。

最后,將數據添加到新聞報道中(文中為失蹤的馬航)是提供背景的好方式。

14:前沿預算

上述圖表相對簡單,以下是創(chuàng)造設計精致的、傳遞大量數據的圖表的方法。秘訣何在?——用簡單和干凈的格式,便于讀者理解數據。

這個由GOOD Magazine 和 Column Five制作的圖表,解讀了NASA的五年預算,顯示資金將怎么花、花在哪里。此外,它還有一個主題設計,這真是一個全面成功的作品!

15: Kontakladen慈善年報

不是所有的數據可視化都需要用動畫的形式來表達。當現實世界的數據通過現實生活中的例子進行可視化,結果會令人驚嘆。設計師Marion Luttenberger把包含在Kontakladen慈善年報中的數據以一種獨特的方法表現出來。

該組織為奧地利的吸毒者提供支持,所以Luttenberger就通過現實生活中的視覺元素來宣傳他們的使命。例如,這輛購物車的形象表現出受助者每一天可以負擔得起多少生活必需品。

16:奧地利太陽能年報

雖然有許多方法都能使數據可視化,但是其中,使用真實信息主體去創(chuàng)建數據可視化作品的做法非常了不起。這份來自Austria Solar的年度報告,通過在頁面上使用太陽光感墨水,用真正的太陽能給公司數據賦予生命。

一句話總結:他們是天才。

從電影網站爬取數據并進行可視化分析會用到哪些數據

從電影網站爬取數據并進行可視化分析會用到的數據如下。

1、beautifulsoup、re、urllib庫。

2、SQLite包,數據可視化方面主要用到flask框架、echarts和wordcloud等。

3、此類數據可以搭建簡單的數據可視化網站。

數據分析項目包含哪些流程?

1、數據采集

了解數據采集的意義在于真正了解數據的原始面貌,包括數據產生的時間、條件、格式、內容、長度、限制條件等。

2、數據存儲

無論數據存儲于云端還是本地,數據的存儲不只是我們看到的數據庫那么簡單。

3、數據提取

數據提取是將數據取出的過程,數據提取的核心環(huán)節(jié)是從哪取、何時取、如何取。

4、數據挖掘

數據挖掘是面對海量數據時進行數據價值提煉的關鍵。

5、數據分析

數據分析相對于數據挖掘更多的是偏向業(yè)務應用和解讀,當數據挖掘算法得出結論后,如何解釋算法在結果、可信度、顯著程度等方面對于業(yè)務的實際意義,如何將挖掘結果反饋到業(yè)務操作過程中便于業(yè)務理解和實施是關鍵。

6、數據展現

數據展現即數據可視化的部分,數據分析師如何把數據觀點展示給業(yè)務的過程。數據展現除遵循各公司統(tǒng)一規(guī)范原則外,具體形式還要根據實際需求和場景而定。

7、數據應用

數據應用是數據具有落地價值的直接體現,這個過程需要數據分析師具備數據溝通能力、業(yè)務推動能力和項目工作能力。

豆瓣電影數據分析

這篇報告是我轉行數據分析后的第一篇報告,當時學完了Python,SQL,BI以為再做幾個項目就能找工作了,事實上……分析思維、業(yè)務,這兩者遠比工具重要的多。一個多月后回過頭來看,這篇報告雖然寫得有模有樣,但和數據分析報告還是有挺大差別的,主要原因在于:a.只是針對豆瓣電影數據分析太過寬泛了,具體關鍵指標到底是哪些呢?;b.沒有一個確切有效的分析模型/框架,會有種東一塊西一塊的拼接感。

即便有著這些缺點,我還是想把它掛上來,主要是因為:1.當做Pandas與爬蟲(Selenium+Request)練手,總得留下些證明;2.以豆瓣電影進行分析確實很難找到一條業(yè)務邏輯線支撐,總體上還是描述統(tǒng)計為主;3.比起網上能搜到的其他豆瓣電影數據分析,它更為詳細,可視化效果也不錯;

本篇報告旨在針對豆瓣電影1990-2020的電影數據進行分析,首先通過編寫Python網絡爬蟲爬取了51375條電影數據,采集對象包括:電影名稱、年份、導演、演員、類型、出品國家、語言、時長、評分、評論數、不同評價占比、網址。經過去重、清洗,最后得到29033條有效電影數據。根據電影評分、時長、地區(qū)、類型進行分析,描述了評分與時長、類型的關系,并統(tǒng)計了各個地區(qū)電影數量與評分。之后,針對演員、導演對數據進行聚合,給出產量與評分最高的名單。在分析過程中,還發(fā)現電影數量今年逐步增加,但評分下降,主要原因是中國地區(qū)今年低質量影視作品的增加。

另外,本篇報告還爬取了電影票房網( )1995-2020年度國內上映的影片票房,共采集4071條數據,其中3484條有效。進一步,本文分析了國內院線電影票房年度變化趨勢,票房與評分、評價人數、時長、地區(qū)的關系,票房與電影類型的關聯(lián),并給出了票房最高的導演、演員與電影排名。

清洗、去重后,可以看到29033條數據長度、評分、評論數具有以下特點:

結合圖1(a)(b)看,可以看到電影數據時長主要集中在90-120分鐘之間,向兩極呈現階梯狀遞減,將數據按照短(60-90分鐘),中(90-120分鐘),長(120-150分鐘),特長(150分鐘)劃分,各部分占比為21.06%, 64.15%, 11.95%, 2.85%。

結合圖2(a)看,可以看到我們采集到的電影數據評分主要集中在6.0-8.0之間,向兩極呈現階梯狀遞減,在此按照評分劃分區(qū)間:2.0-4.0為口碑極差,4.0-6.0為口碑較差,6.0-7.0為口碑尚可,7.0-8.0為口碑較好,8.0-10.0為口碑極佳。

這5種電影數據的占比分別為:5.78%, 23.09%, 30.56%, 29.22%, 11.34%

再將評分數據細化到每年進行觀察,可以發(fā)現,30年內電影數量與年度電影均分呈反相關,年度均分整體呈現下降趨勢,2016年電影均分最低,電影數量最多。

進一步做出每個年份下不同評級等級的電影數據占比,可以發(fā)現,近年來,評分在[2.0,6.0)的電影數據占比有著明顯提升,評分在[6.0,7.0)的數據占比不變,評分在[7.0,10.0)的數據占比減少,可能原因有:

對照圖5,可以發(fā)現,評分與時長、評論人數的分布大致呈現漏斗狀,高分電影位于漏斗上部,低分電影位于漏斗下部。這意味著,如果一部電影的評論人數很多(特別是超過30w人觀影),時長較長(大于120min),那么它大概率是一部好電影。

根據各個國家的電影數量作圖,可以得到圖6,列出電影數量前十的國家可得表格2,發(fā)現美國在電影數量上占第一,達到8490部,中國其次,達6222部。此外,法國,英國,日本的電影數量也超過1000,其余各國電影數量相對較少。這可以說明美國電影有著較大的流量輸入,在中國產生了較大的影響。

進一步分析各國電影的質量,依據評分繪制評分箱線圖可得圖7,在電影數量排名前20的國家中:

接著我們可以探索,哪個國家的電影對豆瓣評分隨年份下降的貢獻最大,考慮到電影數量對應著評分的權重。根據上述各國的電影評分表現,我們可以猜測電影數量較多的國家可能對年度均分的下降有較大影響。于是,我們再計算出這些國家的年度電影均分,并與整體均分進行比較分析。

再作出中國大陸,中國臺灣,中國香港的均分箱線圖圖9(a),可以看到,大陸電影均分低于港臺電影,且存在大量低分電影拉低了箱體的位置。

分析相關性可得,大陸、香港、臺灣電影年度均分與全部評分關聯(lián)度分別為R=0.979,0.919,0.822,說明濾去臺灣和香港電影,大陸電影年度均分的變化趨勢與全部評分變化更接近。圖9(b)可以進一步反映這一點。

可以看到,大部分類型集中在X×Y=[10000,30000]×[6.00,7.50]的區(qū)間范圍內,劇情、喜劇、愛情、犯罪、動作類電影數量上較多,說明這些題材的電影是近三十年比較熱門的題材,其中劇情類電影占比最多,音樂、傳記類電影平均得分更高,但在數量上較少,動作、驚悚類電影評論人數雖多,但評價普遍偏低。

除此之外,還有兩塊區(qū)域值得關注:

根據類型對電影數據進行聚合,整理得到各類型電影評分的時間序列,計算它們與整體均分時間序列的相關性,可得表格4與圖11,可以看到劇情,喜劇,懸疑這三種類型片與總分趨勢變化相關性最強,同時劇情、喜劇類電影在電影數量上也最多,因此可以認為這兩類電影對于下跌趨勢影響最大,但其余類別電影的相關性也達到了0.9以上,說明幾種熱門的電影得分的變化趨勢與總體均分趨勢一致。

前面已經得知,中美兩國電影占比最高,且對于均分時間序列的影響最大。在此,進一步對兩國電影進行類型分析,選取幾種主要的類型(數量上較多,且相關性較高)進行分析,分別是劇情,喜劇,愛情,驚悚,動作,懸疑類電影,繪制近年來幾類電影的數量變化柱狀圖與評分箱線圖可得圖12,13,14,15。

對導演與演員進行聚合,得到數據中共有15011名導演,46223名演員。按照作品數量在(0,2], (2,5], (5,10], (10,20], (20,999]進行分組統(tǒng)計導演數量,可以發(fā)現,15009名導演中有79.08%只拍過1-2部作品,46220名演員中有75.93%只主演過1-2部作品。忽略那些客串、跑龍?zhí)椎难輪T,數據總體符合二八定律,即20%的人占據了行業(yè)內的大量資源。

在此,可以通過電影得分、每部電影評論人數以及電影數目尋找優(yōu)秀的電影導演與演員。這三項指標分別衡量了導演/演員的創(chuàng)作水平,人氣以及產能??紤]到電影數據集中可能有少量影視劇/劇場版動畫,且影視劇/劇場版動畫受眾少于電影,但得分普遍要高于電影,這里根據先根據每部電影評論數量、作品數量來篩選導演/演員,再根據電影得分進行排名,并取前30名進行作圖,可得圖17,18。

結合電影票房網( )采集到的3353條票房數據,與豆瓣數據按照電影名稱進行匹配,可以得到1995-2020年在中國大陸上映的電影信息,分別分析中國內地電影的數量、票房變化趨勢,票房與評分、評價人數、時長、地區(qū)以及類型的關系,此外還給出了不同導演與演員的票房表現以及影片票房排名。

如圖19所示,國內票房數據與上映的電影數量逐年遞增,2020年記錄的只是上半年的數據,且由于受疫情影響,票房與數量驟減。這說明在不發(fā)生重大事件的情況下,國內電影市場規(guī)模正在不斷擴大。

對電影數據根據類型進行聚合,繪制散點圖21,可以發(fā)現:

提取導演/演員姓名,對導演/演員字段進行聚合,計算每個導演/演員的票房總和,上映電影均分、以及執(zhí)導/參與電影數目進行計算,作出票房總和前30名的導演/演員,可得圖22,23,圖中導演/演員標號反映了票房排名,具體每位導演/演員的上映影片數量、均分、每部電影評價人數、平均時長與總票房在表5、表6中給出。

最后根據電影票房進行排名,得到票房排名前20的電影如表格7所示,可以看到絕大部分上榜電影都是中國電影,索引序號為3、10、12、14、18、19為美國電影,這也反映了除國產電影之外,好萊塢大片占據較大的市場。

本篇報告采集了1990-2020年間豆瓣電影29033組有效數據,從豆瓣電影的評分、時長、地區(qū)、類型、演員、導演以及票房等信息進行分析評價,主要有以下結論:

簡書用戶畫像 之 如何挖掘用戶的電影喜好

我在 《爬取百萬頁面 分析用戶畫像》 中分析了用戶的書籍喜好,這里繼續(xù)嘗試通過影評文章的抓取、內容清洗、影評句子提取,建立機器學習情緒預測模型,挖掘分析用戶對流行電影的喜好。

涉及的NLP(自然語言處理)知識點:

涉及的ML(機器學習)知識點:

電影的拍攝成本高、票價也不低,消費者投入的關注度和觀看成本高(最終的投入成本是包括注意力投入、金錢投入、時間投入和感情投入)。

簡單算下觀看一部電影的成本(步驟):先看下預告內容,做下同期上映電影的比較,覺得導演、演員陣容都不錯,下定決心要看了,跟男/女友/老婆 /老公/基友/閨密做推薦,推薦成功后去選座買票,觀影當天說不定還得先吃個飯,飯后乖乖的在影院呆上90分鐘(關鍵時刻還得憋尿),觀影結束后指不定還得來個夜宵、開個房間探討下人生什么的。。。

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

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

因此觀眾給出的反饋自然也比書籍會強烈一些,特別是滿懷期待看完卻發(fā)現是一部爛片,有種上當受騙的感覺。

因此對電影光是通過詞頻作為喜好度是不夠的,用戶可能反復的在罵呢。

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

在豆瓣上,用戶的評分就是最直接的情緒數值:5力薦,4推薦,3還行,2較差,1很差。

但在這類寫作平臺上,發(fā)布文章時是沒有一個選項來填寫分數,也沒提供選擇心情的選項。

“所言即其所思”,這是普遍人性。每個用戶寫下的文字表達想法,在字里行間都會不經意的使用一些情緒用詞來表達,這些便是我可以獲取的“原始數據”。

精準推薦!用戶談論得多的東西未必是TA所喜愛的,也許是TA痛恨的(比如說前任)。如果用戶在自己大力差評某部電影的文章底部看到另一部相似爛片的推薦,推薦文案還寫著“親,我猜你還喜歡看這些”,估計這用戶會有種吃了蒼蠅剛吐出來發(fā)現迎面又飛來幾只的感覺。

通過用戶在討論某事物時上下文的情緒分析,來判斷對該事物的喜惡,將預測結果加入對事物的打分計算中,最后得出一個可量化、可計算的分數值,便是一個精準推薦系統(tǒng)的需要解決的問題。

理論上只需要一句話:要識別出文章中提及的電影,以及作者對該電影的評論,是好評還是差評,作為文章作者對該電影的喜惡,并根據評論的情緒強烈程度轉化為喜惡程度即可。

那實際上,就要解決以下問題:

下面逐一細說。

我采集了上幾個比較受歡迎的電影專題以及一個大V帳號文章(數據截止至采集數據時):

但由于對專題頁面加了訪問限制,每個專題只能訪問到最新的200個列表頁面,因而每個專題可獲取2~3000篇文章,以此作為抽樣數據樣本。

要分析對電影的評價,首先就要獲取到文章中提到電影名稱有哪些,最簡單的匹配規(guī)則便是提取書名號 《》 內的內容。

而實際獲取到的電影名稱真可謂“臟亂差”,有電影名、書籍名、文章名等,有些電影名稱會用縮寫引用(如《變1》、《復聯(lián)》、《生化危機4/5/6》),或者中英文混合在一起(如《機器人總動員(wall-e)》),甚至還有錯漏別字(如《那些年,我們一起追過的女孩》,多了個“過”字),以及包含中英文特殊標點空白符號等,例如:

因此需要進行一輪“數據大清洗”,我使用如下清洗策略:

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

再根據文章中所收集到的電影名稱的候選文本,抓取「豆瓣網」的官方電影名字(遭遇了豆瓣業(yè)內聞名的反爬策略就不多說了),合并去重后約有8400多部。看一眼才發(fā)現好多電影連聽都沒聽過,有些電影名稱還挺有趣,以后有時間還可以做下電影名稱的分析。

為了解決錯別字,我通過文本相似性算法,在電影專用詞典里找出與之最相似名稱。

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

經過簡單比較,我選擇了其中表現最好的 jaro_winkler_distance

運用到文章內容上,可得到相似電影名稱,感覺效果還可以:

構建一個Pipeline用于提取頁面中電影名稱,對單個頁面測試效果如下:

運用到所有頁面上:

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

判斷一篇文章的情緒,最簡單的做法是通過提取所有情緒詞來統(tǒng)計下詞頻及其權重可得到一個粗糙的結果,但這樣的結果對“影評”類文章不是很準確。

根據觀察,一篇電影評論文章中,往往會有大段的電影情節(jié)描述,然后夾雜一兩句評論。而有些電影本身劇情就是比較負面、陰暗的(如災難片類的),但影片本身質量很高(如《釜山行》,豆瓣評分8.2),如果文章內容包含大量的劇情描述,那么得到關鍵詞會偏向于負面情緒,并不能用于表達出作者對電影的喜好情緒。

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

評論句子提取的結果示例如下:

這樣的策略對有些內容不是很適用,例如這樣的標題:《同樣是豆瓣9.2分,它或許比《摔跤吧!爸爸》更深》,這是典型的“借勢營銷”型文案,文章內容中推介的是另外一部韓國電影《熔爐》,而時下《摔跤吧!爸爸》正熱,標題中帶上這個會更吸引用戶點擊。

另外一個思路是對文章進行摘要提取,然后對摘要進行情緒識別。而對于文章的主題提取,可以使用在ML算法中的用于解決 主題模型 問題的算法(如LDA),但不確定是否適合影評這種混合了大量劇情描述的文章內容。

得到相關評論文本后,便可對文本進行分詞及情緒識別,這里有兩種做法,一是使用帶有情緒情感度的專業(yè)詞典,配合專有算法;另外一種是使用機器學習算法。

一開始我使用了大連理工大學的《大連理工情感詞匯本體庫》,是目前最權威的中文情緒詞典,共含有情感詞共計27466個,包含了詞語的詞性種類、情感類別、情感強度及極性等信息,例如:

中文情感詞匯本體的情感分類體系是在國外比較有影響的Ekman的6大類情感分類體系的基礎上構建的。在Ekman的基礎上,詞匯本體加入情感類別“好”對褒義情感進行了更細致的劃分。最終詞匯本體中的情感共分為7大類21小類,如圖:

把情感詞典加入分詞詞典,對候選每個句子進行分詞,得出情感詞組,并累加每個情感詞的強度值作為句子的情感值。

但經過測試后,發(fā)現預測效果并不理想,究其原因發(fā)現是情感詞典中命中的詞語太少,在句子中得不到相關詞語,也就無法判斷情感極性和強度。

使用情感詞典的測試結果:

而專業(yè)詞典的擴展需要專業(yè)領域知識,擴展起來很困難,我目前沒找到更新的專業(yè)詞典,國內這塊的資料相當匱乏,而國外有個知名的SentiWordNet庫,中文NLP研究的難度系數可想而知。

鑒于情感詞典的資源限制,決定嘗試使用機器學習來對文本做正、負面情緒預測。

1). 構建分詞詞典:

分詞需要構建專用領域的詞典,這樣得到的分詞結果才會更精確。

因為只需要有正負情感類別、不需要有情感強度及極性等信息,我使用了網絡上公開的一些情感詞典,:

合并、清洗和去重后,最終構建出了 14000+ 個詞的積極情緒詞典, 18000+ 個詞的消極情緒詞典。

積極詞典:

消極詞典:

2). 準備訓練語料

從網上搜集到幾個帶有積極、消極的標注的評論語料數據集,分別包含了書籍、DVD、音樂、購物領域的各有4000條評論,如下圖:

可惜沒找到中文影評相關的語料,但找到 國外英文的影評語料 ,對,英文資料很豐富。。。

3). 訓練模型

由于是文本型特征,分類算法上選擇了 樸素貝葉斯 ,把數據分為2份,一半訓練,另一半做測試。

使用 jieba 分詞工具,對文本進行分詞得到候選詞組,把得到的詞組作為特征輸入來訓練情緒預測模型。

訓練后的模型測試結果如下:

訓練后的模型在書籍、音樂、影碟及購物評論的語料上都有不錯的效果。

在提取出的影評短句上測試:

又是“無聊”、“又俗又傻”而一個“但”字就反轉了情緒,真是難為分類器了:

經過反復對比實驗,發(fā)現語料的質量決定了模型的精度,而語料的擴展對比擴展專業(yè)詞典卻容易多了。例如幾年前都沒有“ 因吹斯汀 ”這些網絡流行詞,更不知道它代表是正面情緒,以后只要不斷更新相關領域的語料庫來重新訓練則可得到更精確的模型。

俗話說“是騾子是馬拉出來遛遛”。

得到一個預測情緒的模型后,便可對影評文章進行預測,但預測的結果是否準確?準確率又有多高?這又是個問題。

每當事情陷入停滯,我就會想起日本漫畫大師安達充說過“當故事情節(jié)發(fā)展不下去的時候,加入一個新角色,是最簡單的做法”。

這時需要祭出一個“旁證”了。這所謂的“旁證”,也就是目前大家比較認可的電影評分網站——豆瓣網。

大家都知道豆瓣網上的電影用戶通過打星(5力薦,4推薦,3還行,2較差,1很差),轉換得出的10分制的評分,我們可簡單把1 4.9分視作負面評價、5 10分視作正面評價,沒有分數的視作中性評價。再把豆瓣的評價結果視作大部分人認同的結果,當然這樣肯定是有偏差的。

大膽假設,小心求證,先試試看吧。

根據電影名詞典再次去抓取豆瓣網上的電影信息,這次包含了電影分數::

使用獲取到的電影專題『電影院』文章內容測試,結果如下:

1048篇中,豆瓣評分結果與模型預測符合的有974篇,準確率是92.9%,WOW!真的這么準嗎?

看下詳細結果,豆瓣評分是正面的有1022條,預測對了973篇,例如:

而豆瓣評分是負面的有28條記錄,而模型只預測出1篇是負面的:

真的是模型預測錯了嗎?

從負面例子中抽樣看看模型分解的結果:

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

從自動摘要出來的句子來看,實際上文章作者表現出正面情緒,模型預測為正面,預測正確 ??。

再看評論同一部電影的另外一個文章的評論:

作者顯然是給了個差評,但模型給了出的預測是正面,預測錯誤 ??。

負例的預測準確率低,有兩個原因,一個是豆瓣評分正負標準的閥值設定不夠精準,二是訓練數據不平衡。

之前使用的閥值策略是:“簡單把1 4分視作負面評價、5 10分視作正面評價,沒有分數的視作中性評價”。

我猜測在4~5分這個區(qū)間應該是灰度地帶,正負面評論都會有。為了驗證這個猜想,使用獲取到的所有豆瓣電影分數,導入數據分析工具中,排除掉沒有分數的條目后得到6500+條電影數據,其中最低是2.1,最高是9.7。

查看評分分布的直方圖與比例餅圖:

調整區(qū)間閥值,把 2.1-4.9 劃分為一個區(qū)間,系統(tǒng)自動分成了3組分值:

發(fā)現5分以下電影僅占12%。

從評分分布結果看,在上大部分人寫文章是針對高分(好評)電影為主,低分(差評)電影的文章數量很少,從提取出來的數據量看,兩者比率約為100:3。

訓練數據不平衡導致正例過擬合,而負例欠擬合。

要解決數據不平衡問題,可以重新采樣訓練集。有兩種方法使不平衡的數據集來建立一個平衡的數據集——欠采樣和過采樣,解釋如下:

由于訓練數據不多,我使用了 過采樣 中的自舉方案。我將另外一個的電影專題『影視天堂』中模型預測結果與豆瓣評分結果一致的內容作為訓練數據集來強化訓練模型:

然后再對電影專題『電影院』測試一次:

負例的準確率改善了一些些,這說明效果是有的,以后只需繼續(xù)獲取到新的數據再“喂”給模型,模型預測結果會越來越精準。

至此,得到一個不算成熟的電影情緒預測模型,可以用來做一些有趣的統(tǒng)計分析了。

將『影視天堂』專題的分析結果在數據分析工具上進行數據可視化展示,得到一個「長尾圖」:

從報表中可得到這些信息:

注1:嚴格來說《歡樂頌》不是電影而是電視劇作品,在用豆瓣網的數據構建電影詞典時我沒有做嚴格區(qū)分

注2:專題的數據獲取是在5月份完成的,以及專題的最新收錄文章有訪問限制,無法獲取到舊的文章,因此得到的當時熱門影視作品的影評,從而呈現出信息跟當時熱播作品比較相關 

再對先前獲取到的 1萬個用戶的近60萬篇文章內容 ,運行相應的Pipeline進行電影情緒數據的提取。

可視化數據后得到圖表:

現在可以看看,上用戶給予好評的電影有哪些,使用「詞云圖」展示如下:

用戶給予差評的電影有哪些:

現在也可以精準了解每一個用戶的電影口味了,以 『毒舌電影 - 』 為例子:

注3:本文發(fā)表時上“毒舌電影”經歷過被封事件后已改名為“Sir電影”;專題“影視天堂”已改名為“電影”

以后做電影個性化推薦可就不要推薦錯了 ??。

關于豆瓣電影數據可視化項目和豆瓣電影大數據分析的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。

掃描二維碼推送至手機訪問。

版權聲明:本文由飛速云SEO網絡優(yōu)化推廣發(fā)布,如需轉載請注明出處。

本文鏈接:http://m.landcheck.net/post/7874.html

分享給朋友:

“豆瓣電影數據可視化項目(豆瓣電影大數據分析)” 的相關文章

如何自己開發(fā)軟件app(怎么才能自己開發(fā)軟件)

如何自己開發(fā)軟件app(怎么才能自己開發(fā)軟件)

本篇文章給大家談談如何自己開發(fā)軟件app,以及怎么才能自己開發(fā)軟件對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何開發(fā)一款app軟件 2、怎么開發(fā)app軟件? 3、如何開發(fā)手機app 4、怎么開發(fā)一款app軟件 5、如何自己開發(fā)一個app軟件 6、...

cf手游cop357兌換碼(穿越火線cop357兌換碼)

cf手游cop357兌換碼(穿越火線cop357兌換碼)

今天給各位分享cf手游cop357兌換碼的知識,其中也會對穿越火線cop357兌換碼進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、cf手游cdkey兌換碼幾次 2、手游穿越火線cop357怎么能快速領取零件? 3、cf手游cop357怎么得,在線等...

php源碼安裝擴展(有php源碼怎么安裝教程)

php源碼安裝擴展(有php源碼怎么安裝教程)

今天給各位分享php源碼安裝擴展的知識,其中也會對有php源碼怎么安裝教程進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、如何編譯安裝PHP擴展 2、php 怎么安裝擴展 3、如何安裝php的擴展bcmath 如何編譯安裝PHP擴展 一開始安裝PH...

創(chuàng)建教務管理系統(tǒng)數據庫(學校教務管理系統(tǒng)數據庫)

創(chuàng)建教務管理系統(tǒng)數據庫(學校教務管理系統(tǒng)數據庫)

本篇文章給大家談談創(chuàng)建教務管理系統(tǒng)數據庫,以及學校教務管理系統(tǒng)數據庫對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、數據庫原理設計教務管理系統(tǒng)信息要求是什么 2、求幫忙做個數據庫綜合教務管理系統(tǒng) 3、如何用SQL建立一個學生信息管理系統(tǒng)數據庫 4、簡述創(chuàng)建一個...

魚泡網小程序源碼(魚泡網開發(fā)者)

魚泡網小程序源碼(魚泡網開發(fā)者)

今天給各位分享魚泡網小程序源碼的知識,其中也會對魚泡網開發(fā)者進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、小程序開發(fā)一般都會提供源碼的嗎? 2、魚泡網怎么下載? 3、小程序源碼,小程序源碼有誰提供的? 小程序開發(fā)一般都會提供源碼的嗎? 這個看你自...

uniapp項目結構(uniapp 架構)

uniapp項目結構(uniapp 架構)

今天給各位分享uniapp項目結構的知識,其中也會對uniapp 架構進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、如何建立uniapp websocket服務端,要怎么實現? 2、基于 UniAPP 項目多端開發(fā) 3、uniapp原生插件開發(fā)(i...