基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化_第1頁(yè)
基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化_第2頁(yè)
基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化_第3頁(yè)
基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化_第4頁(yè)
基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于豆瓣網(wǎng)電影數(shù)據(jù)的分析與可視化摘要隨著我國(guó)互聯(lián)網(wǎng)行業(yè)和數(shù)字電影行業(yè)的不斷飛速發(fā)展,兩者之間的合作聯(lián)系越來(lái)越緊密。還陸續(xù)出現(xiàn)了許多基于互聯(lián)網(wǎng)上的視頻播放網(wǎng)站。用戶想要在這些視頻播放網(wǎng)站上找到自己喜歡的電影是一件很不容易的事,為了給用戶的選擇提供一個(gè)有用的參考,在龐大的網(wǎng)絡(luò)電影庫(kù)中快速找到自己真正喜歡的網(wǎng)絡(luò)電影,本次課題從電影信息和短評(píng)信息兩方面入手設(shè)計(jì)了豆瓣電影數(shù)據(jù)可視化系統(tǒng)。為了更好地對(duì)國(guó)內(nèi)電影網(wǎng)站數(shù)據(jù)進(jìn)行分析,本課題首先利用Python+Scrapy建立一套爬蟲系統(tǒng),收集豆瓣網(wǎng)的相關(guān)數(shù)據(jù),通過(guò)Mysql數(shù)據(jù)庫(kù)把獲取到的電影名、電影導(dǎo)演、電影評(píng)分、電影類型、評(píng)論用戶等數(shù)據(jù)進(jìn)行持久化,為整個(gè)可視化系統(tǒng)提供了廣泛而可靠的數(shù)據(jù)支持。最后使用Python提供的第三方庫(kù)Matplotlib、Pands和Excel數(shù)據(jù)可視化工具進(jìn)行數(shù)據(jù)清洗和以圖形的形式直觀地展示數(shù)據(jù)結(jié)果,并多角度分析電影的發(fā)展,得出相關(guān)結(jié)論。關(guān)鍵詞:Scrapy;Python;第三方庫(kù);數(shù)據(jù)可視化;電影

AbstractWiththerapiddevelopmentofChina'sInternetindustryanddigitalfilmindustry,thecooperationbetweenthetwoismoreandmoreclose.TherearealsomanyInternet-basedvideoplaybackwebsites.Userswanttofindtheirfavoritemovieonthesevideoplaybacksiteisaverynoteasything,inordertogivetheuserchoicetoprovideausefulreference,inthehugenetworkmovielibraryquicklyfindtheirreallylikenetworkmovie,thesubjectfromthemovieinformationandshortreviewinformationdesignthedoubanmoviedatavisualizationsystem.Inordertobetteranalyzethedomesticfilmwebsitedata,thistopicfirstusePython+Scrapytoestablishacrawlersystem,collectrelevantdataofdouban,throughMysqldatabasetoobtainthemoviename,moviedirector,movierating,movietype,anduserdataforpersistent,providesextensiveandreliabledatasupportforthewholevisualizationsystem.Finally,thethird-partylibraryMatplotlib,PandsandExceldatavisualizationtoolsprovidedbyPythonwereusedtocleanthedataandintuitivelydisplaythedataresultsingraphicalform,andthedevelopmentofthefilmwasanalyzedfrommultipleanglestodrawrelevantconclusions.Keywords:Scrapy;Python;third-partylibrary;datavisualization;movie

