国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于數(shù)據(jù)挖掘的圖書推薦系統(tǒng)的分析與設(shè)計

2022-11-22 09:08:18張佳佳章宜玉
信息記錄材料 2022年9期
關(guān)鍵詞:關(guān)系網(wǎng)爬蟲圖書

張佳佳,章宜玉

(湖南信息職業(yè)技術(shù)學(xué)院 湖南 長沙 410200)

0 引言

隨著我國經(jīng)濟(jì)的快速發(fā)展和物質(zhì)生活水平不斷提高,人們的精神文化生活日益豐富,閱讀已成為人們生活中不可或缺的一部分。得益于移動互聯(lián)網(wǎng)的迅速發(fā)展,手機(jī)用戶增長迅猛,用戶不再只是網(wǎng)站內(nèi)容消費(fèi)者,同時也是內(nèi)容生產(chǎn)者。人們不管在何時何地,都可借助移動終端在網(wǎng)絡(luò)平臺上發(fā)表自己的所思所想。現(xiàn)在越來越多的用戶傾向于通過微博、豆瓣、博客等網(wǎng)絡(luò)平臺發(fā)表書評,進(jìn)行圖書評論。圖書評論是讀者對書籍質(zhì)量的一種情感表達(dá),如果能對海量的圖書評論數(shù)據(jù)進(jìn)行分析處理,從中找到對用戶有用的信息,并將其用圖形化方式展現(xiàn)出來,就能為用戶提供直觀有效的圖書推薦[1]。

通過對基于數(shù)據(jù)挖掘的圖書推薦系統(tǒng)進(jìn)行分析與設(shè)計,不僅可以幫助讀者選擇他們感興趣的圖書,也可以幫助出版公司迅速獲得讀者對書籍的評價與反饋。

1 系統(tǒng)需求分析

目前圖書市場上的圖書數(shù)據(jù)量龐大、品種繁多,網(wǎng)絡(luò)平臺上的圖書信息良莠不齊,而且存在惡意差評現(xiàn)象,讓人難以分辨[2]。因此基于數(shù)據(jù)挖掘的圖書推薦系統(tǒng)要設(shè)計爬蟲模塊,從網(wǎng)絡(luò)平臺抓取圖書信息,并對其進(jìn)行篩選整合。其次,圖書評論信息是一個復(fù)雜的多模態(tài)數(shù)據(jù)集合,比如每本書都包含有名稱、簡介、作者、出版社等多維度信息,而作者可能又包含其出版過的其他書籍等信息。因此爬蟲模塊要通過多維度特征挖掘出更深層次、更全面的信息。微博作為一種新興的社會化媒體發(fā)布平臺,以其簡短寫作、便于發(fā)布、實(shí)時交互的特點(diǎn)深受大眾歡迎,本系統(tǒng)使用爬取自微博平臺的圖書數(shù)據(jù)集。爬蟲模塊是獲取系統(tǒng)所需要數(shù)據(jù)的重要方式,通過在微博網(wǎng)站搜索某個圖書關(guān)鍵詞,對搜索到的微言以及每條微言的用戶評論進(jìn)行抓取,經(jīng)過數(shù)據(jù)篩選和清洗后,保存到本地數(shù)據(jù)庫中[3]。

數(shù)據(jù)分析模塊實(shí)現(xiàn)的功能有關(guān)鍵詞提取、情感分析和屬性關(guān)系網(wǎng)構(gòu)建。采用多種機(jī)器學(xué)習(xí)算法對圖書文本數(shù)據(jù)進(jìn)行分析與挖掘,并將分析過程中的結(jié)果保存到數(shù)據(jù)庫中。

可視化模塊是對分析結(jié)果的可視化展示,用戶可以輸入某本圖書名稱,查看關(guān)于該書籍的分析信息,比如圖書評分、類別等。

2 開發(fā)環(huán)境及關(guān)鍵技術(shù)

