




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于豆瓣網電影數(shù)據的分析與可視化摘要隨著我國互聯(lián)網行業(yè)和數(shù)字電影行業(yè)的不斷飛速發(fā)展,兩者之間的合作聯(lián)系越來越緊密。還陸續(xù)出現(xiàn)了許多基于互聯(lián)網上的視頻播放網站。用戶想要在這些視頻播放網站上找到自己喜歡的電影是一件很不容易的事,為了給用戶的選擇提供一個有用的參考,在龐大的網絡電影庫中快速找到自己真正喜歡的網絡電影,本次課題從電影信息和短評信息兩方面入手設計了豆瓣電影數(shù)據可視化系統(tǒng)。為了更好地對國內電影網站數(shù)據進行分析,本課題首先利用Python+Scrapy建立一套爬蟲系統(tǒng),收集豆瓣網的相關數(shù)據,通過Mysql數(shù)據庫把獲取到的電影名、電影導演、電影評分、電影類型、評論用戶等數(shù)據進行持久化,為整個可視化系統(tǒng)提供了廣泛而可靠的數(shù)據支持。最后使用Python提供的第三方庫Matplotlib、Pands和Excel數(shù)據可視化工具進行數(shù)據清洗和以圖形的形式直觀地展示數(shù)據結果,并多角度分析電影的發(fā)展,得出相關結論。關鍵詞:Scrapy;Python;第三方庫;數(shù)據可視化;電影
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緒論 緒論第一章主要介紹了關于這個項目的一些基本介紹,包括有開發(fā)系統(tǒng)之前的要了解這個項目的背景和意義,然后關于這個課題的國內外的研究現(xiàn)狀如何,然后介紹在開發(fā)這個系統(tǒng)的時候需要用到那些技術,本章主要介紹這些內容,本章的具體內容如下。1.1研究背景和意義近幾年,在網絡Python語言強勢的發(fā)展背景下,數(shù)據思維及數(shù)據分析方法也逐漸被運用到各個領域當中,成為人們進行分析數(shù)據,傳播內在規(guī)律的有效途徑。如果我們只用人力來下載相關信息,不僅要花很多時間,而且得到的信息也很少。[1]網絡爬蟲是一個你可以自己獲取網頁的次序。它將從包含大量信息的信息庫中提取有用的信息,爬蟲在提取有用信息方面非常有效,這使得解決和分析數(shù)據成為現(xiàn)實。網絡爬蟲將繼續(xù)提取網頁上的數(shù)據,并將其存儲在本地。通過分析和篩選,可以在緩存數(shù)據中創(chuàng)建準則并存儲在系統(tǒng)中,方便用戶查詢和搜索。爬蟲系統(tǒng)很好地提取了隱藏在大量數(shù)據中的信息,搜索效率很高,在很大程度上更好地利用了信息數(shù)據庫。爬蟲系統(tǒng)節(jié)省了大量的讀取和存儲數(shù)據的時間,協(xié)助研究人員以及儲存眾多信息,因此可以更加便捷地獲取藏匿在數(shù)據之后的知識。現(xiàn)階段,電影已經逐漸成為現(xiàn)代人們日常娛樂休閑消遣的重要生活方式之一,受到越來越多的年輕人的喜愛和追捧。根據初步統(tǒng)計,2016年中國電影門票市場已經實現(xiàn)各項重要指標的快速健康發(fā)展。在這個新的時代背景下,中國電影行業(yè)要想取得更大進步,就必然需要不斷提升每部電影作品質量,挖掘廣大觀眾對每部電影的總體評價和觀眾反饋的每部電影的相關數(shù)據,充分及時了解廣大觀眾的觀影需求,制作和推出更多受觀眾歡迎的好電影作品。從用戶觀眾體驗層面來說,網絡上存在著大量的網絡電影視頻資源,用戶想要在龐大的網絡電影庫中快速找到自己真正喜歡的網絡電影比較困難。所以本次課題從豆瓣電影入手,分析電影評分與電影導演、電影評分與電影主演、電影評分與地區(qū)等之間的關系,以及用戶對電影的短評數(shù)據,為用戶提供更加詳細的電影觀看建議與電影推薦,為電影行業(yè)提供可用的觀眾滿意度數(shù)據等等。1.2國內外研究現(xiàn)狀在國內,很多平臺都會使用大數(shù)據來研究電影相關信息進而預測票房和電影口碑,致力于提供給觀眾更加優(yōu)質的電影產品。2010年,惠普實驗室分析了推特上的電影數(shù)據實現(xiàn)票房預測。Python作為搜索引擎技術組成部分之一,自九十年代初誕生了第一個網絡爬蟲以來,Python技術已經經過了20多年的發(fā)展,經過這么多年的發(fā)展,Python技術也趨于成熟,逐漸覆蓋了網頁開發(fā)、游戲開發(fā)、爬蟲分析可視化、腳本開發(fā)等等專業(yè)領域。[5]并通過其簡單易懂、代碼編寫效率高的特點,成為目前最為火熱的開發(fā)編程語言,也正是其應用廣泛,上手容易,語法強大,代碼可讀性強的特點,受到了很多人的喜愛,讓很多人愛不釋手。同時,由于不同的人對于數(shù)據爬取內容的差異,常常會產生不同的需求,因此爬蟲主要可以分為以下兩種:通用爬蟲:通用爬蟲其實很簡單,它的作用就是將網絡上的網頁下載下來,保存到本地,其實就是生成一個副本,作為網頁的備份。所以通用搜索一般得到的都是網頁,對于用戶來說,網頁的內容十之八九都是沒用的,要的只是網頁中的某些特定的信息。所以就有了我們第二種爬蟲方法。聚焦爬蟲:聚焦爬蟲是比通用爬蟲更加復雜一點,它不同于通用爬蟲,通用爬蟲是將網頁保存到本地,但是聚焦爬蟲,它不會將整個網頁爬取下來,它會篩選得到網頁中我們所需要的東西,而篩選的條件規(guī)則是由我們自己定義的,相比通用爬蟲,聚焦爬蟲它做的工作更多,但是得到的數(shù)據更加符合我們的要求,本文所實現(xiàn)的爬蟲,就是通過聚焦爬蟲所實現(xiàn)的。自1990年代以來,許多計算機工作者一直從專注于相關領域的研發(fā)工作。從當前實際看,爬蟲科技日漸成熟。國內有許多研究網絡爬蟲系統(tǒng)的組織和學者,如杜鳳媛設計實現(xiàn)的一套分布式自定義集合網絡爬蟲系統(tǒng),它可以一次準確識別大量各種網頁元素,能夠形成提取規(guī)則,而且可以通過不同的網頁情況以信息采集方式對場景化進行適應,從而對數(shù)據進校高效處理。用戶可以根據自己的需求可視化地編輯爬蟲任務腳本,自動完成爬蟲數(shù)據的采集。還有一個潘劍鋒設計的主題爬蟲系統(tǒng),從結構化數(shù)據中提取,計算網頁結構相似度,去噪文本,中文分詞,主題關鍵詞抽取等五個方面對主題爬蟲的工作流程進行了設計和研究,介紹了網頁分類的基本步驟,重點分析了樸素貝葉斯分類算法、TF-IDF算法和余弦相似度的基本工作原理。[11]在實際對客戶查詢要求進行解決的基礎上,有的學者對網絡爬蟲定義進行了研究,主要數(shù)基于信息抓取的考慮,采用特征并不明顯的特定爬蟲。網絡爬蟲技術旨在為在互聯(lián)網上搜索用戶提供后續(xù)搜索和推薦服務。國內外的大型搜索引擎公司每天都使用自己的爬蟲程序在互聯(lián)網上爬取大量信息。除了搜索引擎公司的閉源爬蟲程序之外,互聯(lián)網上還有許多開放源爬蟲技術[12]。在Scrapy爬蟲框架中主要采用的語言是Python。[13]而該框架主要依賴于Python事件進行框架驅動,能夠讓操作人員非常簡便地運用爬蟲對相關模塊進行研發(fā),而通過不同頁面的抓取,以結構數(shù)據進行顯現(xiàn),通過多樣的配置,不斷增加定義的中間軟件,通過鏈接和進程以及代理去抓取、測試以及進行并發(fā)和速度控制?;赟crapy框架細節(jié)以及爬蟲策略的深入研究,能夠對爬取策略與架構進行深入整合分析,在優(yōu)化系統(tǒng)中,可以讓多個環(huán)節(jié)環(huán)環(huán)相連。[14]Scrapy具有更成熟的文檔和擴展名,因此實現(xiàn)預期目標進行開發(fā)相對方便。西方學者比國內學者更早使用大數(shù)據的方法對電影領域進行分析。其中最有代表性的是澳洲學者巴里·索特。[15]索特對影片的模式進行了十分精確地更改:遠景,中景,近攝,長鏡頭,短鏡頭,動作鏡頭等等。他通過計算這些場景的數(shù)據判斷出導演或時代的風格。1.3系統(tǒng)主要內容及論文結構安排1.3.1系統(tǒng)主要內容這次課題的主要內容是通過Python3+Scrapy框架爬取所需要的1000多個數(shù)據,并全部存入Mysql,然后對存入Mysql中的數(shù)據進行數(shù)據清洗與提取成Csv文件、Excel數(shù)據表和文本文件等等。通過Python第三方庫Matplotlib等對Csv文件或者文本文件中的內容進行分析,或將Excel數(shù)據表用Excel可視化工具進行分析。本次課題主要研究高評分豆瓣電影之間的關系,能夠帶給觀眾更方便的電影觀看選擇,以及研究觀眾在豆瓣電影評論區(qū)的短評內容,帶給電影制作方更直觀的觀眾觀看后的感想與體會1.3.2論文結構安排本文共分為7個章節(jié),具體內容和操作順序如下:第一章是引言,此章節(jié)主要闡述了本次研究課題的背景、開發(fā)的意義和國內外的現(xiàn)狀。第二章是相關技術和開發(fā)環(huán)境。本章介紹了本次課題所采用的各種相關開發(fā)技術和系統(tǒng)開發(fā)環(huán)境。第三章是可行性與需求分析,此章節(jié)介紹了本次課題的技術上和經濟上的可行性以及需求分析。第四章是數(shù)據可視化總體設計,此章節(jié)介紹了系統(tǒng)的簡單架構組成、主要的功能模塊、數(shù)據庫表的設計和連接。第五章是數(shù)據可視化系統(tǒng)實現(xiàn),此章節(jié)介紹了如何實現(xiàn)本次課題的各個功能模塊。第六章是數(shù)據可視化結果展示,此章節(jié)介紹了數(shù)據可視化的結果展示。第七章是系統(tǒng)測試,此章節(jié)介紹了系統(tǒng)用例測試。
2相關技術與開發(fā)環(huán)境在進行設計的時候,需要先了解需要掌握相關的技術才可以,然后還要確定使用的開發(fā)環(huán)境,這里采用了Pycharm來作為編譯代碼的開發(fā)工具。2.1相關技術簡介2.1.1Python簡介1991年,吉多·范羅蘇姆開發(fā)出了Python腳本語言。Python腳本語言是一個具有良好的解釋性、編譯性、互動性等一系列特性的面向對象編程腳本語言。它最大的特點和優(yōu)勢之一是有豐富的標準庫,Python提供的第三方庫主要可以實現(xiàn)web軟件開發(fā)、圖形繪制等多個功能。比較著名的庫有:Django、Flask、Tornado、Matplotlib、SciPy、NumPy、PyQt、WxPython、PIL、TensorFlow等。所以Python可以讓用戶在編程的過程中用最少的代碼來表達自己的想法。2.1.2XPath簡介Xpath編程語言被設計以來就可以提供給xslt、xquery以及xpointery使用。Xpath提供很多標準庫函數(shù)。Xpath的內置函數(shù)就有100個。其中字符串函數(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框架簡介Scrapy框架是適用于Python的網站數(shù)據爬蟲框架。該框架常常被用在數(shù)據采集、數(shù)據存儲、數(shù)據清洗等程序。利用Scrapy框架可以快速實現(xiàn)一個網站爬蟲,抓取指定網站內容。盡管Scrapy的框架最初是為了它被用來在網絡上抓取,但它也被認為是很容易通過訪問api提取結構性數(shù)據。Srapy框架文件具有以下6個主要的文件目錄結構:items、middlewares、pipelines、settings、spiders、scrapy.cfg。Scrapy的架構圖如圖2-1所示。圖2-1scrapy架構圖(綠線是數(shù)據流向)2.1.4Matplotlib簡介Matplotlib庫是一個基于Python眾多第三方繪圖包中比較熱門的一個。是一個提供數(shù)據繪圖功能的第三方繪圖庫,pyplot子庫把構造數(shù)據繪圖所需對象的過程封裝在一個函數(shù)中,可以用來快速實現(xiàn)各種數(shù)據顯示圖形繪圖。使用Matplotlib庫。開發(fā)人員僅僅需要幾行簡略的代碼,便能夠快速地生成圖表。一般可以用來繪制條形圖、詞云圖、雷達圖等等。2.1.5Pandas簡介最開始,因為Pandas是一個金融數(shù)據分析工具,Pandas工具包在時間序列數(shù)據分析中具有較強的數(shù)據分析功能和支持。使用爬蟲爬取到的數(shù)據會存在大量的噪音,比如空格、重復值等等。因此需要對原始數(shù)據進行進一步的清洗。清洗后的數(shù)據才是我們需要分析的數(shù)據。Python中的Pandas庫可以對采集到的數(shù)據進行統(tǒng)計與處理進行。將爬取得數(shù)據組合成DataFrame表格格式。2.2開發(fā)環(huán)境2.2.1PyCharm簡介PyCharm是個功能強大的IDE,它已經發(fā)展成為一個強大的工具。專業(yè)軟件開發(fā)人員和剛開始學習的開發(fā)人員都可以安全使用。Pycharm使用的PEP8標準是Python規(guī)范。對于初學者,Pycharm為autopep8提供了這個工具。只需要在環(huán)境中安裝此工具,就可以解決代碼不規(guī)范問題。同時,Pycharm還擁有斷點調試功能,在程序debug時,程序就會在添加了斷點標記的行停下來。Pycharm還擁有大量的快捷鍵,除了我們平時經常使用的那些,它還有些編碼時能夠加快編碼速度的快捷鍵,比如alt+insert(自動生成代碼)、ctrl+alt+l(代碼格式化)等等。2.2.2Mysql簡介Mysql現(xiàn)在屬于Oracle公司。Mysql數(shù)據庫也是以c/s結構為基礎的數(shù)據庫軟件,訪問者必須通過客戶端進行訪問。Mysql數(shù)據庫可以被永久性地存儲在一個磁盤中。Mysql使用的是sql語言,sql語言是訪問數(shù)據庫最常用的標準化語言,可以很好地實現(xiàn)對用戶數(shù)據庫的查詢。Mysql數(shù)據庫是一種支持關聯(lián)的數(shù)據庫系統(tǒng),關聯(lián)的數(shù)據庫將被所有用戶使用的數(shù)據存儲在不同的數(shù)據庫表中。Mysql也支持大型的數(shù)據庫。2.3本章小結本章主要介紹研究過程使用的相關技術和開發(fā)環(huán)境,相關技術主要包括了Python,以及Python相關的庫,還有XPath和爬蟲框架Scrapy框架的介紹。開發(fā)環(huán)境則是PyCharm和MySql。
3可行性與需求分析想要寫好系統(tǒng)的功能,就要提前對系統(tǒng)的所有功能都設計好,思路清晰,考慮能預見的所有情況,也要好好考慮。通過對功能的設計,讓系統(tǒng)的結構更加合理。3.1可行性分析3.1.1技術可行性數(shù)據可視化分析科技是利用多種可視化界面和一體化分析數(shù)據理論的方法,幫企業(yè)和用戶快速解讀復雜數(shù)據的分析技術。可詳細分為數(shù)據采集、數(shù)據持久化、數(shù)據清洗、數(shù)據可視化4個步驟。數(shù)據采集的執(zhí)行過程可分為:確定獲取內容、分析網頁布局、下載Html頁面、解析頁面內容、存入數(shù)據庫。解析網頁內容有Xpath和正則表達式兩種方法。數(shù)據持久化可以通過Python中的Pymysql模塊將獲取到的數(shù)據存入Mysql完成數(shù)據持久化。數(shù)據清洗與提取可以使用Pandas庫可以對采集到的數(shù)據進行統(tǒng)計與處理。數(shù)據可視化可以通過Excel工具或者第三方庫Matplotlib進行可視化分析。3.1.2經濟可行性在互聯(lián)網大數(shù)據的背景下,可以使用大數(shù)據對于電影內容進行可視化的分析??梢酝ㄟ^數(shù)據采集,發(fā)現(xiàn)觀眾的電影喜好內容是什么,把對應的電影推薦給觀眾,實現(xiàn)大數(shù)據營銷和預測電影票房。還可以把一部熱門電影的幾千萬條用戶評論數(shù)據進行搜集、整理,就可以通過尋找篩選出其中有利的一些東西做成電影品牌,這樣可以精細地理解用戶的電影愛好,對電影下一步的創(chuàng)作和發(fā)展具有很好的指導性。3.1.3操作可行性本系統(tǒng)界面清晰易懂,功能簡單,頁面響應速度快。能夠讓用戶能快速了解系統(tǒng)。只要你了解過操作系統(tǒng)用戶都可以使用這個程序,它的可操作性是其他替代軟件無法比擬的??梢宰層脩艉唵蔚乜吹诫娪暗臄?shù)據,電影的各個數(shù)據非常簡單的展示。因此,該系統(tǒng)具有很大的可操作性。3.2需求分析3.2.1系統(tǒng)功能需求分析系統(tǒng)的使用者主要是影評人員,對系統(tǒng)的可視化模塊進行查看,將數(shù)據匯報給片方,片方根據影評人員匯報的數(shù)據對電影信息進行相應的處理。本系統(tǒng)主要實現(xiàn)了數(shù)據采集模塊和可視化功能模塊。如圖3-1系統(tǒng)用例圖所示。圖3-1系統(tǒng)用例圖3.2.2各功能用例分析(1)數(shù)據采集用例說明:數(shù)據獲取用例詳細描述如下表3-1所示。表3-1數(shù)據采集用例描述用例條目描述用例名稱數(shù)據采集功能主要業(yè)務參與者管理員其他參與者無描述進行需要數(shù)據的采集前置條件無后置條件將需要的數(shù)據存入數(shù)據庫觸發(fā)條件輸入要獲取的數(shù)據管理員輸入要獲取的信息結束獲取成功或者失敗實現(xiàn)約束和說明輸入的必須是電影的信息待解決問題無電影信息分析用例說明:電影信息分析用例詳細描述如下表3-2所示。表3-2電影信息分析用例描述用例條目描述用例名稱電影信息分析主要業(yè)務參與者管理員其他參與者無描述對電影信息的進行分析,以柱狀圖的形式展示出來前置條件數(shù)據預處理后置條件柱狀圖展示觸發(fā)條件數(shù)據可視化圖例基本流程進行數(shù)據可視化圖例展示圖片展示替代流程無結束圖片成功展示或者失敗實現(xiàn)約束和說明數(shù)據已經存入數(shù)據庫待解決問題無短評信息分析用例說明:短評信息分析用例詳細描述如下表3-3所示。表3-3短評信息分析用例描述用例條目描述用例名稱短評信息分析主要業(yè)務參與者管理員其他參與者無描述對電影信息的進行分析,以柱狀圖的形式展示出來前置條件數(shù)據預處理后置條件柱狀圖展示觸發(fā)條件數(shù)據可視化圖例基本流程進行數(shù)據可視化圖例展示圖片展示替代流程無結束圖片成功展示或者失敗實現(xiàn)約束和說明數(shù)據已經存入數(shù)據庫待解決問題無3.2.3可視化功能性分析一個完整的數(shù)據可視化開發(fā)過程需要經過數(shù)據采集,數(shù)據持久化,數(shù)據清洗,數(shù)據可視化這4個階段。數(shù)據可視化的主要實現(xiàn)功能如下:(1)實現(xiàn)數(shù)據采集。要實現(xiàn)電影相關數(shù)據的完整采集,電影相關數(shù)據主要是電影數(shù)據和短評數(shù)據。(2)模擬瀏覽器。豆瓣網站存在反爬蟲機制,想要通過python爬蟲收集數(shù)據而不被豆瓣網站服務器拒絕訪問。所以應該通過設置RequestHeaders中的User-Agent模擬瀏覽器來進行訪問。(3)模擬Ajax請求,豆瓣網站中有些頁面是異步加載形式的,所以應通過抓包得到RequestURL返回json數(shù)據,模擬Ajax請求通過規(guī)律循環(huán)爬取頁面信息。(4)連接數(shù)據庫,要實現(xiàn)數(shù)據持久化,可以通過Python的連接MySQL服務器的庫pymysql連接數(shù)據庫,將采集到的數(shù)據存入數(shù)據庫[2]。就可以永久存儲到本地磁盤。(5)實現(xiàn)了電影數(shù)據的預處理。本文從電影信息和短評信息兩個方面對數(shù)據進行分析,實現(xiàn)了對電影的多角度數(shù)據清洗。分析內容包括電影的電影評分,電影的主演,電影的類型,短評的評分等等。(6)繪制圖表。需要在數(shù)據清洗的前提下,通過python的第三方庫或者Excel數(shù)據可視化工具繪制圖像直觀地展現(xiàn)出數(shù)據可視化結果,實現(xiàn)多個維度的對電影數(shù)據進行可視化分析。3.2.4可視化非功能性分析(1)安全性:由于我們爬取的是豆瓣網的用戶評論數(shù)據,在訪問過程中會產生大量的個人隱私信息,包括個人信息和網絡安全信息。所以我們在編程時生成的數(shù)據要及時銷毀,防止用戶信息泄露。(2)易用性:易學習,易上手;(3)可靠性:接收數(shù)據準確無丟失。3.3本章小結本章主要介紹了本次課題的可行性分析和需求分析??尚行苑治鰹榧夹g可行性分析、經濟可行性分析和操作可行性分析三種。而需求分析則是可視化功能分析,還有以安全性,易用性,可靠性的非功能分析。
4數(shù)據可視化總體設計系統(tǒng)總體設計與實現(xiàn),先進行總體架構設計,并對數(shù)據庫進行創(chuàng)建,對數(shù)據表進行創(chuàng)建,連接數(shù)據庫準備工作,使各個模塊成功連接起來。4.1數(shù)據可視化架構設計本次系統(tǒng)主要分為數(shù)據采集、數(shù)據庫和數(shù)據可視化。數(shù)據采集主要采用Scrapy框架,主要通過豆瓣網站的網頁URL采集豆瓣電影網站上的電影信息和短評文本等。數(shù)據庫主要采用Mysql關系型數(shù)據庫,主要存儲從豆瓣電影數(shù)據平臺采集的電影信息、短評文本等[3]。數(shù)據可視化主要采用Matplotlib庫和數(shù)據可視化工具來進行分析并輸出成圖表。數(shù)據可視化系統(tǒng)的簡單架構如圖4-1所示。圖4-1數(shù)據可視化系統(tǒng)的簡單架構圖4.2系統(tǒng)功能模塊設計該系統(tǒng)可以大概分為2個功能模塊:數(shù)據采集和數(shù)據可視化。其中數(shù)據采集功能模塊,主要是負責從網上自動采集數(shù)據并直接存入數(shù)據庫。采用的當下熱門的Scrapy框架和Mysql。數(shù)據可視化功能模塊,主要負責將清洗后的數(shù)據通過圖表方式展示出來。采用的當下流行的第三方庫Matplotlib、Jieba等。系統(tǒng)功能結構如圖4-2所示。圖4-2系統(tǒng)功能結構圖4.2.1數(shù)據采集功能模塊設計此模塊主要采集所需的電影數(shù)據,并對采集到的數(shù)據進行清洗和存儲。(1)數(shù)據采集類型本次設計的爬蟲系統(tǒng)主要收集豆瓣電影網站上的兩個電影數(shù)據類型,第一個數(shù)據類型是電影的基本信息包括電影名、電影Id、豆瓣評分、主演、導演、簡介等。電影基本信息采集結果如圖4-3所示。圖4-3電影基本信息采集第二個數(shù)據類型是短評信息包括短評內容、評論時間、短評用戶、短評評分等。短評信息采集如圖4-4所示。圖4-4短評信息采集因為要采集短評信息就需要先采集電影的基本信息,從采集到的電影基本信息中提取出電影ID字段構造出短評信息URL采集短評信息,這兩類數(shù)據有一個先后的采集順序[4]。(2)數(shù)據的采集電影的基本信息和短評信息雖然有一個先后的數(shù)據采集順序,但是數(shù)據采集的原理是差不多相同的,在這里主要介紹是如何進行電影數(shù)據的采集。本系統(tǒng)電影數(shù)據采集的功能主要采用了Scrapy爬蟲框架的方法來實現(xiàn),該爬蟲框架的基本核心功能就是Scrapy的調度器,爬蟲的調度端主要功能是用來控制啟動網絡爬蟲、監(jiān)視網絡爬蟲的運行狀況或者是停止網絡爬蟲[5]。調度器從入口URL開始,并按照調度器中定義的電影數(shù)據字段的鏈接地址順序使用XPath或Re正則表達式獲取更多電影頁面源鏈接和數(shù)據。(3)數(shù)據的存儲網絡爬蟲從網頁上采集來的數(shù)據是有一個時效性,為了讓爬取到的信息永久都存在,就需要對數(shù)據進行數(shù)據持久性操作也就是數(shù)據存儲。目前數(shù)據存儲方式有文本文件、Excel表、數(shù)據庫等。為了給后續(xù)的數(shù)據可視化提供數(shù)據支持,此次系統(tǒng)主要采用Mysql數(shù)據庫進行數(shù)據存儲。(4)數(shù)據的清洗在網頁上采集的電影數(shù)據不能直接拿來使用,可能存在空值、無效值、錯誤值等。所以我們需要及時處理這些雜亂的數(shù)據,將其轉化成可以直接進行計算分析的電影數(shù)據[6]。數(shù)據清洗就是對采集到的電影基本信息和短評信息進行缺失值處理、空值處理、去重處理等等。為了方便進行后續(xù)的數(shù)據可視化,需要處理部分列的電影原始數(shù)據,比如講電影類型這種原始數(shù)據通過關鍵字“/”分列后再近些匯總處理。4.2.2數(shù)據可視化功能模塊設計數(shù)據可視化功能模塊主要通過圖表顯示數(shù)據清洗后的數(shù)據信息。例如,我們可以對短評的評分分布和內容進行統(tǒng)計分析,最后將分析結果繪制成相應的圖表進行展示。數(shù)據采集功能模塊是將采集到的數(shù)據存儲到本地關系數(shù)據庫Mysql中,然后對數(shù)據庫中的數(shù)據進行清理。數(shù)據可視化功能模塊主要是讀取本地Mysql數(shù)據庫的數(shù)據或者是清洗后存入本地文檔中的文本文件和Excel表,然后利用第三方庫或者Excel數(shù)據可視化工具將結果以圖表的形式展示出來。該模塊主要包括兩個子模塊:電影基本信息的統(tǒng)計分析和對短評信息的統(tǒng)計分析。其中每個子模塊包含多種功能。電影基本信息的統(tǒng)計分析模塊有4個功能:不同類型的電影數(shù)量分析功能、演員的主演次數(shù)分析功能、豆瓣評分集中趨勢分析功能、電影的評分變化分析功能。短評信息的統(tǒng)計分析模塊有關鍵詞分析功能和短評評分占比的分析功能。(1)電影短評分析。電影的短評是用戶較為關注的一個指標,由于豆瓣對電影的評論把控要求特別嚴格,相比一些其他的互聯(lián)網視頻網站,豆瓣的短評具有一定的說服力[7],本節(jié)主要從短評關鍵字進行分析。(2)電影基本信息分析。從電影的基本信息角度分析中國電影總體的作品質量和滿意度等等。4.3時序圖設計為了直觀的了解各個模塊的是如何運轉,進行了時序圖的創(chuàng)建。如圖4-5所示。圖4-5對象的實體關系圖4.4系統(tǒng)數(shù)據庫設計為了實現(xiàn)數(shù)據的持久化,本系統(tǒng)對4.2.1小節(jié)的數(shù)據存儲功能進行了系統(tǒng)數(shù)據庫設計。4.4.1數(shù)據庫概念結構設計系統(tǒng)的數(shù)據庫的對象主要包括電影基本信息,短評信息。電影對象是指收集到的電影基本數(shù)據。電影對象的屬性包括電影id、電影名稱、簡介、制片地區(qū)、主演、類型、豆瓣評分等。短評對象是指收集到的每部電影的短評信息,短評對象包含的屬性是短評用戶、短評文本、評論時間、短評評分等。電影與短評之間存在著1對多的關系,一部電影能夠擁有多條短評,單身一個短評只能被一部電影所擁有[8]。對象的實體關系圖如圖4-6所示。圖4-6對象的實體關系圖4.4.2數(shù)據庫邏輯結構設計根據數(shù)據庫概念結構設計,現(xiàn)設計以下數(shù)據庫表。(1)《瘋狂動物城》短評數(shù)據表存放爬取到的《瘋狂動物城》這部電影的電影id、短評用戶名、短評評論的時間、短評評分、短評的內容。如表5.1所示。表5.1《瘋狂動物城》短評數(shù)據表列名數(shù)據類型長度允許空是否主鍵說明movie_idInt11否是電影idPL_namevarchar255否否短評用戶名Pl_timevarchar255否否短評評論時間PL_numbervarchar255否否短評評分PL_mattervarchar255否否短評內容(2)中國大陸最近熱門電影信息表存放爬取到的電影id、電影的名稱、電影的評分、電影的導演名稱、電影的主演、電影的類型、電影的制片地區(qū)、電影的語言類型、電影的簡介。如表5.2所示。表5.2中國大陸最近熱門電影信息表列名數(shù)據類型長度允許空是否主鍵說明movie_idInt11否是電影idmovie_namevarchar255否否電影名稱movie_scorevarchar255否否電影的評分movie_dirvarchar255否否電影導演名稱movie_actvarchar255否否電影的主演movie_typevarchar255否否電影的類型movie_areasvarchar255否否電影的制片地區(qū)movie_lanvarchar255否否電影的語言類型movie_briefvarchar255否否電影的簡介4.5本章小結本章主要介紹了本次課題數(shù)據可視化系統(tǒng)的基礎架構設計,系統(tǒng)主要功能模塊設計,主要模塊是數(shù)據采集功能模塊,可視化功能模塊,最后,怎么能忘記數(shù)據庫的設計,包括數(shù)據庫的概念設計和邏輯結構設計。
5數(shù)據可視化系統(tǒng)實現(xiàn)5.1數(shù)據采集功能實現(xiàn)電影的數(shù)據采集主要使用基于Python開發(fā)的爬蟲輕量級框架Scrapy框架實現(xiàn)數(shù)據采集[9]。因為這兩類數(shù)據有一個采集順序。在實際采集的過程中,先要采集電影的基本信息,存入數(shù)據庫電影基本信息表中。再根據電影基本信息表中的電影的Id構造出電影短評的URL用來采集指定電影的前200個短評信息,存入數(shù)據庫短評信息表中。上述關于存入數(shù)據庫的關鍵代碼如下圖所示:數(shù)據采集流程圖如5-1所示。圖5-1數(shù)據采集流程圖雖然這兩種數(shù)據采集的順序不同,但采集原理是相同的,本文主要對電影基本信息的采集實現(xiàn)做了具體的介紹。因為豆瓣電影網站是異步加載的,所以需要使用分頁請求來抓取電影數(shù)據頁面的URL。先獲取電影分類頁URL,然后通過遍歷分類頁URL循環(huán)解析電影分類頁面中的電影詳情URL和一些基本信息,之后進入電影詳情URL下載并解析出想要的電影數(shù)[10]。關鍵代碼如下:豆瓣電影平臺的電影資源顯示在異步加載的分類頁面上,以每頁增加20部電影的數(shù)量展示在頁面上,因此用豆瓣的分類頁抓包返回的Requesturl作為Base_url并且每以20遞增構造新的電影分類頁URL。為了防止豆瓣網站的反爬蟲機制,采取模擬瀏覽器登錄,關鍵代碼如下:電影數(shù)據頁面主要通過xpath字符串或者re正則式匹配HTML中對應字段消息[11]。網頁解析關鍵代碼如圖所示:數(shù)據解析之后就是數(shù)據存儲階段,數(shù)據存儲階段是通過Pymysql庫連接到數(shù)據庫。電影數(shù)據存儲代碼如圖所示:在數(shù)據存儲之后,最后一個過程是數(shù)據清理,主要是通過Pandas檢查數(shù)據,重復值檢查,空值檢查等等。電影數(shù)據清洗代碼如圖所示:5.2數(shù)據可視化功能實現(xiàn)數(shù)據可視化功能模塊主要是對電影基本信息和短評信息進行統(tǒng)計分析,并以圖表的方式進行顯示。目前常用的可視化方法有兩種:分別是數(shù)據可視化軟件和可以進行數(shù)據可視化的第三方庫。本系統(tǒng)的數(shù)據可視化模塊利用數(shù)據可視化軟件Excel+第三方庫matplotlib進行可視化展示。中國大陸最近熱門電影作品豆瓣評分集中趨勢直方圖如圖6.4所示。該模塊的實現(xiàn)原理都一樣,現(xiàn)主要針對從豆瓣評分集中趨勢的展示實現(xiàn)做一個介紹。豆瓣評分集中趨勢用直方圖展示,橫坐標是豆瓣評分,評分區(qū)間是0-10??v坐標是相同評分的影片數(shù)量。第一使用pandas的read_csv讀入csv文件,第二配置中文字體和修改字體,避免出現(xiàn)亂碼現(xiàn)象。第三創(chuàng)建畫布。最后繪制直方圖。5.3本章小結本章主要介紹了本次課題數(shù)據可視化系統(tǒng)實現(xiàn)環(huán)境,數(shù)據采集功能實現(xiàn),數(shù)據可視化分析功能實現(xiàn)。具體表現(xiàn)為各個模塊的代碼展示,以及設計思路。
6數(shù)據可視化結果展示隨著電影行業(yè)的飛速發(fā)展,越來越多的電影公司開始希望通過用戶對不同電影的評分變化來了解用戶想看電影的需求和喜好。電影評分主要是觀眾對于電影從期待和接受的角度對于電影內容進行的一種評價和回饋,一方面是取決于電影本身質量,另一方面則是取決于觀眾本身對電影的這種接受需求,即電影在多大程度上與電影對于觀眾的這種期待以及視域已經達到了融合[12]。本次課題主要從以下幾點來為用戶提供詳細的觀看建議與推薦,為電影行業(yè)制片人等提供可用的觀眾喜好數(shù)據。第一,從關鍵詞分析觀眾看點。第二,從短評評分占比角度分析用戶對電影的接受程度。第三,從不同電影的評分變化角度分析最近熱門中國大陸作品質量。第四,從豆瓣評分集中趨勢的角度分析最近熱門中國大陸作品質量。第五,從演員擔任不同電影的主演次數(shù)的角度分析觀眾接受度。最后,從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型。6.1關鍵詞分析觀眾看點《瘋狂動物城》短評文本詞云圖如圖6.1所示。從圖6.1可知,這部影片是動畫類型。影片角色有狐貍、兔子、樹懶等。圖中存在“最佳”、“好看”、“不錯”、“細節(jié)”、“可以”等“關鍵字”,可以分析出這部影片作品質量比較高,觀眾對這部影片持支持態(tài)度。喜歡動畫類型但是找不到好電影的就可以嘗試觀看該影片,電影制片方也能借此分析出觀眾們喜歡的看點是什么。圖6.1《瘋狂動物城》短評文本詞云圖6.2從豆瓣評分趨勢的角度分析最近熱門中國大陸作品質量橫坐標是豆瓣評分,評分區(qū)間是0-10。縱坐標是相同評分的影片數(shù)量。中國大陸最近熱門電影作品豆瓣評分集中趨勢直方圖如圖6-2所示。圖6-2中國大陸Top250部電影作品豆瓣評分集中趨勢直方圖從圖6.2可知,中國大陸Top250部電影的豆瓣評分集中在8-9分之間,其中8.8分最多,8.7分其次。低于8.4分的作品很少,但是高于9分左右的作品也比較少。8-9分之間有道“分水嶺”,影片數(shù)量呈懸崖式下跌。可以分析出“分水嶺”右邊的電影作品是特別優(yōu)秀的作品,看過的基本都打了高分的那種。而左邊則是比較優(yōu)秀或者不優(yōu)秀的作品,能夠打動大部分人卻很難獲得所有看過這部電影的人的贊賞。中國大陸的電影還存在上升空間,希望能夠跨過“分水嶺”,帶給觀眾更多的精品作品。6.3從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型中國大陸電影的類型信息有19種,我比較喜歡觀看的類型有愛情、動畫、動作、犯罪、古裝、家庭、劇情、真人秀等,TOP250電影比較如圖6.3所示。從圖6.3可知,劇情類型的電影最受歡迎,第二受歡迎的是喜劇類型。第三是動作類型,有117部。受眾比較少的電影類型是傳記、犯罪、古裝、家庭、音樂、驚悚等等??梢苑治龀鲭娪笆袌龅膭∏轭愋偷碾娪靶枨罅孔罡?,因為國人受眾最多的電影類型是劇情。圖6-3中國大陸最近熱門不同類型的電影數(shù)量比較6.4電影評價人數(shù)在豆瓣上,評價人數(shù)在5000-10000的最多,其次是10000-15000人次,最低是1000人次。從數(shù)據來看,在豆瓣進行電影評價的人較多,總人數(shù)超過了150000人次。6.5本章小結本章主要介紹了對電影基本信息和短評信息的分析結果展示。具體為以關鍵詞分析觀眾看點展示的詞云,豆瓣評分趨勢的分布圖,電影評價人數(shù)的條形圖。
7系統(tǒng)測試本章對豆瓣電影數(shù)據分析可視化進行測試,闡述了初步測試的思路、過程、分析、結果。來測試項目數(shù)據的精準性,也能完善項目功能的數(shù)據使用并得到結果。系統(tǒng)寫實的重要性在于,它可以展示出系統(tǒng)各個功能的流暢性,降低系統(tǒng)漏洞風險。此環(huán)節(jié)會對系統(tǒng)的各個功能進行測試,用于保證系統(tǒng)的可用性。7.1系統(tǒng)測試方案設計自動化測試的最關鍵目的是在系統(tǒng)應用的整個過程中更好地減少不準確性和系統(tǒng)漏洞。對于用戶來說,系統(tǒng)的不正確或系統(tǒng)漏洞將影響用戶的體驗。在特定測試的整個過程中,有必要以用戶的身份進行自動化測試??梢赃x擇測試平臺以發(fā)現(xiàn)系統(tǒng)中的系統(tǒng)漏洞,并且可以任意選擇總體目標用戶進行測試。只有這樣才能確保系統(tǒng)的高質量運行。因此,我對該系統(tǒng)的測試為黑盒測試。7.2系統(tǒng)測試用例為了讓所有的用戶都能方便快捷地使用本系統(tǒng),并且讓系統(tǒng)能夠出現(xiàn)盡可能少的問題,減少錯誤的發(fā)生。我將從數(shù)據獲取,不同電影信息分析,不同影評分析等系統(tǒng)用例來測試系統(tǒng)的功能,考慮多種情況對系統(tǒng)功能的影響。7.2.1數(shù)據采集測試該測試是對數(shù)據采集測試的檢驗,在進行數(shù)據采集時判斷,如果采集的不是電影數(shù)據,電影信息不存在,頁碼超過已有頁碼或者數(shù)據已經存入在了數(shù)據庫當中,系統(tǒng)就會提示,數(shù)據保存失敗,只有數(shù)據庫中,未擁有該數(shù)據,才會成功爬取,顯示數(shù)據保存成功。(1)測試序號:01;(2)目的:確保數(shù)據獲取功能完好;(3)前提:存入豆瓣電影網電影數(shù)據;(4)測試方法:手動測試。(5)測試結果:測試結果符合預期結果;數(shù)據采集測試用例如表7-1所示;表7-1數(shù)據采集測試用例表序號輸入預期結果實際結果測試結果1獲取豆瓣電影網的電影基本信息獲取排名前250的電影中文名稱,評分等信息獲取排名前250的電影中文名稱,評分等信息通過2獲取豆瓣電影網的電影其他信息獲取排名前250的電影導演,主演等信息獲取排名前250的電影導演,主演等信息通過7.2.2評價人數(shù)和情感分析測試該測試是對評價人數(shù)和情感分析的測試,在進行不同評價人數(shù)和情感分析測試時,只有數(shù)據存入在數(shù)據庫當中。符合條件的,才會進行可視化圖例。(1)測試序號:02;(2)目的:確保圖例能成功顯示;(3)前提:所有電影數(shù)據已經全部存入數(shù)據庫中;(4)測試方法:手動測試。(5)測試結果:測試結果符合預期結果;評價人數(shù)和情感分析測試用例如表7-2所示;表7-2評價人數(shù)和情感分析測試用例表序號輸入預期結果實際結果測試結果1評價人數(shù)評價人數(shù)對比柱狀圖評價人數(shù)對比柱狀圖通過2情感分析情感分析占比扇形圖情感分析占比扇形圖通過7.2.3評分和詞云分析測試該測試是對評價人數(shù)和情感分析的測試,在進行評分和詞云分析測試時,只有數(shù)據存入在數(shù)據庫當中。符合條件的,符合要求低,才會進行對應的可視化圖例展示。(1)測試序號:03;(2)目的:確保圖例能成功顯示;(3)前提:所有電影數(shù)據已經全部存入數(shù)據庫中;(4)測試方法:手動測試。(5)測試結果:測試結果符合預期結果;評分和詞語測試用例如表7-2所示;表7-2評分和詞云分析測試用例表序號輸入預期結果實際結果測試結果1評分評分分布柱狀圖評分分布柱狀圖通過2詞云詞云圖例展示詞云圖例展示通過7.3本章小結本章主要是對功能的測試,在整個功能測試過程中,所有的功能都達到了預期的效果,可以說,功能測試非常成功。在進行這3次功能測試當中,圖例都很完美的展現(xiàn)了出來,給觀看一個良好的觀看體驗。
結論在本次課題,我使用Python3+Scrapy獲取數(shù)據,使用Pymysql+Mysql存儲數(shù)據,使用Pandas清洗數(shù)據,Python第三方庫Matplotlib和Excel數(shù)據可視化分析工具進行了數(shù)據的可視化。本文對《瘋狂動物城》批注文本進行了直觀的云圖分析;從不同電影的評分變化角度分析最近熱門中國大陸作品質量;從短評評分占比角度分析用戶對《瘋狂動物城》這部電影的接受程度;從豆瓣評分集中趨勢的角度分析最近熱門中國大陸作品質量;從演員擔任不同電影的主演次數(shù)的角度分析觀眾接受度;從不同類型的電影數(shù)量角度分析觀眾喜歡的電影類型。在這個大數(shù)據時代,電影大數(shù)據分析早已經開始取得非常不錯的實際應用。我們可以快速地了解到和找到各種電影統(tǒng)計數(shù)據,如:電影票房的排行、觀影的人群年齡和性別的分布、電影的評價等級、長影評和短影評等等使用影評數(shù)據能夠反映觀眾對電影最直接的感受和評價,而最重要的是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理項目成功的常見誤區(qū)與對策試題及答案
- 2024年體育經紀人職業(yè)資格考試全覆蓋試題及答案
- 體育經紀人與運動員之間的關系試題及答案
- 農業(yè)植保員職業(yè)資格考試的知識點輔導試題及答案
- 學會利用時間規(guī)劃學習的試題及答案
- 模具設計師面臨的挑戰(zhàn)及試題及答案對策
- (高清版)DB50∕T 792-2017 渝菜 鲊鴨肉烹飪技術規(guī)范
- (高清版)DB3310∕T 003-2012 臺州農業(yè)標準化示范要求
- 黃山市中心城區(qū)環(huán)衛(wèi)一體化特許經營項目實施方案
- 人民醫(yī)院擴建工程項目可行性研究報告(范文)
- 舞臺人生走進戲劇藝術學習通期末考試答案2023年
- 新《用字母表示數(shù)》說課
- 河南省礦山儲量動態(tài)檢測技術指南
- 光學系統(tǒng)的像質評價和像差公差
- :AHA心肺復蘇和心血管急救指南(完整版)
- 垃圾焚燒爐渣綜合利用方案
- 12J1 工程做法 天津市建筑標準設計圖集(2012版)
- 專賣執(zhí)法人員資格考試題庫
- 全要素加強化工過程安全管理
- 腹部按壓技巧腸鏡檢查輔助技巧
- 5月業(yè)務學習第一篇輸液港的使用及維護
評論
0/150
提交評論