目錄TOC\o"1-3"\h\u1緒論 緒論第一章主要介紹了關(guān)于這個(gè)項(xiàng)目的一些基本介紹,包括有開發(fā)系統(tǒng)之前的要了解這個(gè)項(xiàng)目的背景和意義,然后關(guān)于這個(gè)課題的國(guó)內(nèi)外的研究現(xiàn)狀如何,然后介紹在開發(fā)這個(gè)系統(tǒng)的時(shí)候需要用到那些技術(shù),本章主要介紹這些內(nèi)容,本章的具體內(nèi)容如下。1.1研究背景和意義近幾年,在網(wǎng)絡(luò)Python語(yǔ)言強(qiáng)勢(shì)的發(fā)展背景下,數(shù)據(jù)思維及數(shù)據(jù)分析方法也逐漸被運(yùn)用到各個(gè)領(lǐng)域當(dāng)中,成為人們進(jìn)行分析數(shù)據(jù),傳播內(nèi)在規(guī)律的有效途徑。如果我們只用人力來(lái)下載相關(guān)信息,不僅要花很多時(shí)間,而且得到的信息也很少。[1]網(wǎng)絡(luò)爬蟲是一個(gè)你可以自己獲取網(wǎng)頁(yè)的次序。它將從包含大量信息的信息庫(kù)中提取有用的信息,爬蟲在提取有用信息方面非常有效,這使得解決和分析數(shù)據(jù)成為現(xiàn)實(shí)。網(wǎng)絡(luò)爬蟲將繼續(xù)提取網(wǎng)頁(yè)上的數(shù)據(jù),并將其存儲(chǔ)在本地。通過(guò)分析和篩選,可以在緩存數(shù)據(jù)中創(chuàng)建準(zhǔn)則并存儲(chǔ)在系統(tǒng)中,方便用戶查詢和搜索。爬蟲系統(tǒng)很好地提取了隱藏在大量數(shù)據(jù)中的信息,搜索效率很高,在很大程度上更好地利用了信息數(shù)據(jù)庫(kù)。爬蟲系統(tǒng)節(jié)省了大量的讀取和存儲(chǔ)數(shù)據(jù)的時(shí)間,協(xié)助研究人員以及儲(chǔ)存眾多信息,因此可以更加便捷地獲取藏匿在數(shù)據(jù)之后的知識(shí)?,F(xiàn)階段,電影已經(jīng)逐漸成為現(xiàn)代人們?nèi)粘蕵沸蓍e消遣的重要生活方式之一,受到越來(lái)越多的年輕人的喜愛和追捧。根據(jù)初步統(tǒng)計(jì),2016年中國(guó)電影門票市場(chǎng)已經(jīng)實(shí)現(xiàn)各項(xiàng)重要指標(biāo)的快速健康發(fā)展。在這個(gè)新的時(shí)代背景下,中國(guó)電影行業(yè)要想取得更大進(jìn)步,就必然需要不斷提升每部電影作品質(zhì)量,挖掘廣大觀眾對(duì)每部電影的總體評(píng)價(jià)和觀眾反饋的每部電影的相關(guān)數(shù)據(jù),充分及時(shí)了解廣大觀眾的觀影需求,制作和推出更多受觀眾歡迎的好電影作品。從用戶觀眾體驗(yàn)層面來(lái)說(shuō),網(wǎng)絡(luò)上存在著大量的網(wǎng)絡(luò)電影視頻資源,用戶想要在龐大的網(wǎng)絡(luò)電影庫(kù)中快速找到自己真正喜歡的網(wǎng)絡(luò)電影比較困難。所以本次課題從豆瓣電影入手,分析電影評(píng)分與電影導(dǎo)演、電影評(píng)分與電影主演、電影評(píng)分與地區(qū)等之間的關(guān)系,以及用戶對(duì)電影的短評(píng)數(shù)據(jù),為用戶提供更加詳細(xì)的電影觀看建議與電影推薦,為電影行業(yè)提供可用的觀眾滿意度數(shù)據(jù)等等。1.2國(guó)內(nèi)外研究現(xiàn)狀在國(guó)內(nèi),很多平臺(tái)都會(huì)使用大數(shù)據(jù)來(lái)研究電影相關(guān)信息進(jìn)而預(yù)測(cè)票房和電影口碑,致力于提供給觀眾更加優(yōu)質(zhì)的電影產(chǎn)品。2010年,惠普實(shí)驗(yàn)室分析了推特上的電影數(shù)據(jù)實(shí)現(xiàn)票房預(yù)測(cè)。Python作為搜索引擎技術(shù)組成部分之一,自九十年代初誕生了第一個(gè)網(wǎng)絡(luò)爬蟲以來(lái),Python技術(shù)已經(jīng)經(jīng)過(guò)了20多年的發(fā)展,經(jīng)過(guò)這么多年的發(fā)展,Python技術(shù)也趨于成熟,逐漸覆蓋了網(wǎng)頁(yè)開發(fā)、游戲開發(fā)、爬蟲分析可視化、腳本開發(fā)等等專業(yè)領(lǐng)域。[5]并通過(guò)其簡(jiǎn)單易懂、代碼編寫效率高的特點(diǎn),成為目前最為火熱的開發(fā)編程語(yǔ)言,也正是其應(yīng)用廣泛,上手容易,語(yǔ)法強(qiáng)大,代碼可讀性強(qiáng)的特點(diǎn),受到了很多人的喜愛,讓很多人愛不釋手。同時(shí),由于不同的人對(duì)于數(shù)據(jù)爬取內(nèi)容的差異,常常會(huì)產(chǎn)生不同的需求,因此爬蟲主要可以分為以下兩種:通用爬蟲:通用爬蟲其實(shí)很簡(jiǎn)單,它的作用就是將網(wǎng)絡(luò)上的網(wǎng)頁(yè)下載下來(lái),保存到本地,其實(shí)就是生成一個(gè)副本,作為網(wǎng)頁(yè)的備份。所以通用搜索一般得到的都是網(wǎng)頁(yè),對(duì)于用戶來(lái)說(shuō),網(wǎng)頁(yè)的內(nèi)容十之八九都是沒用的,要的只是網(wǎng)頁(yè)中的某些特定的信息。所以就有了我們第二種爬蟲方法。聚焦爬蟲:聚焦爬蟲是比通用爬蟲更加復(fù)雜一點(diǎn),它不同于通用爬蟲,通用爬蟲是將網(wǎng)頁(yè)保存到本地,但是聚焦爬蟲,它不會(huì)將整個(gè)網(wǎng)頁(yè)爬取下來(lái),它會(huì)篩選得到網(wǎng)頁(yè)中我們所需要的東西,而篩選的條件規(guī)則是由我們自己定義的,相比通用爬蟲,聚焦爬蟲它做的工作更多,但是得到的數(shù)據(jù)更加符合我們的要求,本文所實(shí)現(xiàn)的爬蟲,就是通過(guò)聚焦爬蟲所實(shí)現(xiàn)的。自1990年代以來(lái),許多計(jì)算機(jī)工作者一直從專注于相關(guān)領(lǐng)域的研發(fā)工作。從當(dāng)前實(shí)際看,爬蟲科技日漸成熟。國(guó)內(nèi)有許多研究網(wǎng)絡(luò)爬蟲系統(tǒng)的組織和學(xué)者,如杜鳳媛設(shè)計(jì)實(shí)現(xiàn)的一套分布式自定義集合網(wǎng)絡(luò)爬蟲系統(tǒng),它可以一次準(zhǔn)確識(shí)別大量各種網(wǎng)頁(yè)元素,能夠形成提取規(guī)則,而且可以通過(guò)不同的網(wǎng)頁(yè)情況以信息采集方式對(duì)場(chǎng)景化進(jìn)行適應(yīng),從而對(duì)數(shù)據(jù)進(jìn)校高效處理。用戶可以根據(jù)自己的需求可視化地編輯爬蟲任務(wù)腳本,自動(dòng)完成爬蟲數(shù)據(jù)的采集。還有一個(gè)潘劍鋒設(shè)計(jì)的主題爬蟲系統(tǒng),從結(jié)構(gòu)化數(shù)據(jù)中提取,計(jì)算網(wǎng)頁(yè)結(jié)構(gòu)相似度,去噪文本,中文分詞,主題關(guān)鍵詞抽取等五個(gè)方面對(duì)主題爬蟲的工作流程進(jìn)行了設(shè)計(jì)和研究,介紹了網(wǎng)頁(yè)分類的基本步驟,重點(diǎn)分析了樸素貝葉斯分類算法、TF-IDF算法和余弦相似度的基本工作原理。[11]在實(shí)際對(duì)客戶查詢要求進(jìn)行解決的基礎(chǔ)上,有的學(xué)者對(duì)網(wǎng)絡(luò)爬蟲定義進(jìn)行了研究,主要數(shù)基于信息抓取的考慮,采用特征并不明顯的特定爬蟲。網(wǎng)絡(luò)爬蟲技術(shù)旨在為在互聯(lián)網(wǎng)上搜索用戶提供后續(xù)搜索和推薦服務(wù)。國(guó)內(nèi)外的大型搜索引擎公司每天都使用自己的爬蟲程序在互聯(lián)網(wǎng)上爬取大量信息。除了搜索引擎公司的閉源爬蟲程序之外,互聯(lián)網(wǎng)上還有許多開放源爬蟲技術(shù)[12]。在Scrapy爬蟲框架中主要采用的語(yǔ)言是Python。[13]而該框架主要依賴于Python事件進(jìn)行框架驅(qū)動(dòng),能夠讓操作人員非常簡(jiǎn)便地運(yùn)用爬蟲對(duì)相關(guān)模塊進(jìn)行研發(fā),而通過(guò)不同頁(yè)面的抓取,以結(jié)構(gòu)數(shù)據(jù)進(jìn)行顯現(xiàn),通過(guò)多樣的配置,不斷增加定義的中間軟件,通過(guò)鏈接和進(jìn)程以及代理去抓取、測(cè)試以及進(jìn)行并發(fā)和速度控制?;赟crapy框架細(xì)節(jié)以及爬蟲策略的深入研究,能夠?qū)ε廊〔呗耘c架構(gòu)進(jìn)行深入整合分析,在優(yōu)化系統(tǒng)中,可以讓多個(gè)環(huán)節(jié)環(huán)環(huán)相連。[14]Scrapy具有更成熟的文檔和擴(kuò)展名,因此實(shí)現(xiàn)預(yù)期目標(biāo)進(jìn)行開發(fā)相對(duì)方便。西方學(xué)者比國(guó)內(nèi)學(xué)者更早使用大數(shù)據(jù)的方法對(duì)電影領(lǐng)域進(jìn)行分析。其中最有代表性的是澳洲學(xué)者巴里·索特。[15]索特對(duì)影片的模式進(jìn)行了十分精確地更改:遠(yuǎn)景,中景,近攝,長(zhǎng)鏡頭,短鏡頭,動(dòng)作鏡頭等等。他通過(guò)計(jì)算這些場(chǎng)景的數(shù)據(jù)判斷出導(dǎo)演或時(shí)代的風(fēng)格。1.3系統(tǒng)主要內(nèi)容及論文結(jié)構(gòu)安排1.3.1系統(tǒng)主要內(nèi)容這次課題的主要內(nèi)容是通過(guò)Python3+Scrapy框架爬取所需要的1000多個(gè)數(shù)據(jù),并全部存入Mysql,然后對(duì)存入Mysql中的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗與提取成Csv文件、Excel數(shù)據(jù)表和文本文件等等。通過(guò)Python第三方庫(kù)Matplotlib等對(duì)Csv文件或者文本文件中的內(nèi)容進(jìn)行分析,或?qū)xcel數(shù)據(jù)表用Excel可視化工具進(jìn)行分析。本次課題主要研究高評(píng)分豆瓣電影之間的關(guān)系,能夠帶給觀眾更方便的電影觀看選擇,以及研究觀眾在豆瓣電影評(píng)論區(qū)的短評(píng)內(nèi)容,帶給電影制作方更直觀的觀眾觀看后的感想與體會(huì)1.3.2論文結(jié)構(gòu)安排本文共分為7個(gè)章節(jié),具體內(nèi)容和操作順序如下:第一章是引言,此章節(jié)主要闡述了本次研究課題的背景、開發(fā)的意義和國(guó)內(nèi)外的現(xiàn)狀。第二章是相關(guān)技術(shù)和開發(fā)環(huán)境。本章介紹了本次課題所采用的各種相關(guān)開發(fā)技術(shù)和系統(tǒng)開發(fā)環(huán)境。第三章是可行性與需求分析,此章節(jié)介紹了本次課題的技術(shù)上和經(jīng)濟(jì)上的可行性以及需求分析。第四章是數(shù)據(jù)可視化總體設(shè)計(jì),此章節(jié)介紹了系統(tǒng)的簡(jiǎn)單架構(gòu)組成、主要的功能模塊、數(shù)據(jù)庫(kù)表的設(shè)計(jì)和連接。第五章是數(shù)據(jù)可視化系統(tǒng)實(shí)現(xiàn),此章節(jié)介紹了如何實(shí)現(xiàn)本次課題的各個(gè)功能模塊。第六章是數(shù)據(jù)可視化結(jié)果展示,此章節(jié)介紹了數(shù)據(jù)可視化的結(jié)果展示。第七章是系統(tǒng)測(cè)試,此章節(jié)介紹了系統(tǒng)用例測(cè)試。