軟件是基于Windows 10系統(tǒng)進(jìn)行的設(shè)計。爬蟲模塊采用最新的Map Reduce分布式框架實(shí)現(xiàn),使用爬蟲引擎采集信息并存入MySQL數(shù)據(jù)庫。集成開發(fā)環(huán)境采用Myeclipse 10.0,其功能強(qiáng)大、操作簡便、可有效提高編程效率??梢暬K采用Apache+PHP框架,借助TagCloud和Echarts等插件,實(shí)現(xiàn)圖形化展示界面。

2.1 爬蟲技術(shù)

網(wǎng)絡(luò)爬蟲是指在海量的互聯(lián)網(wǎng)信息中進(jìn)行爬取,按照特定規(guī)則自動抓取有效信息的程序或腳本,目前在搜索引擎、數(shù)據(jù)挖掘、信息存檔等方向應(yīng)用十分廣泛。網(wǎng)絡(luò)爬蟲按照實(shí)現(xiàn)的技術(shù)原理可以分為通用網(wǎng)絡(luò)爬蟲、主題網(wǎng)絡(luò)爬蟲、增量網(wǎng)絡(luò)爬蟲和深層網(wǎng)絡(luò)爬蟲。網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)過程主要由控制器、解析器和資源庫三部分組成,控制器是負(fù)責(zé)給多線程中的各個爬蟲線程分配工作任務(wù),解析器是對爬取的網(wǎng)頁進(jìn)行解析,資源庫即采用數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲[4]。

2.2 Map Reduce分布式框架

Map Reduce是一個并行計算與運(yùn)行的軟件框架。它將整個計算過程劃為Map和Reduce兩個并行運(yùn)算任務(wù),實(shí)現(xiàn)在集群節(jié)點(diǎn)上自動分配和執(zhí)行任務(wù)并收集計算結(jié)果。用戶在使用該框架時只要實(shí)現(xiàn)Map和Reduce兩個接口,無需關(guān)心底層構(gòu)架,大大減少了軟件開發(fā)人員的負(fù)擔(dān)[5]。

2.3 MySQL數(shù)據(jù)庫

MySQL數(shù)據(jù)庫是目前軟件開發(fā)中被廣泛應(yīng)用的開源數(shù)據(jù)庫,其具有穩(wěn)定、高效、易于開發(fā)的優(yōu)點(diǎn)。爬蟲模塊共設(shè)計三張數(shù)據(jù)庫表,分別是微言信息表、評論信息表、圖書信息表。數(shù)據(jù)分析模塊也包含三張數(shù)據(jù)庫表,分別為圖書屬性信息表、處理結(jié)果信息表、作者信息表。

3 系統(tǒng)功能結(jié)構(gòu)設(shè)計

基于數(shù)據(jù)挖掘的圖書推薦系統(tǒng)主要包括以下三個模塊:爬蟲模塊、數(shù)據(jù)分析模塊、可視化模塊,系統(tǒng)總體設(shè)計如圖1所示。本章將對各功能模塊進(jìn)行設(shè)計說明。

圖1 系統(tǒng)總體設(shè)計圖

3.1 爬蟲模塊

爬蟲模塊是一個抓取微博網(wǎng)站數(shù)據(jù)集的爬蟲程序,主要對基于主題關(guān)鍵詞搜索的博文以及其評論等信息進(jìn)行數(shù)據(jù)采集。其主要實(shí)現(xiàn)流程如下,如圖2所示。

(1)用戶cookie的獲取與模擬登錄。我們在爬取網(wǎng)站信息時先要登錄網(wǎng)站,一般可以通過cookie進(jìn)行模擬登錄來解決。第一步是通過對網(wǎng)頁數(shù)據(jù)進(jìn)行抓包與分析獲取cookie信息,然后使用get方法傳入cookie獲取網(wǎng)頁爬取信息。

(2)多線程抓取。網(wǎng)頁上的評論數(shù)據(jù)過多,我們不能通過for循環(huán)一個一個地下載,所以必然要使用多線程,然后把數(shù)據(jù)隊列放入線程池去處理。

(3)多用戶切換防止反爬蟲。限制爬蟲程序訪問服務(wù)器資源和獲取數(shù)據(jù)的行為稱為反爬蟲。為了應(yīng)對反爬蟲機(jī)制,可采用動態(tài)設(shè)置User-Agent策略,即隨機(jī)切換User-Agent的值,以模擬不同用戶的瀏覽器信息。