2相關(guān)技術(shù)與開發(fā)環(huán)境在進(jìn)行設(shè)計(jì)的時(shí)候,需要先了解需要掌握相關(guān)的技術(shù)才可以,然后還要確定使用的開發(fā)環(huán)境,這里采用了Pycharm來(lái)作為編譯代碼的開發(fā)工具。2.1相關(guān)技術(shù)簡(jiǎn)介2.1.1Python簡(jiǎn)介1991年,吉多·范羅蘇姆開發(fā)出了Python腳本語(yǔ)言。Python腳本語(yǔ)言是一個(gè)具有良好的解釋性、編譯性、互動(dòng)性等一系列特性的面向?qū)ο缶幊棠_本語(yǔ)言。它最大的特點(diǎn)和優(yōu)勢(shì)之一是有豐富的標(biāo)準(zhǔn)庫(kù),Python提供的第三方庫(kù)主要可以實(shí)現(xiàn)web軟件開發(fā)、圖形繪制等多個(gè)功能。比較著名的庫(kù)有:Django、Flask、Tornado、Matplotlib、SciPy、NumPy、PyQt、WxPython、PIL、TensorFlow等。所以Python可以讓用戶在編程的過(guò)程中用最少的代碼來(lái)表達(dá)自己的想法。2.1.2XPath簡(jiǎn)介Xpath編程語(yǔ)言被設(shè)計(jì)以來(lái)就可以提供給xslt、xquery以及xpointery使用。Xpath提供很多標(biāo)準(zhǔn)庫(kù)函數(shù)。Xpath的內(nèi)置函數(shù)就有100個(gè)。其中字符串函數(shù)主要有string(object)、concat(string1,string2)、format-number(num)等;布爾函數(shù)主要有true()、false()、lang(string)等;數(shù)字函數(shù)主要有number(object)、floor(number)、round(number)。2.1.3Scrapy框架簡(jiǎn)介Scrapy框架是適用于Python的網(wǎng)站數(shù)據(jù)爬蟲框架。該框架常常被用在數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)清洗等程序。利用Scrapy框架可以快速實(shí)現(xiàn)一個(gè)網(wǎng)站爬蟲,抓取指定網(wǎng)站內(nèi)容。盡管Scrapy的框架最初是為了它被用來(lái)在網(wǎng)絡(luò)上抓取,但它也被認(rèn)為是很容易通過(guò)訪問api提取結(jié)構(gòu)性數(shù)據(jù)。Srapy框架文件具有以下6個(gè)主要的文件目錄結(jié)構(gòu):items、middlewares、pipelines、settings、spiders、scrapy.cfg。Scrapy的架構(gòu)圖如圖2-1所示。圖2-1scrapy架構(gòu)圖(綠線是數(shù)據(jù)流向)2.1.4Matplotlib簡(jiǎn)介Matplotlib庫(kù)是一個(gè)基于Python眾多第三方繪圖包中比較熱門的一個(gè)。是一個(gè)提供數(shù)據(jù)繪圖功能的第三方繪圖庫(kù),pyplot子庫(kù)把構(gòu)造數(shù)據(jù)繪圖所需對(duì)象的過(guò)程封裝在一個(gè)函數(shù)中,可以用來(lái)快速實(shí)現(xiàn)各種數(shù)據(jù)顯示圖形繪圖。使用Matplotlib庫(kù)。開發(fā)人員僅僅需要幾行簡(jiǎn)略的代碼,便能夠快速地生成圖表。一般可以用來(lái)繪制條形圖、詞云圖、雷達(dá)圖等等。2.1.5Pandas簡(jiǎn)介最開始,因?yàn)镻andas是一個(gè)金融數(shù)據(jù)分析工具,Pandas工具包在時(shí)間序列數(shù)據(jù)分析中具有較強(qiáng)的數(shù)據(jù)分析功能和支持。使用爬蟲爬取到的數(shù)據(jù)會(huì)存在大量的噪音,比如空格、重復(fù)值等等。因此需要對(duì)原始數(shù)據(jù)進(jìn)行進(jìn)一步的清洗。清洗后的數(shù)據(jù)才是我們需要分析的數(shù)據(jù)。Python中的Pandas庫(kù)可以對(duì)采集到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與處理進(jìn)行。將爬取得數(shù)據(jù)組合成DataFrame表格格式。2.2開發(fā)環(huán)境2.2.1PyCharm簡(jiǎn)介PyCharm是個(gè)功能強(qiáng)大的IDE,它已經(jīng)發(fā)展成為一個(gè)強(qiáng)大的工具。專業(yè)軟件開發(fā)人員和剛開始學(xué)習(xí)的開發(fā)人員都可以安全使用。Pycharm使用的PEP8標(biāo)準(zhǔn)是Python規(guī)范。對(duì)于初學(xué)者,Pycharm為autopep8提供了這個(gè)工具。只需要在環(huán)境中安裝此工具,就可以解決代碼不規(guī)范問題。同時(shí),Pycharm還擁有斷點(diǎn)調(diào)試功能,在程序debug時(shí),程序就會(huì)在添加了斷點(diǎn)標(biāo)記的行停下來(lái)。Pycharm還擁有大量的快捷鍵,除了我們平時(shí)經(jīng)常使用的那些,它還有些編碼時(shí)能夠加快編碼速度的快捷鍵,比如alt+insert(自動(dòng)生成代碼)、ctrl+alt+l(代碼格式化)等等。2.2.2Mysql簡(jiǎn)介Mysql現(xiàn)在屬于Oracle公司。Mysql數(shù)據(jù)庫(kù)也是以c/s結(jié)構(gòu)為基礎(chǔ)的數(shù)據(jù)庫(kù)軟件,訪問者必須通過(guò)客戶端進(jìn)行訪問。Mysql數(shù)據(jù)庫(kù)可以被永久性地存儲(chǔ)在一個(gè)磁盤中。Mysql使用的是sql語(yǔ)言,sql語(yǔ)言是訪問數(shù)據(jù)庫(kù)最常用的標(biāo)準(zhǔn)化語(yǔ)言,可以很好地實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)庫(kù)的查詢。Mysql數(shù)據(jù)庫(kù)是一種支持關(guān)聯(lián)的數(shù)據(jù)庫(kù)系統(tǒng),關(guān)聯(lián)的數(shù)據(jù)庫(kù)將被所有用戶使用的數(shù)據(jù)存儲(chǔ)在不同的數(shù)據(jù)庫(kù)表中。Mysql也支持大型的數(shù)據(jù)庫(kù)。2.3本章小結(jié)本章主要介紹研究過(guò)程使用的相關(guān)技術(shù)和開發(fā)環(huán)境,相關(guān)技術(shù)主要包括了Python,以及Python相關(guān)的庫(kù),還有XPath和爬蟲框架Scrapy框架的介紹。開發(fā)環(huán)境則是PyCharm和MySql。

3可行性與需求分析想要寫好系統(tǒng)的功能,就要提前對(duì)系統(tǒng)的所有功能都設(shè)計(jì)好,思路清晰,考慮能預(yù)見的所有情況,也要好好考慮。通過(guò)對(duì)功能的設(shè)計(jì),讓系統(tǒng)的結(jié)構(gòu)更加合理。3.1可行性分析3.1.1技術(shù)可行性數(shù)據(jù)可視化分析科技是利用多種可視化界面和一體化分析數(shù)據(jù)理論的方法,幫企業(yè)和用戶快速解讀復(fù)雜數(shù)據(jù)的分析技術(shù)??稍敿?xì)分為數(shù)據(jù)采集、數(shù)據(jù)持久化、數(shù)據(jù)清洗、數(shù)據(jù)可視化4個(gè)步驟。數(shù)據(jù)采集的執(zhí)行過(guò)程可分為:確定獲取內(nèi)容、分析網(wǎng)頁(yè)布局、下載Html頁(yè)面、解析頁(yè)面內(nèi)容、存入數(shù)據(jù)庫(kù)。解析網(wǎng)頁(yè)內(nèi)容有Xpath和正則表達(dá)式兩種方法。數(shù)據(jù)持久化可以通過(guò)Python中的Pymysql模塊將獲取到的數(shù)據(jù)存入Mysql完成數(shù)據(jù)持久化。數(shù)據(jù)清洗與提取可以使用Pandas庫(kù)可以對(duì)采集到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與處理。數(shù)據(jù)可視化可以通過(guò)Excel工具或者第三方庫(kù)Matplotlib進(jìn)行可視化分析。3.1.2經(jīng)濟(jì)可行性在互聯(lián)網(wǎng)大數(shù)據(jù)的背景下,可以使用大數(shù)據(jù)對(duì)于電影內(nèi)容進(jìn)行可視化的分析??梢酝ㄟ^(guò)數(shù)據(jù)采集,發(fā)現(xiàn)觀眾的電影喜好內(nèi)容是什么,把對(duì)應(yīng)的電影推薦給觀眾,實(shí)現(xiàn)大數(shù)據(jù)營(yíng)銷和預(yù)測(cè)電影票房。還可以把一部熱門電影的幾千萬(wàn)條用戶評(píng)論數(shù)據(jù)進(jìn)行搜集、整理,就可以通過(guò)尋找篩選出其中有利的一些東西做成電影品牌,這樣可以精細(xì)地理解用戶的電影愛好,對(duì)電影下一步的創(chuàng)作和發(fā)展具有很好的指導(dǎo)性。3.1.3操作可行性本系統(tǒng)界面清晰易懂,功能簡(jiǎn)單,頁(yè)面響應(yīng)速度快。能夠讓用戶能快速了解系統(tǒng)。只要你了解過(guò)操作系統(tǒng)用戶都可以使用這個(gè)程序,它的可操作性是其他替代軟件無(wú)法比擬的??梢宰層脩艉?jiǎn)單地看到電影的數(shù)據(jù),電影的各個(gè)數(shù)據(jù)非常簡(jiǎn)單的展示。因此,該系統(tǒng)具有很大的可操作性。3.2需求分析3.2.1系統(tǒng)功能需求分析系統(tǒng)的使用者主要是影評(píng)人員,對(duì)系統(tǒng)的可視化模塊進(jìn)行查看,將數(shù)據(jù)匯報(bào)給片方,片方根據(jù)影評(píng)人員匯報(bào)的數(shù)據(jù)對(duì)電影信息進(jìn)行相應(yīng)的處理。本系統(tǒng)主要實(shí)現(xiàn)了數(shù)據(jù)采集模塊和可視化功能模塊。如圖3-1系統(tǒng)用例圖所示。圖3-1系統(tǒng)用例圖3.2.2各功能用例分析(1)數(shù)據(jù)采集用例說(shuō)明:數(shù)據(jù)獲取用例詳細(xì)描述如下表3-1所示。表3-1數(shù)據(jù)采集用例描述用例條目描述用例名稱數(shù)據(jù)采集功能主要業(yè)務(wù)參與者管理員其他參與者無(wú)描述進(jìn)行需要數(shù)據(jù)的采集前置條件無(wú)后置條件將需要的數(shù)據(jù)存入數(shù)據(jù)庫(kù)觸發(fā)條件輸入要獲取的數(shù)據(jù)管理員輸入要獲取的信息結(jié)束獲取成功或者失敗實(shí)現(xiàn)約束和說(shuō)明輸入的必須是電影的信息待解決問題無(wú)電影信息分析用例說(shuō)明:電影信息分析用例詳細(xì)描述如下表3-2所示。表3-2電影信息分析用例描述用例條目描述用例名稱電影信息分析主要業(yè)務(wù)參與者管理員其他參與者無(wú)描述對(duì)電影信息的進(jìn)行分析,以柱狀圖的形式展示出來(lái)前置條件數(shù)據(jù)預(yù)處理后置條件柱狀圖展示觸發(fā)條件數(shù)據(jù)可視化圖例基本流程進(jìn)行數(shù)據(jù)可視化圖例展示圖片展示替代流程無(wú)結(jié)束圖片成功展示或者失敗實(shí)現(xiàn)約束和說(shuō)明數(shù)據(jù)已經(jīng)存入數(shù)據(jù)庫(kù)待解決問題無(wú)短評(píng)信息分析用例說(shuō)明:短評(píng)信息分析用例詳細(xì)描述如下表3-3所示。表3-3短評(píng)信息分析用例描述用例條目描述用例名稱短評(píng)信息分析主要業(yè)務(wù)參與者管理員其他參與者無(wú)描述對(duì)電影信息的進(jìn)行分析,以柱狀圖的形式展示出來(lái)前置條件數(shù)據(jù)預(yù)處理后置條件柱狀圖展示觸發(fā)條件數(shù)據(jù)可視化圖例基本流程進(jìn)行數(shù)據(jù)可視化圖例展示圖片展示替代流程無(wú)結(jié)束圖片成功展示或者失敗實(shí)現(xiàn)約束和說(shuō)明數(shù)據(jù)已經(jīng)存入數(shù)據(jù)庫(kù)待解決問題無(wú)3.2.3可視化功能性分析一個(gè)完整的數(shù)據(jù)可視化開發(fā)過(guò)程需要經(jīng)過(guò)數(shù)據(jù)采集,數(shù)據(jù)持久化,數(shù)據(jù)清洗,數(shù)據(jù)可視化這4個(gè)階段。數(shù)據(jù)可視化的主要實(shí)現(xiàn)功能如下:(1)實(shí)現(xiàn)數(shù)據(jù)采集。要實(shí)現(xiàn)電影相關(guān)數(shù)據(jù)的完整采集,電影相關(guān)數(shù)據(jù)主要是電影數(shù)據(jù)和短評(píng)數(shù)據(jù)。(2)模擬瀏覽器。豆瓣網(wǎng)站存在反爬蟲機(jī)制,想要通過(guò)python爬蟲收集數(shù)據(jù)而不被豆瓣網(wǎng)站服務(wù)器拒絕訪問。所以應(yīng)該通過(guò)設(shè)置RequestHeaders中的User-Agent模擬瀏覽器來(lái)進(jìn)行訪問。(3)模擬Ajax請(qǐng)求,豆瓣網(wǎng)站中有些頁(yè)面是異步加載形式的,所以應(yīng)通過(guò)抓包得到RequestURL返回json數(shù)據(jù),模擬Ajax請(qǐng)求通過(guò)規(guī)律循環(huán)爬取頁(yè)面信息。(4)連接數(shù)據(jù)庫(kù),要實(shí)現(xiàn)數(shù)據(jù)持久化,可以通過(guò)Python的連接MySQL服務(wù)器的庫(kù)pymysql連接數(shù)據(jù)庫(kù),將采集到的數(shù)據(jù)存入數(shù)據(jù)庫(kù)[2]。就可以永久存儲(chǔ)到本地磁盤。(5)實(shí)現(xiàn)了電影數(shù)據(jù)的預(yù)處理。本文從電影信息和短評(píng)信息兩個(gè)方面對(duì)數(shù)據(jù)進(jìn)行分析,實(shí)現(xiàn)了對(duì)電影的多角度數(shù)據(jù)清洗。分析內(nèi)容包括電影的電影評(píng)分,電影的主演,電影的類型,短評(píng)的評(píng)分等等。(6)繪制圖表。需要在數(shù)據(jù)清洗的前提下,通過(guò)python的第三方庫(kù)或者Excel數(shù)據(jù)可視化工具繪制圖像直觀地展現(xiàn)出數(shù)據(jù)可視化結(jié)果,實(shí)現(xiàn)多個(gè)維度的對(duì)電影數(shù)據(jù)進(jìn)行可視化分析。3.2.4可視化非功能性分析(1)安全性:由于我們爬取的是豆瓣網(wǎng)的用戶評(píng)論數(shù)據(jù),在訪問過(guò)程中會(huì)產(chǎn)生大量的個(gè)人隱私信息,包括個(gè)人信息和網(wǎng)絡(luò)安全信息。所以我們?cè)诰幊虝r(shí)生成的數(shù)據(jù)要及時(shí)銷毀,防止用戶信息泄露。(2)易用性:易學(xué)習(xí),易上手;(3)可靠性:接收數(shù)據(jù)準(zhǔn)確無(wú)丟失。3.3本章小結(jié)本章主要介紹了本次課題的可行性分析和需求分析??尚行苑治鰹榧夹g(shù)可行性分析、經(jīng)濟(jì)可行性分析和操作可行性分析三種。而需求分析則是可視化功能分析,還有以安全性,易用性,可靠性的非功能分析。