(4)實(shí)現(xiàn)HTTP請求報文的生成。為了獲取新浪微博平臺的數(shù)據(jù),必須向新浪微博服務(wù)器發(fā)送數(shù)據(jù)請求報文進(jìn)行數(shù)據(jù)請求??墒褂胷equests庫的get方法進(jìn)行HTTP請求,其使用requests方法的語法格式如下:rq=request.get(‘目標(biāo)網(wǎng)址’)[6]。

(5)實(shí)現(xiàn)HTTP返回報文的接收和解壓。每向open.weibo.com發(fā)送一個HTTP請求數(shù)據(jù)包后,都可以獲得相應(yīng)的返回數(shù)據(jù)包。分析HTTP響應(yīng)報文中的Content-Length參數(shù)可以獲取數(shù)據(jù)長度,讀取響應(yīng)報文頭中的Content-Encoding值可獲取壓縮格式,調(diào)用對應(yīng)的解壓方法進(jìn)行報文解壓。當(dāng)然,返回的數(shù)據(jù)也并不是每一次都正確,我們可通過數(shù)據(jù)格式判斷其是否正確,當(dāng)數(shù)據(jù)格式不正確或不完整時,則直接丟棄報文,并打印數(shù)據(jù)格式錯誤信息[7]。

(6)對解壓后的json文件進(jìn)行分析和信息提取,利用第三方函數(shù)庫對得到的json字符串進(jìn)行解析,提取我們需要的字段內(nèi)容,并存入到數(shù)據(jù)庫中。將爬蟲獲取的數(shù)據(jù)存入數(shù)據(jù)庫,需要在pipeline里完成,pipeline的功能默認(rèn)是關(guān)閉的,要在settings.py中開啟數(shù)據(jù)入庫命令。

(7)對待抓取和已抓取的URL建立緩存機(jī)制。對每個入庫函數(shù)都開啟一個獨(dú)立的線程。當(dāng)相應(yīng)的緩存容器中的數(shù)據(jù)達(dá)到一定的數(shù)量時,對數(shù)據(jù)容器進(jìn)行鎖定,暫停相應(yīng)的爬蟲函數(shù),開始對數(shù)據(jù)進(jìn)行入庫。入庫后將該數(shù)據(jù)從緩存容器刪除,然后解除容器鎖定,繼續(xù)爬蟲[8]。

圖2 爬蟲模塊實(shí)現(xiàn)流程

3.2 數(shù)據(jù)分析模塊

數(shù)據(jù)分析模塊主要包含關(guān)鍵詞提取、情感分析、屬性關(guān)系網(wǎng)構(gòu)建三個子功能模塊。

(1)關(guān)鍵詞提?。涸摴δ軌K使用基于語義的中文文本關(guān)鍵詞提?。⊿KE)算法[9]從每條微博中提取關(guān)鍵詞?;陉P(guān)鍵詞的出現(xiàn)頻率進(jìn)行統(tǒng)計,我們從中選擇出頻率最高的50個關(guān)鍵詞,將其存入數(shù)據(jù)庫中用于后續(xù)的情感分析,其實(shí)現(xiàn)流程如圖3所示。

圖3 關(guān)鍵詞提取實(shí)現(xiàn)流程

(2)情感分析:在該模塊中,對微博中的每條信息進(jìn)行分詞處理后,利用情感分析算法將其歸類為積極情緒和消極情緒,并計算每種情緒所占百分比,將其保存到數(shù)據(jù)庫中[10]。其實(shí)現(xiàn)流程如圖4所示。

圖4 情感分析實(shí)現(xiàn)流程

(3)屬性關(guān)系網(wǎng)構(gòu)建:通過構(gòu)建屬性關(guān)系網(wǎng),用戶可以點(diǎn)擊該網(wǎng)絡(luò)中的任何節(jié)點(diǎn)并查看與其相關(guān)聯(lián)的信息。例如,某個作者還出版了哪些圖書。其實(shí)現(xiàn)流程如圖5所示[11]。