4數(shù)據(jù)可視化總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)與實(shí)現(xiàn),先進(jìn)行總體架構(gòu)設(shè)計(jì),并對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建,對(duì)數(shù)據(jù)表進(jìn)行創(chuàng)建,連接數(shù)據(jù)庫(kù)準(zhǔn)備工作,使各個(gè)模塊成功連接起來(lái)。4.1數(shù)據(jù)可視化架構(gòu)設(shè)計(jì)本次系統(tǒng)主要分為數(shù)據(jù)采集、數(shù)據(jù)庫(kù)和數(shù)據(jù)可視化。數(shù)據(jù)采集主要采用Scrapy框架,主要通過(guò)豆瓣網(wǎng)站的網(wǎng)頁(yè)URL采集豆瓣電影網(wǎng)站上的電影信息和短評(píng)文本等。數(shù)據(jù)庫(kù)主要采用Mysql關(guān)系型數(shù)據(jù)庫(kù),主要存儲(chǔ)從豆瓣電影數(shù)據(jù)平臺(tái)采集的電影信息、短評(píng)文本等[3]。數(shù)據(jù)可視化主要采用Matplotlib庫(kù)和數(shù)據(jù)可視化工具來(lái)進(jìn)行分析并輸出成圖表。數(shù)據(jù)可視化系統(tǒng)的簡(jiǎn)單架構(gòu)如圖4-1所示。圖4-1數(shù)據(jù)可視化系統(tǒng)的簡(jiǎn)單架構(gòu)圖4.2系統(tǒng)功能模塊設(shè)計(jì)該系統(tǒng)可以大概分為2個(gè)功能模塊:數(shù)據(jù)采集和數(shù)據(jù)可視化。其中數(shù)據(jù)采集功能模塊,主要是負(fù)責(zé)從網(wǎng)上自動(dòng)采集數(shù)據(jù)并直接存入數(shù)據(jù)庫(kù)。采用的當(dāng)下熱門的Scrapy框架和Mysql。數(shù)據(jù)可視化功能模塊,主要負(fù)責(zé)將清洗后的數(shù)據(jù)通過(guò)圖表方式展示出來(lái)。采用的當(dāng)下流行的第三方庫(kù)Matplotlib、Jieba等。系統(tǒng)功能結(jié)構(gòu)如圖4-2所示。圖4-2系統(tǒng)功能結(jié)構(gòu)圖4.2.1數(shù)據(jù)采集功能模塊設(shè)計(jì)此模塊主要采集所需的電影數(shù)據(jù),并對(duì)采集到的數(shù)據(jù)進(jìn)行清洗和存儲(chǔ)。(1)數(shù)據(jù)采集類型本次設(shè)計(jì)的爬蟲系統(tǒng)主要收集豆瓣電影網(wǎng)站上的兩個(gè)電影數(shù)據(jù)類型,第一個(gè)數(shù)據(jù)類型是電影的基本信息包括電影名、電影Id、豆瓣評(píng)分、主演、導(dǎo)演、簡(jiǎn)介等。電影基本信息采集結(jié)果如圖4-3所示。圖4-3電影基本信息采集第二個(gè)數(shù)據(jù)類型是短評(píng)信息包括短評(píng)內(nèi)容、評(píng)論時(shí)間、短評(píng)用戶、短評(píng)評(píng)分等。短評(píng)信息采集如圖4-4所示。圖4-4短評(píng)信息采集因?yàn)橐杉淘u(píng)信息就需要先采集電影的基本信息,從采集到的電影基本信息中提取出電影ID字段構(gòu)造出短評(píng)信息URL采集短評(píng)信息,這兩類數(shù)據(jù)有一個(gè)先后的采集順序[4]。(2)數(shù)據(jù)的采集電影的基本信息和短評(píng)信息雖然有一個(gè)先后的數(shù)據(jù)采集順序,但是數(shù)據(jù)采集的原理是差不多相同的,在這里主要介紹是如何進(jìn)行電影數(shù)據(jù)的采集。本系統(tǒng)電影數(shù)據(jù)采集的功能主要采用了Scrapy爬蟲框架的方法來(lái)實(shí)現(xiàn),該爬蟲框架的基本核心功能就是Scrapy的調(diào)度器,爬蟲的調(diào)度端主要功能是用來(lái)控制啟動(dòng)網(wǎng)絡(luò)爬蟲、監(jiān)視網(wǎng)絡(luò)爬蟲的運(yùn)行狀況或者是停止網(wǎng)絡(luò)爬蟲[5]。調(diào)度器從入口URL開始,并按照調(diào)度器中定義的電影數(shù)據(jù)字段的鏈接地址順序使用XPath或Re正則表達(dá)式獲取更多電影頁(yè)面源鏈接和數(shù)據(jù)。(3)數(shù)據(jù)的存儲(chǔ)網(wǎng)絡(luò)爬蟲從網(wǎng)頁(yè)上采集來(lái)的數(shù)據(jù)是有一個(gè)時(shí)效性,為了讓爬取到的信息永久都存在,就需要對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)持久性操作也就是數(shù)據(jù)存儲(chǔ)。目前數(shù)據(jù)存儲(chǔ)方式有文本文件、Excel表、數(shù)據(jù)庫(kù)等。為了給后續(xù)的數(shù)據(jù)可視化提供數(shù)據(jù)支持,此次系統(tǒng)主要采用Mysql數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。(4)數(shù)據(jù)的清洗在網(wǎng)頁(yè)上采集的電影數(shù)據(jù)不能直接拿來(lái)使用,可能存在空值、無(wú)效值、錯(cuò)誤值等。所以我們需要及時(shí)處理這些雜亂的數(shù)據(jù),將其轉(zhuǎn)化成可以直接進(jìn)行計(jì)算分析的電影數(shù)據(jù)[6]。數(shù)據(jù)清洗就是對(duì)采集到的電影基本信息和短評(píng)信息進(jìn)行缺失值處理、空值處理、去重處理等等。為了方便進(jìn)行后續(xù)的數(shù)據(jù)可視化,需要處理部分列的電影原始數(shù)據(jù),比如講電影類型這種原始數(shù)據(jù)通過(guò)關(guān)鍵字“/”分列后再近些匯總處理。4.2.2數(shù)據(jù)可視化功能模塊設(shè)計(jì)數(shù)據(jù)可視化功能模塊主要通過(guò)圖表顯示數(shù)據(jù)清洗后的數(shù)據(jù)信息。例如,我們可以對(duì)短評(píng)的評(píng)分分布和內(nèi)容進(jìn)行統(tǒng)計(jì)分析,最后將分析結(jié)果繪制成相應(yīng)的圖表進(jìn)行展示。數(shù)據(jù)采集功能模塊是將采集到的數(shù)據(jù)存儲(chǔ)到本地關(guān)系數(shù)據(jù)庫(kù)Mysql中,然后對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行清理。數(shù)據(jù)可視化功能模塊主要是讀取本地Mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)或者是清洗后存入本地文檔中的文本文件和Excel表,然后利用第三方庫(kù)或者Excel數(shù)據(jù)可視化工具將結(jié)果以圖表的形式展示出來(lái)。該模塊主要包括兩個(gè)子模塊:電影基本信息的統(tǒng)計(jì)分析和對(duì)短評(píng)信息的統(tǒng)計(jì)分析。其中每個(gè)子模塊包含多種功能。電影基本信息的統(tǒng)計(jì)分析模塊有4個(gè)功能:不同類型的電影數(shù)量分析功能、演員的主演次數(shù)分析功能、豆瓣評(píng)分集中趨勢(shì)分析功能、電影的評(píng)分變化分析功能。短評(píng)信息的統(tǒng)計(jì)分析模塊有關(guān)鍵詞分析功能和短評(píng)評(píng)分占比的分析功能。(1)電影短評(píng)分析。電影的短評(píng)是用戶較為關(guān)注的一個(gè)指標(biāo),由于豆瓣對(duì)電影的評(píng)論把控要求特別嚴(yán)格,相比一些其他的互聯(lián)網(wǎng)視頻網(wǎng)站,豆瓣的短評(píng)具有一定的說(shuō)服力[7],本節(jié)主要從短評(píng)關(guān)鍵字進(jìn)行分析。(2)電影基本信息分析。從電影的基本信息角度分析中國(guó)電影總體的作品質(zhì)量和滿意度等等。4.3時(shí)序圖設(shè)計(jì)為了直觀的了解各個(gè)模塊的是如何運(yùn)轉(zhuǎn),進(jìn)行了時(shí)序圖的創(chuàng)建。如圖4-5所示。圖4-5對(duì)象的實(shí)體關(guān)系圖4.4系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)為了實(shí)現(xiàn)數(shù)據(jù)的持久化,本系統(tǒng)對(duì)4.2.1小節(jié)的數(shù)據(jù)存儲(chǔ)功能進(jìn)行了系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)。4.4.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)系統(tǒng)的數(shù)據(jù)庫(kù)的對(duì)象主要包括電影基本信息,短評(píng)信息。電影對(duì)象是指收集到的電影基本數(shù)據(jù)。電影對(duì)象的屬性包括電影id、電影名稱、簡(jiǎn)介、制片地區(qū)、主演、類型、豆瓣評(píng)分等。短評(píng)對(duì)象是指收集到的每部電影的短評(píng)信息,短評(píng)對(duì)象包含的屬性是短評(píng)用戶、短評(píng)文本、評(píng)論時(shí)間、短評(píng)評(píng)分等。電影與短評(píng)之間存在著1對(duì)多的關(guān)系,一部電影能夠擁有多條短評(píng),單身一個(gè)短評(píng)只能被一部電影所擁有[8]。對(duì)象的實(shí)體關(guān)系圖如圖4-6所示。圖4-6對(duì)象的實(shí)體關(guān)系圖4.4.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì),現(xiàn)設(shè)計(jì)以下數(shù)據(jù)庫(kù)表。(1)《瘋狂動(dòng)物城》短評(píng)數(shù)據(jù)表存放爬取到的《瘋狂動(dòng)物城》這部電影的電影id、短評(píng)用戶名、短評(píng)評(píng)論的時(shí)間、短評(píng)評(píng)分、短評(píng)的內(nèi)容。如表5.1所示。表5.1《瘋狂動(dòng)物城》短評(píng)數(shù)據(jù)表列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明movie_idInt11否是電影idPL_namevarchar255否否短評(píng)用戶名Pl_timevarchar255否否短評(píng)評(píng)論時(shí)間PL_numbervarchar255否否短評(píng)評(píng)分PL_mattervarchar255否否短評(píng)內(nèi)容(2)中國(guó)大陸最近熱門電影信息表存放爬取到的電影id、電影的名稱、電影的評(píng)分、電影的導(dǎo)演名稱、電影的主演、電影的類型、電影的制片地區(qū)、電影的語(yǔ)言類型、電影的簡(jiǎn)介。如表5.2所示。表5.2中國(guó)大陸最近熱門電影信息表列名數(shù)據(jù)類型長(zhǎng)度允許空是否主鍵說(shuō)明movie_idInt11否是電影idmovie_namevarchar255否否電影名稱movie_scorevarchar255否否電影的評(píng)分movie_dirvarchar255否否電影導(dǎo)演名稱movie_actvarchar255否否電影的主演movie_typevarchar255否否電影的類型movie_areasvarchar255否否電影的制片地區(qū)movie_lanvarchar255否否電影的語(yǔ)言類型movie_briefvarchar255否否電影的簡(jiǎn)介4.5本章小結(jié)本章主要介紹了本次課題數(shù)據(jù)可視化系統(tǒng)的基礎(chǔ)架構(gòu)設(shè)計(jì),系統(tǒng)主要功能模塊設(shè)計(jì),主要模塊是數(shù)據(jù)采集功能模塊,可視化功能模塊,最后,怎么能忘記數(shù)據(jù)庫(kù)的設(shè)計(jì),包括數(shù)據(jù)庫(kù)的概念設(shè)計(jì)和邏輯結(jié)構(gòu)設(shè)計(jì)。

5數(shù)據(jù)可視化系統(tǒng)實(shí)現(xiàn)5.1數(shù)據(jù)采集功能實(shí)現(xiàn)電影的數(shù)據(jù)采集主要使用基于Python開發(fā)的爬蟲輕量級(jí)框架Scrapy框架實(shí)現(xiàn)數(shù)據(jù)采集[9]。因?yàn)檫@兩類數(shù)據(jù)有一個(gè)采集順序。在實(shí)際采集的過(guò)程中,先要采集電影的基本信息,存入數(shù)據(jù)庫(kù)電影基本信息表中。再根據(jù)電影基本信息表中的電影的Id構(gòu)造出電影短評(píng)的URL用來(lái)采集指定電影的前200個(gè)短評(píng)信息,存入數(shù)據(jù)庫(kù)短評(píng)信息表中。上述關(guān)于存入數(shù)據(jù)庫(kù)的關(guān)鍵代碼如下圖所示:數(shù)據(jù)采集流程圖如5-1所示。圖5-1數(shù)據(jù)采集流程圖雖然這兩種數(shù)據(jù)采集的順序不同,但采集原理是相同的,本文主要對(duì)電影基本信息的采集實(shí)現(xiàn)做了具體的介紹。因?yàn)槎拱觌娪熬W(wǎng)站是異步加載的,所以需要使用分頁(yè)請(qǐng)求來(lái)抓取電影數(shù)據(jù)頁(yè)面的URL。先獲取電影分類頁(yè)URL,然后通過(guò)遍歷分類頁(yè)URL循環(huán)解析電影分類頁(yè)面中的電影詳情URL和一些基本信息,之后進(jìn)入電影詳情URL下載并解析出想要的電影數(shù)[10]。關(guān)鍵代碼如下:豆瓣電影平臺(tái)的電影資源顯示在異步加載的分類頁(yè)面上,以每頁(yè)增加20部電影的數(shù)量展示在頁(yè)面上,因此用豆瓣的分類頁(yè)抓包返回的Requesturl作為Base_url并且每以20遞增構(gòu)造新的電影分類頁(yè)URL。為了防止豆瓣網(wǎng)站的反爬蟲機(jī)制,采取模擬瀏覽器登錄,關(guān)鍵代碼如下:電影數(shù)據(jù)頁(yè)面主要通過(guò)xpath字符串或者re正則式匹配HTML中對(duì)應(yīng)字段消息[11]。網(wǎng)頁(yè)解析關(guān)鍵代碼如圖所示:數(shù)據(jù)解析之后就是數(shù)據(jù)存儲(chǔ)階段,數(shù)據(jù)存儲(chǔ)階段是通過(guò)Pymysql庫(kù)連接到數(shù)據(jù)庫(kù)。電影數(shù)據(jù)存儲(chǔ)代碼如圖所示:在數(shù)據(jù)存儲(chǔ)之后,最后一個(gè)過(guò)程是數(shù)據(jù)清理,主要是通過(guò)Pandas檢查數(shù)據(jù),重復(fù)值檢查,空值檢查等等。電影數(shù)據(jù)清洗代碼如圖所示:5.2數(shù)據(jù)可視化功能實(shí)現(xiàn)數(shù)據(jù)可視化功能模塊主要是對(duì)電影基本信息和短評(píng)信息進(jìn)行統(tǒng)計(jì)分析,并以圖表的方式進(jìn)行顯示。目前常用的可視化方法有兩種:分別是數(shù)據(jù)可視化軟件和可以進(jìn)行數(shù)據(jù)可視化的第三方庫(kù)。本系統(tǒng)的數(shù)據(jù)可視化模塊利用數(shù)據(jù)可視化軟件Excel+第三方庫(kù)matplotlib進(jìn)行可視化展示。中國(guó)大陸最近熱門電影作品豆瓣評(píng)分集中趨勢(shì)直方圖如圖6.4所示。該模塊的實(shí)現(xiàn)原理都一樣,現(xiàn)主要針對(duì)從豆瓣評(píng)分集中趨勢(shì)的展示實(shí)現(xiàn)做一個(gè)介紹。豆瓣評(píng)分集中趨勢(shì)用直方圖展示,橫坐標(biāo)是豆瓣評(píng)分,評(píng)分區(qū)間是0-10??v坐標(biāo)是相同評(píng)分的影片數(shù)量。第一使用pandas的read_csv讀入csv文件,第二配置中文字體和修改字體,避免出現(xiàn)亂碼現(xiàn)象。第三創(chuàng)建畫布。最后繪制直方圖。5.3本章小結(jié)本章主要介紹了本次課題數(shù)據(jù)可視化系統(tǒng)實(shí)現(xiàn)環(huán)境,數(shù)據(jù)采集功能實(shí)現(xiàn),數(shù)據(jù)可視化分析功能實(shí)現(xiàn)。具體表現(xiàn)為各個(gè)模塊的代碼展示,以及設(shè)計(jì)思路。