圖5 屬性關(guān)系網(wǎng)實(shí)現(xiàn)流程

3.3 可視化模塊

可視化模塊是系統(tǒng)的展示模塊,當(dāng)用戶在系統(tǒng)首頁輸入一個圖書名稱時,界面將會呈現(xiàn)出來三個功能,包括關(guān)鍵詞3D云圖、情感分析餅圖、圖書屬性關(guān)系網(wǎng)。其實(shí)現(xiàn)過程如圖6所示。

關(guān)鍵詞云圖:可將系統(tǒng)中關(guān)于該圖書出現(xiàn)頻率較高的關(guān)鍵詞以可視化形式展現(xiàn)出來,它能過濾掉大量低頻低質(zhì)的文本信息,讓用戶在短時間內(nèi)對某本圖書的評價信息能一目了然。

情感分析餅圖:心理學(xué)研究發(fā)現(xiàn)人們普遍有從眾心理,人們對某個物品的喜好或情感狀態(tài)會受到大多數(shù)人的情感影響。比如當(dāng)你搜索一本未閱讀過的圖書時,網(wǎng)友們對該書籍的評分高低會影響你是否閱讀該書。用戶根據(jù)數(shù)據(jù)分析模塊得到情感分析結(jié)果,可以了解大眾對某本圖書的偏好與評價,有利于用戶進(jìn)行決策或選擇[12-13]。

圖書屬性關(guān)系網(wǎng):網(wǎng)絡(luò)上的圖書數(shù)據(jù)是一個多模態(tài)數(shù)據(jù),比如一本圖書的作者又包含還出版過其他哪些書等信息[14]。關(guān)系網(wǎng)為各個屬性提供了聯(lián)動交互,使用戶可以探索不同維度數(shù)據(jù)之間的關(guān)系。用戶單擊該關(guān)系網(wǎng)中任意節(jié)點(diǎn)可查看與之關(guān)聯(lián)的信息。

圖6 可視化模塊實(shí)現(xiàn)流程

4 結(jié)語

本文分析了基于數(shù)據(jù)挖掘的圖書推薦系統(tǒng)的實(shí)際需求,并對系統(tǒng)的設(shè)計展開描述。對圖書信息進(jìn)行數(shù)據(jù)挖掘,獲取圖書信息,然后對數(shù)據(jù)進(jìn)行清洗和處理。并在此基礎(chǔ)上進(jìn)行情感分類研究,為讀者提供可視化結(jié)果。本系統(tǒng)不僅能節(jié)約讀者尋找圖書資源的時間,為讀者提供更加有效的圖書推薦,同時也能使出版社與編輯及時了解大眾對圖書的評價與反饋,并對后續(xù)的圖書內(nèi)容與經(jīng)營策略等方面起到輔助作用。

猜你喜歡
關(guān)系網(wǎng)爬蟲圖書
利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
圖書推薦
南風(fēng)(2020年22期)2020-09-15 07:47:08
歡迎來到圖書借閱角
利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
電子測試(2018年1期)2018-04-18 11:53:04
班里有個圖書角
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
電子制作(2017年9期)2017-04-17 03:00:46
科層制與關(guān)系網(wǎng):民國時期世界書局和大東書局的發(fā)行管理制度述論
朋友也有“七年之癢”
讀者(2009年18期)2009-04-29 00:44:03
中國人的關(guān)系網(wǎng)
時代郵刊(2007年10期)2007-11-07 06:20:04
汉阴县| 烟台市| 东港市| 蛟河市| 华亭县| 泉州市| 乌什县| 金山区| 方城县| 赤峰市| 吉首市| 祥云县| 陇南市| 河曲县| 托克托县| 玉溪市| 碌曲县| 静宁县| 申扎县| 海口市| 陆丰市| 霍邱县| 华池县| 湖南省| 枣强县| 新津县| 泗洪县| 定西市| 北安市| 桂平市| 云林县| 景德镇市| 陕西省| 黄浦区| 榆林市| 界首市| 香格里拉县| 浙江省| 滦南县| 沙河市| 海兴县|