6數(shù)據(jù)可視化結(jié)果展示隨著電影行業(yè)的飛速發(fā)展,越來(lái)越多的電影公司開始希望通過(guò)用戶對(duì)不同電影的評(píng)分變化來(lái)了解用戶想看電影的需求和喜好。電影評(píng)分主要是觀眾對(duì)于電影從期待和接受的角度對(duì)于電影內(nèi)容進(jìn)行的一種評(píng)價(jià)和回饋,一方面是取決于電影本身質(zhì)量,另一方面則是取決于觀眾本身對(duì)電影的這種接受需求,即電影在多大程度上與電影對(duì)于觀眾的這種期待以及視域已經(jīng)達(dá)到了融合[12]。本次課題主要從以下幾點(diǎn)來(lái)為用戶提供詳細(xì)的觀看建議與推薦,為電影行業(yè)制片人等提供可用的觀眾喜好數(shù)據(jù)。第一,從關(guān)鍵詞分析觀眾看點(diǎn)。第二,從短評(píng)評(píng)分占比角度分析用戶對(duì)電影的接受程度。第三,從不同電影的評(píng)分變化角度分析最近熱門中國(guó)大陸作品質(zhì)量。第四,從豆瓣評(píng)分集中趨勢(shì)的角度分析最近熱門中國(guó)大陸作品質(zhì)量。第五,從演員擔(dān)任不同電影的主演次數(shù)的角度分析觀眾接受度。最后,從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型。6.1關(guān)鍵詞分析觀眾看點(diǎn)《瘋狂動(dòng)物城》短評(píng)文本詞云圖如圖6.1所示。從圖6.1可知,這部影片是動(dòng)畫類型。影片角色有狐貍、兔子、樹懶等。圖中存在“最佳”、“好看”、“不錯(cuò)”、“細(xì)節(jié)”、“可以”等“關(guān)鍵字”,可以分析出這部影片作品質(zhì)量比較高,觀眾對(duì)這部影片持支持態(tài)度。喜歡動(dòng)畫類型但是找不到好電影的就可以嘗試觀看該影片,電影制片方也能借此分析出觀眾們喜歡的看點(diǎn)是什么。圖6.1《瘋狂動(dòng)物城》短評(píng)文本詞云圖6.2從豆瓣評(píng)分趨勢(shì)的角度分析最近熱門中國(guó)大陸作品質(zhì)量橫坐標(biāo)是豆瓣評(píng)分,評(píng)分區(qū)間是0-10。縱坐標(biāo)是相同評(píng)分的影片數(shù)量。中國(guó)大陸最近熱門電影作品豆瓣評(píng)分集中趨勢(shì)直方圖如圖6-2所示。圖6-2中國(guó)大陸Top250部電影作品豆瓣評(píng)分集中趨勢(shì)直方圖從圖6.2可知,中國(guó)大陸Top250部電影的豆瓣評(píng)分集中在8-9分之間,其中8.8分最多,8.7分其次。低于8.4分的作品很少,但是高于9分左右的作品也比較少。8-9分之間有道“分水嶺”,影片數(shù)量呈懸崖式下跌。可以分析出“分水嶺”右邊的電影作品是特別優(yōu)秀的作品,看過(guò)的基本都打了高分的那種。而左邊則是比較優(yōu)秀或者不優(yōu)秀的作品,能夠打動(dòng)大部分人卻很難獲得所有看過(guò)這部電影的人的贊賞。中國(guó)大陸的電影還存在上升空間,希望能夠跨過(guò)“分水嶺”,帶給觀眾更多的精品作品。6.3從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型中國(guó)大陸電影的類型信息有19種,我比較喜歡觀看的類型有愛情、動(dòng)畫、動(dòng)作、犯罪、古裝、家庭、劇情、真人秀等,TOP250電影比較如圖6.3所示。從圖6.3可知,劇情類型的電影最受歡迎,第二受歡迎的是喜劇類型。第三是動(dòng)作類型,有117部。受眾比較少的電影類型是傳記、犯罪、古裝、家庭、音樂、驚悚等等??梢苑治龀鲭娪笆袌?chǎng)的劇情類型的電影需求量最高,因?yàn)閲?guó)人受眾最多的電影類型是劇情。圖6-3中國(guó)大陸最近熱門不同類型的電影數(shù)量比較6.4電影評(píng)價(jià)人數(shù)在豆瓣上,評(píng)價(jià)人數(shù)在5000-10000的最多,其次是10000-15000人次,最低是1000人次。從數(shù)據(jù)來(lái)看,在豆瓣進(jìn)行電影評(píng)價(jià)的人較多,總?cè)藬?shù)超過(guò)了150000人次。6.5本章小結(jié)本章主要介紹了對(duì)電影基本信息和短評(píng)信息的分析結(jié)果展示。具體為以關(guān)鍵詞分析觀眾看點(diǎn)展示的詞云,豆瓣評(píng)分趨勢(shì)的分布圖,電影評(píng)價(jià)人數(shù)的條形圖。

7系統(tǒng)測(cè)試本章對(duì)豆瓣電影數(shù)據(jù)分析可視化進(jìn)行測(cè)試,闡述了初步測(cè)試的思路、過(guò)程、分析、結(jié)果。來(lái)測(cè)試項(xiàng)目數(shù)據(jù)的精準(zhǔn)性,也能完善項(xiàng)目功能的數(shù)據(jù)使用并得到結(jié)果。系統(tǒng)寫實(shí)的重要性在于,它可以展示出系統(tǒng)各個(gè)功能的流暢性,降低系統(tǒng)漏洞風(fēng)險(xiǎn)。此環(huán)節(jié)會(huì)對(duì)系統(tǒng)的各個(gè)功能進(jìn)行測(cè)試,用于保證系統(tǒng)的可用性。7.1系統(tǒng)測(cè)試方案設(shè)計(jì)自動(dòng)化測(cè)試的最關(guān)鍵目的是在系統(tǒng)應(yīng)用的整個(gè)過(guò)程中更好地減少不準(zhǔn)確性和系統(tǒng)漏洞。對(duì)于用戶來(lái)說(shuō),系統(tǒng)的不正確或系統(tǒng)漏洞將影響用戶的體驗(yàn)。在特定測(cè)試的整個(gè)過(guò)程中,有必要以用戶的身份進(jìn)行自動(dòng)化測(cè)試??梢赃x擇測(cè)試平臺(tái)以發(fā)現(xiàn)系統(tǒng)中的系統(tǒng)漏洞,并且可以任意選擇總體目標(biāo)用戶進(jìn)行測(cè)試。只有這樣才能確保系統(tǒng)的高質(zhì)量運(yùn)行。因此,我對(duì)該系統(tǒng)的測(cè)試為黑盒測(cè)試。7.2系統(tǒng)測(cè)試用例為了讓所有的用戶都能方便快捷地使用本系統(tǒng),并且讓系統(tǒng)能夠出現(xiàn)盡可能少的問題,減少錯(cuò)誤的發(fā)生。我將從數(shù)據(jù)獲取,不同電影信息分析,不同影評(píng)分析等系統(tǒng)用例來(lái)測(cè)試系統(tǒng)的功能,考慮多種情況對(duì)系統(tǒng)功能的影響。7.2.1數(shù)據(jù)采集測(cè)試該測(cè)試是對(duì)數(shù)據(jù)采集測(cè)試的檢驗(yàn),在進(jìn)行數(shù)據(jù)采集時(shí)判斷,如果采集的不是電影數(shù)據(jù),電影信息不存在,頁(yè)碼超過(guò)已有頁(yè)碼或者數(shù)據(jù)已經(jīng)存入在了數(shù)據(jù)庫(kù)當(dāng)中,系統(tǒng)就會(huì)提示,數(shù)據(jù)保存失敗,只有數(shù)據(jù)庫(kù)中,未擁有該數(shù)據(jù),才會(huì)成功爬取,顯示數(shù)據(jù)保存成功。(1)測(cè)試序號(hào):01;(2)目的:確保數(shù)據(jù)獲取功能完好;(3)前提:存入豆瓣電影網(wǎng)電影數(shù)據(jù);(4)測(cè)試方法:手動(dòng)測(cè)試。(5)測(cè)試結(jié)果:測(cè)試結(jié)果符合預(yù)期結(jié)果;數(shù)據(jù)采集測(cè)試用例如表7-1所示;表7-1數(shù)據(jù)采集測(cè)試用例表序號(hào)輸入預(yù)期結(jié)果實(shí)際結(jié)果測(cè)試結(jié)果1獲取豆瓣電影網(wǎng)的電影基本信息獲取排名前250的電影中文名稱,評(píng)分等信息獲取排名前250的電影中文名稱,評(píng)分等信息通過(guò)2獲取豆瓣電影網(wǎng)的電影其他信息獲取排名前250的電影導(dǎo)演,主演等信息獲取排名前250的電影導(dǎo)演,主演等信息通過(guò)7.2.2評(píng)價(jià)人數(shù)和情感分析測(cè)試該測(cè)試是對(duì)評(píng)價(jià)人數(shù)和情感分析的測(cè)試,在進(jìn)行不同評(píng)價(jià)人數(shù)和情感分析測(cè)試時(shí),只有數(shù)據(jù)存入在數(shù)據(jù)庫(kù)當(dāng)中。符合條件的,才會(huì)進(jìn)行可視化圖例。(1)測(cè)試序號(hào):02;(2)目的:確保圖例能成功顯示;(3)前提:所有電影數(shù)據(jù)已經(jīng)全部存入數(shù)據(jù)庫(kù)中;(4)測(cè)試方法:手動(dòng)測(cè)試。(5)測(cè)試結(jié)果:測(cè)試結(jié)果符合預(yù)期結(jié)果;評(píng)價(jià)人數(shù)和情感分析測(cè)試用例如表7-2所示;表7-2評(píng)價(jià)人數(shù)和情感分析測(cè)試用例表序號(hào)輸入預(yù)期結(jié)果實(shí)際結(jié)果測(cè)試結(jié)果1評(píng)價(jià)人數(shù)評(píng)價(jià)人數(shù)對(duì)比柱狀圖評(píng)價(jià)人數(shù)對(duì)比柱狀圖通過(guò)2情感分析情感分析占比扇形圖情感分析占比扇形圖通過(guò)7.2.3評(píng)分和詞云分析測(cè)試該測(cè)試是對(duì)評(píng)價(jià)人數(shù)和情感分析的測(cè)試,在進(jìn)行評(píng)分和詞云分析測(cè)試時(shí),只有數(shù)據(jù)存入在數(shù)據(jù)庫(kù)當(dāng)中。符合條件的,符合要求低,才會(huì)進(jìn)行對(duì)應(yīng)的可視化圖例展示。(1)測(cè)試序號(hào):03;(2)目的:確保圖例能成功顯示;(3)前提:所有電影數(shù)據(jù)已經(jīng)全部存入數(shù)據(jù)庫(kù)中;(4)測(cè)試方法:手動(dòng)測(cè)試。(5)測(cè)試結(jié)果:測(cè)試結(jié)果符合預(yù)期結(jié)果;評(píng)分和詞語(yǔ)測(cè)試用例如表7-2所示;表7-2評(píng)分和詞云分析測(cè)試用例表序號(hào)輸入預(yù)期結(jié)果實(shí)際結(jié)果測(cè)試結(jié)果1評(píng)分評(píng)分分布柱狀圖評(píng)分分布柱狀圖通過(guò)2詞云詞云圖例展示詞云圖例展示通過(guò)7.3本章小結(jié)本章主要是對(duì)功能的測(cè)試,在整個(gè)功能測(cè)試過(guò)程中,所有的功能都達(dá)到了預(yù)期的效果,可以說(shuō),功能測(cè)試非常成功。在進(jìn)行這3次功能測(cè)試當(dāng)中,圖例都很完美的展現(xiàn)了出來(lái),給觀看一個(gè)良好的觀看體驗(yàn)。

結(jié)論在本次課題,我使用Python3+Scrapy獲取數(shù)據(jù),使用Pymysql+Mysql存儲(chǔ)數(shù)據(jù),使用Pandas清洗數(shù)據(jù),Python第三方庫(kù)Matplotlib和Excel數(shù)據(jù)可視化分析工具進(jìn)行了數(shù)據(jù)的可視化。本文對(duì)《瘋狂動(dòng)物城》批注文本進(jìn)行了直觀的云圖分析;從不同電影的評(píng)分變化角度分析最近熱門中國(guó)大陸作品質(zhì)量;從短評(píng)評(píng)分占比角度分析用戶對(duì)《瘋狂動(dòng)物城》這部電影的接受程度;從豆瓣評(píng)分集中趨勢(shì)的角度分析最近熱門中國(guó)大陸作品質(zhì)量;從演員擔(dān)任不同電影的主演次數(shù)的角度分析觀眾接受度;從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型。在這個(gè)大數(shù)據(jù)時(shí)代,電影大數(shù)據(jù)分析早已經(jīng)開始取得非常不錯(cuò)的實(shí)際應(yīng)用。我們可以快速地了解到和找到各種電影統(tǒng)計(jì)數(shù)據(jù),如:電影票房的排行、觀影的人群年齡和性別的分布、電影的評(píng)價(jià)等級(jí)、長(zhǎng)影評(píng)和短影評(píng)等等使用影評(píng)數(shù)據(jù)能夠反映觀眾對(duì)電影最直接的感受和評(píng)價(jià),而最重要的是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論