九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料

上傳人:痛*** 文檔編號(hào):86561594 上傳時(shí)間:2022-05-07 格式:DOC 頁(yè)數(shù):20 大?。?45.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料_第1頁(yè)
第1頁(yè) / 共20頁(yè)
電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料_第2頁(yè)
第2頁(yè) / 共20頁(yè)
電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料_第3頁(yè)
第3頁(yè) / 共20頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料》由會(huì)員分享,可在線閱讀,更多相關(guān)《電子科技大學(xué) 計(jì)算機(jī)學(xué)院 綜合課程設(shè)計(jì) 資料報(bào)告材料(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、文檔摘 要本系統(tǒng)以一個(gè)大規(guī)模網(wǎng)絡(luò)爬蟲程序所獲取的網(wǎng)絡(luò)評(píng)論數(shù)據(jù)為根底,使用了詞向量,用戶畫像等技術(shù),構(gòu)建了一個(gè)基于影評(píng)的推薦系統(tǒng)。主要的工作分為兩局部,首先是研究分析了豆瓣電影是如何防御網(wǎng)絡(luò)爬蟲程序已經(jīng)應(yīng)對(duì)策略,其次根據(jù)網(wǎng)絡(luò)爬蟲程序獲取的大量數(shù)據(jù)構(gòu)建了一個(gè)推薦系統(tǒng)。關(guān)鍵詞:大規(guī)模爬蟲,用戶畫像,推薦系統(tǒng)17 / 20目 錄摘要I目錄II第一章緒論11.1 背景與意義11.2 本系統(tǒng)的總體設(shè)計(jì)構(gòu)思11.3 本文的主要貢獻(xiàn)與創(chuàng)新1第二章大規(guī)模數(shù)據(jù)獲取22.1 網(wǎng)絡(luò)爬蟲程序的原理2網(wǎng)絡(luò)爬蟲程序的設(shè)計(jì)方案2豆瓣電影爬蟲可行性分析32.3.1 豆瓣電影頁(yè)面分析32.3.2 豆瓣電影反爬蟲策略分析32.3.

2、3 豆瓣電影爬蟲策略的設(shè)計(jì)4網(wǎng)絡(luò)爬蟲性能優(yōu)化42.5 本章小結(jié)5第三章影評(píng)分析推薦系統(tǒng)63.1 推薦系統(tǒng)綜述63.1.1 推薦系統(tǒng)的概念和定義63.1.2 推薦系統(tǒng)的形式化定義73.2 推薦系統(tǒng)用戶模型設(shè)計(jì)73.2.1 文本分析簡(jiǎn)介73.2.2 文本分析操作83.3 推薦系統(tǒng)推薦對(duì)象模型設(shè)計(jì)83.3.1 評(píng)分機(jī)制建模83.3.2 影片分類特征建模93.4 推薦系統(tǒng)算法93.4.1 協(xié)同過濾算法93.4.2 基于項(xiàng)目的協(xié)同過濾算法93.5 推薦系統(tǒng)推薦關(guān)鍵算法局部103.5.1 距離定義局部103.5.2 近鄰查找局部113.5.3 評(píng)分向量的構(gòu)建12第四章課程設(shè)計(jì)總結(jié)與展望134.1 總結(jié)13

3、4.2 后續(xù)工作展望13致14參考文獻(xiàn)15第一章 緒 論1.1 背景與意義隨著中國(guó)移動(dòng)互聯(lián)網(wǎng)的迅速開展,網(wǎng)民數(shù)量也在大規(guī)模增長(zhǎng),用戶在社交與電商上的活躍程度日趨增加。隨著用戶群體的增加,用戶在網(wǎng)絡(luò)上留下的行為數(shù)據(jù)呈現(xiàn)指數(shù)級(jí)增長(zhǎng)。面對(duì)龐大的用戶群體以與如此大量的行為數(shù)據(jù),如何從中快速、準(zhǔn)確、有效的獲取到有價(jià)值的數(shù)據(jù),分析出用戶的行為習(xí)慣以與偏好,在大規(guī)模容的場(chǎng)景下,為用戶提供精準(zhǔn)的推薦服務(wù),是現(xiàn)在大數(shù)據(jù)研究領(lǐng)域的一個(gè)熱點(diǎn)和重點(diǎn)。網(wǎng)絡(luò)爬蟲是大規(guī)模數(shù)據(jù)獲取的必要程序。由于網(wǎng)絡(luò)上數(shù)據(jù)的高潛在商業(yè)價(jià)值,商業(yè)公司均會(huì)對(duì)其進(jìn)展,即使能夠直接獲取的數(shù)據(jù)也會(huì)給出層層限制。在互聯(lián)網(wǎng)開展的二十余年里,網(wǎng)絡(luò)爬蟲程序設(shè)

4、計(jì)和反爬蟲程序設(shè)計(jì)共同進(jìn)步開展。如何有效的進(jìn)展大規(guī)模網(wǎng)絡(luò)數(shù)據(jù)爬取,同樣是在工程領(lǐng)域的一個(gè)熱點(diǎn)和重點(diǎn)。本系統(tǒng)的總體設(shè)計(jì)構(gòu)思首先通過設(shè)計(jì)一個(gè)高性能網(wǎng)絡(luò)爬蟲,對(duì)局部數(shù)據(jù)進(jìn)展爬取。在數(shù)據(jù)集上進(jìn)展清洗,選擇一些高質(zhì)量的活躍用戶,設(shè)計(jì)算法,提取特征,進(jìn)展回測(cè),調(diào)整特征的選擇。之后再在大規(guī)模數(shù)據(jù)集上進(jìn)展運(yùn)算。1.3 本系統(tǒng)的主要貢獻(xiàn)與創(chuàng)新本論文以大規(guī)模爬蟲獲取實(shí)時(shí)豆瓣電影數(shù)據(jù)為根底,實(shí)現(xiàn)了用戶畫像系統(tǒng)與推薦系統(tǒng),根據(jù)歷史數(shù)據(jù)得到的用戶群體行為分析報(bào)告,并根據(jù)用戶行為以與評(píng)論數(shù)據(jù)實(shí)現(xiàn)了智能化的電影推薦。第二章 大規(guī)模數(shù)據(jù)獲取在大規(guī)模互聯(lián)網(wǎng)社群站點(diǎn)中,由于運(yùn)營(yíng)策略以與一些涉與到潛在商業(yè)價(jià)值的考慮,運(yùn)營(yíng)公司通常會(huì)

5、設(shè)置一些特殊的訪問流量識(shí)別措施阻止外界使用程序大規(guī)模獲取數(shù)據(jù)。對(duì)于網(wǎng)絡(luò)爬蟲程序設(shè)計(jì)者來說,必須要識(shí)別并且進(jìn)展一定的特殊設(shè)計(jì),才能高效的大規(guī)模并行獲取數(shù)據(jù)。2.1 網(wǎng)絡(luò)爬蟲程序的原理網(wǎng)絡(luò)爬蟲程序,也叫網(wǎng)絡(luò)蜘蛛,在工程界通用簡(jiǎn)稱“爬蟲,是一種可以自動(dòng)實(shí)現(xiàn)模擬真實(shí)用戶對(duì)網(wǎng)絡(luò)資源訪問并進(jìn)展數(shù)據(jù)記錄的程序。爬蟲程序一般會(huì)選擇記錄目標(biāo)站點(diǎn)的索引數(shù)據(jù),以與所關(guān)注的主要容的完整記錄。網(wǎng)絡(luò)爬蟲程序的設(shè)計(jì)方案網(wǎng)絡(luò)爬蟲的形式多種多樣,從早期的C、C+設(shè)計(jì),到現(xiàn)在主流的Python、Java設(shè)計(jì)都有其輝煌的歷史。早期網(wǎng)絡(luò)站點(diǎn)大局部容、形式單一,靜態(tài)網(wǎng)頁(yè)居多,網(wǎng)絡(luò)中富文本容較少,計(jì)算機(jī)資源較少。使用C、C+編寫的程序占

6、用資源小,運(yùn)行速度快,進(jìn)展網(wǎng)絡(luò)通訊的方式靈活,加之語(yǔ)言本身使用廣泛,受到大量爬蟲程序員的青睞。隨著全球互聯(lián)網(wǎng)產(chǎn)業(yè)、互聯(lián)網(wǎng)根底設(shè)施的高速開展,谷歌、百度等搜索引擎的崛起,互聯(lián)網(wǎng)上的資源爆炸性增長(zhǎng),基于各種目的,越來越多的程序員開始設(shè)計(jì)自己的網(wǎng)絡(luò)爬蟲程序。此時(shí)C、C+語(yǔ)言的一些缺點(diǎn)顯現(xiàn)出來,集中在編碼的不通用,設(shè)計(jì)繁瑣,缺乏高度抽象的類庫(kù)等。加之大規(guī)模數(shù)據(jù)存儲(chǔ)平臺(tái)的出現(xiàn),C、C+爬蟲程序日漸減少。爬蟲程序主要的任務(wù)在于:訪問網(wǎng)絡(luò)資源,解析返回結(jié)果,對(duì)資源進(jìn)展合理存儲(chǔ)。由于高度抽象以與簡(jiǎn)潔的語(yǔ)法,Python以與Java等一下代的更加工程化的語(yǔ)言被大家所青睞。網(wǎng)絡(luò)爬蟲的開發(fā)極具靈活性,由于現(xiàn)代前端技

7、術(shù)的成熟,爬蟲程序所獲取的容可能隨時(shí)變化,無法使用傳統(tǒng)的軟件工程方法進(jìn)展設(shè)計(jì)開發(fā),通常的做法是迭代式的對(duì)網(wǎng)絡(luò)站點(diǎn)進(jìn)展交替的探測(cè)、開發(fā)。網(wǎng)絡(luò)爬蟲的主要模塊功能比擬固定,遇到的異常情況繁雜,需要有完善的異常處理機(jī)制。在對(duì)大規(guī)模數(shù)據(jù)設(shè)計(jì)的爬蟲中尤其重要。Python在網(wǎng)絡(luò)爬蟲類程序的開發(fā)效率上有著無可比擬的先天優(yōu)勢(shì),在文本分析、異常處理方面同樣有著大量的簡(jiǎn)潔的設(shè)計(jì),使得開發(fā)網(wǎng)絡(luò)爬蟲程序的方便程度與靈活程度大大提升。加之有許多專門為Python語(yǔ)言設(shè)計(jì)的網(wǎng)絡(luò)訪問庫(kù),數(shù)據(jù)庫(kù)訪問框架,瀏覽器模擬器,文本解析器的存在,使得這門語(yǔ)言有著一個(gè)完備的網(wǎng)絡(luò)爬蟲程序開發(fā)生態(tài)環(huán)境。本文選擇使用Python3語(yǔ)言實(shí)現(xiàn)一個(gè)

8、網(wǎng)絡(luò)爬蟲程序,對(duì)豆瓣電影網(wǎng)上Top250電影榜單上共計(jì)一千四百余萬條用戶對(duì)電源的短評(píng)進(jìn)展完全的爬取。在爬取數(shù)據(jù)的過程中,使用結(jié)構(gòu)化序列化的方式進(jìn)展數(shù)據(jù)的存儲(chǔ)。2.3豆瓣電影爬蟲可行性分析2.3.1 豆瓣電影頁(yè)面分析編寫網(wǎng)絡(luò)爬蟲程序,首先要對(duì)目標(biāo)站點(diǎn)進(jìn)展頁(yè)面分析。第一個(gè)參考頁(yè)面:豆瓣Top250電影榜單第二個(gè)參考頁(yè)面:豆瓣任意電影頁(yè)面第三個(gè)參考頁(yè)面:豆瓣任意電影短評(píng)頁(yè)面使用Chrome瀏覽器的開發(fā)者模式觀察頁(yè)面。所有關(guān)鍵信息都以靜態(tài)方式給出,不需要模擬用戶鼠標(biāo)鍵盤行為與用戶觀察延時(shí)行為。我們可以直接解析,通過發(fā)出Get請(qǐng)求得到的返回頁(yè)面。榜單頁(yè)面可解析信息如下:總數(shù),排行榜名稱,排行榜排名,電影

9、中文名,電影英文名,電影id,電影導(dǎo)演,電影主演,電影封面電影詳情頁(yè)面可解析信息如下:電影id,電影中文名,電影別名,電影豆瓣評(píng)分,看過人數(shù),想看人數(shù),評(píng)分人數(shù),5海報(bào)圖,條目分類,導(dǎo)演,主演,編劇,官方,豆瓣小站,上映時(shí)間日期,年代,語(yǔ)言,電影時(shí)長(zhǎng),影片類型,制片國(guó)家和地區(qū),簡(jiǎn)介,長(zhǎng)評(píng)數(shù)量,短評(píng)數(shù)量。電影短評(píng)頁(yè)面可解析信息如下:短評(píng)數(shù)量,每條短評(píng)。對(duì)于每條短評(píng):短評(píng)id,發(fā)布日期,上傳用戶,短評(píng)容,短評(píng)評(píng)分,有用數(shù)。通過輪詢請(qǐng)求以上頁(yè)面,我們可以獲得幾乎所有豆瓣電影公開的數(shù)據(jù)。2.3.2 豆瓣電影反爬蟲策略分析豆瓣電影作為國(guó)電影領(lǐng)域最大的在線交流平臺(tái),擁有著大量的電影數(shù)據(jù)以與觀眾用戶數(shù)據(jù),一

10、直被廣闊程序員以與數(shù)據(jù)分析人員作為目標(biāo)數(shù)據(jù)站點(diǎn)使用網(wǎng)絡(luò)爬蟲獲取數(shù)據(jù)。該的反爬蟲策略已經(jīng)比擬完善,例如對(duì)單個(gè)IP地址并發(fā)訪問量的限制,單個(gè)IP時(shí)間段訪問次數(shù)限制,用戶瀏覽器Cookie檢測(cè),用戶訪問頁(yè)面連續(xù)性檢測(cè),等等。經(jīng)過長(zhǎng)時(shí)間訪問的實(shí)驗(yàn),以與編寫網(wǎng)絡(luò)爬蟲程序的經(jīng)驗(yàn),總結(jié)出了如下規(guī)律:1. 當(dāng)發(fā)起Get請(qǐng)不帶上Cookie,連續(xù)訪問次數(shù)稍多,豆瓣將直接對(duì)操作的IP進(jìn)展封禁。此時(shí)無論如何操作都將返回403的結(jié)果。需要等待半小時(shí)至一小時(shí)IP才會(huì)解除封禁。2. 使用Cookie進(jìn)展訪問。第一次發(fā)起Get請(qǐng)求任意一個(gè)豆瓣頁(yè)面,豆瓣都會(huì)返回一個(gè)名為bid的Cookie。之后帶上這個(gè)Cookie請(qǐng)求頁(yè)面,

11、可以在約2秒一次訪問頻率上,5分鐘不封禁的結(jié)果。但此時(shí)的封禁是對(duì)于該Cookie的,只要清空該Cookie,又可獲得一個(gè)新的Cookie進(jìn)展訪問。IP地址是不會(huì)被封禁的。3. 假設(shè)保持低頻率訪問豆瓣頁(yè)面,比如在10秒一次的根底上,不論如何都不會(huì)被封禁。2.3.3 豆瓣電影爬蟲策略的設(shè)計(jì)1. 首先進(jìn)展屢次次無Cookie的請(qǐng)求,獲取多個(gè)bid,對(duì)這多個(gè)bid進(jìn)展保存,并且進(jìn)展訪問次數(shù)的統(tǒng)計(jì)。2. 對(duì)于每次的Get請(qǐng)求,隨機(jī)在bid池中獲取一個(gè)bid隨請(qǐng)求發(fā)出,并根據(jù)返回結(jié)果更新次數(shù)統(tǒng)計(jì)。假設(shè)該請(qǐng)求返回 403或者bid使用次數(shù)到達(dá)100次,即將該次訪問操作回滾,將該bid拋棄3. 在池中bid數(shù)

12、量小于一個(gè)閾值時(shí),進(jìn)展一輪無Cookie請(qǐng)求,更新bid池在之后的訪問試驗(yàn)中,對(duì)bid進(jìn)展測(cè)試時(shí),發(fā)現(xiàn)豆瓣電影并沒有對(duì)某個(gè)bid的第一次使用進(jìn)展合法性判斷。于是修改訪問策略為:每次訪問前對(duì)bid進(jìn)展隨機(jī),并隨請(qǐng)求發(fā)出,假設(shè)失敗如此直接重新隨機(jī)bid到成功為止。性能優(yōu)化經(jīng)過第一輪對(duì)電影榜單數(shù)據(jù)的統(tǒng)計(jì),得到短評(píng)總數(shù)有一千四百萬條。傳統(tǒng)單線程爬取完全無法獲取所有的短評(píng)信息。針對(duì)網(wǎng)絡(luò)爬蟲這種IO密集型的應(yīng)用場(chǎng)景,多線程、多進(jìn)程能夠很好的解決并發(fā)訪問的問題。使用Python3中的multiprossesing庫(kù)對(duì)訪問進(jìn)展多線程加速。同時(shí)使用time庫(kù)對(duì)訪問頻率進(jìn)展控制。由于單次請(qǐng)求返回時(shí)間的不確定性頁(yè)面

13、大小,網(wǎng)絡(luò)情況,我們統(tǒng)計(jì)一段時(shí)間Get次數(shù),假設(shè)超過閾值如此在每個(gè)請(qǐng)求完成之后進(jìn)展一個(gè)sleep操作以降低總體速度。針對(duì)單IP訪問數(shù)量的限制,建立了一個(gè)IP代理池,部署在一臺(tái)阿里云服務(wù)器上,全天候自動(dòng)在各大代理上刺探可用的/S代理服務(wù)器。網(wǎng)絡(luò)爬蟲程序可直接調(diào)用接口獲取一個(gè)代理IP。假設(shè)某個(gè)IP連續(xù)請(qǐng)求失敗次數(shù)超過閾值,可以立即更換代理IP,以躲過豆瓣晚上對(duì)爬蟲的限制。針對(duì)爬蟲需要全天候運(yùn)行的特點(diǎn),使用Git作為源代碼管理工具,分別管理開發(fā)分支與穩(wěn)定版本分支,將穩(wěn)定版分支實(shí)時(shí)同步到一臺(tái)阿里云服務(wù)器上,并合理設(shè)計(jì)數(shù)據(jù)序列化保存格式,實(shí)現(xiàn)全天候運(yùn)行的能力。2.5 本章小結(jié)本章容從工程的第一個(gè)需求出發(fā)

14、,逐步迭代開發(fā)了一個(gè)具有針對(duì)目標(biāo)站點(diǎn)完備功能和高運(yùn)行效率的網(wǎng)絡(luò)爬蟲程序。在連續(xù)運(yùn)行4天后爬取了豆瓣電影Top250榜單中所有電影共計(jì)一千四百余萬條影評(píng)信息,并構(gòu)建初步的影評(píng)數(shù)據(jù)庫(kù)。第三章 影評(píng)分析推薦系統(tǒng)3.1 推薦系統(tǒng)綜述互聯(lián)網(wǎng)的出現(xiàn)和普與給用戶帶來了大量的信息,滿足了 用戶在信息時(shí)代對(duì)信息的需求,但隨著網(wǎng)絡(luò)的迅速開展而帶 來的網(wǎng)上信息量的大幅增長(zhǎng),使得用戶在面對(duì)大量信息時(shí)無 法從中獲得對(duì)自己真正有用的那局部信息,對(duì)信息的使用效 率反而降低了,這就是所謂的信息超載information overload 問題。信息超載問題一個(gè)非常有潛力的方法是個(gè)性化推薦系統(tǒng),它是根據(jù)用戶的信息需求、興趣等,

15、將用戶感興趣的信息、產(chǎn)品等推薦給用戶的個(gè)性化信息推薦系統(tǒng)。和搜索引擎相比推薦系統(tǒng)通過研究用戶的興趣偏好,進(jìn)展個(gè)性化計(jì) 算,由系統(tǒng)發(fā)現(xiàn)用戶的興趣點(diǎn),從而引導(dǎo)用戶發(fā)現(xiàn)自己的信息需求。一個(gè)好的推薦系統(tǒng)不僅能為用戶提供個(gè)性化的服務(wù), 還能和用戶之間建立密切關(guān)系,讓用戶對(duì)推薦產(chǎn)生依賴。3.1.1 推薦系統(tǒng)的概念和定義推薦系統(tǒng)的定義有不少,但被廣泛承受的推薦系統(tǒng)的概念和定義Resnick和Varian在1997年給出的:“它是利用電子商務(wù)向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購(gòu)置什么產(chǎn)品,模擬銷售人員幫助客戶完成購(gòu)置過程。推薦系統(tǒng)有3個(gè)重要的模塊:用戶建模模塊、推薦對(duì)象建模模塊、推薦算法模塊。通用的推

16、薦系統(tǒng)模型流程如如下圖。推薦系統(tǒng)把用戶模型中興趣需求信息和推薦對(duì)象模型中的特征信息匹配,同時(shí)使用相應(yīng)的推薦算法進(jìn)展計(jì)算篩選,找到用戶可能感興趣的推薦對(duì)象,然后推薦給用戶。3.1.2 推薦系統(tǒng)的形式化定義推薦系統(tǒng)的形式化定義如下:設(shè)C是所有用戶的集合,S是所有可以推薦給用戶的對(duì)象的集合。實(shí)際上,C和S集合的規(guī)模通常很大,如上百萬的顧客以與上億種歌曲等。設(shè)效用函數(shù)可以計(jì)算對(duì)象s對(duì)用戶c的推薦度如提供商的可靠性vendor reliability和產(chǎn)品的可得性product availability等,即 ,R是一定圍的全序的非負(fù)實(shí)數(shù),推薦 要研究的問題就是找到推薦度R最大的那些對(duì)象 S* ,如式:

17、從上述模型看來,推薦系統(tǒng)的構(gòu)建有三個(gè)主要步驟:對(duì)用戶服務(wù)對(duì)象建模即用戶畫像,對(duì)推薦對(duì)象建模,在離線推薦算法。3.2 推薦系統(tǒng)用戶模型設(shè)計(jì)在所有通過網(wǎng)絡(luò)爬蟲程序獲取的數(shù)據(jù)當(dāng)中,可以作為用戶畫像的有兩個(gè)方向的數(shù)據(jù):1. 每個(gè)用戶對(duì)電影的評(píng)分2. 每個(gè)用戶對(duì)電影的文字短評(píng)根據(jù)以上信息,我們可以以上數(shù)據(jù)構(gòu)成多維度模型對(duì)用戶的喜好進(jìn)展刻畫。下文將介紹文本分析以與3.2.1 文本分析簡(jiǎn)介在自然語(yǔ)言處理領(lǐng)域,傳統(tǒng)的詞匯語(yǔ)義相似度方法主要是依靠本體詞典或知識(shí)庫(kù)的規(guī)如此方法,利用統(tǒng)計(jì)語(yǔ)言模型在大規(guī)模語(yǔ)料庫(kù)上進(jìn)展分析處理 但是由于詞典和知識(shí)庫(kù)大多依賴人工構(gòu)建,其實(shí)時(shí)性和擴(kuò)展性都比擬差,因此在互聯(lián)網(wǎng)文本和專業(yè)領(lǐng)域文

18、本處理中很難發(fā)揮出作用,在傳統(tǒng)研究方法中,詞匯通常用 one-hot 編碼形式表示,即假設(shè)詞表大小為 V,第 k 個(gè)詞表 示為一個(gè)維數(shù)為 V 的向量,除了第 k 維為 1,其他維均為 0 一方面,這種表示方法無法刻畫兩個(gè)詞語(yǔ)義上相似性,如“電腦和“計(jì)算機(jī)兩個(gè)詞匯,雖然它們?cè)谡Z(yǔ)義有著相似性,但是由于它們?cè)谠~表中的位置不同,one-hot 表示是正交的。另一方面,這種方法容易造成數(shù)據(jù)稀疏問題。不同的詞作為完全不同的特征應(yīng)用于統(tǒng)計(jì)模型中時(shí),由于不常見的詞出現(xiàn)的次數(shù)在訓(xùn)練數(shù)據(jù)中比擬少,從而導(dǎo)致對(duì)應(yīng)特征的估計(jì)存在偏差。為了解決這個(gè)問題,Collober 等人提出利用神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型自動(dòng)學(xué)習(xí)詞匯向量化表示

19、。其根本思想是: 一個(gè)詞的含義是由它的上下文決定的。將詞表中的每一個(gè)詞隨機(jī)初始化為一個(gè)高維向量,用大量語(yǔ)料進(jìn)展訓(xùn)練,保證相似的詞有相近的向量表示,稱之為詞向量(word embedding),雖然詞向量也是一個(gè)高維向量,但與one-hot 向量表示不同,可以通過計(jì)算詞向量的余弦相似度衡量詞匯語(yǔ)義上的相似度?;谶@種思路,Mikolov等人提出了兩種詞向量計(jì)算模型,一種是從周圍詞預(yù)測(cè)中心詞的連續(xù)詞袋模型(CBOW)。另一種是通過中心詞預(yù)測(cè)周圍詞的 Skip-gram 模型,并開發(fā)出結(jié)合這兩種詞向量計(jì)算模型的開源工具包word2vec。3.2.2 文本分析操作使用word2vec工具包,通過使用網(wǎng)

20、絡(luò)上大量語(yǔ)料庫(kù)進(jìn)展訓(xùn)練,我們可以獲得一個(gè)泛化能力極強(qiáng)的中文詞向量模型。這里使用了維基百科以與搜狗實(shí)驗(yàn)室公開的語(yǔ)料庫(kù)進(jìn)展了訓(xùn)練。過程中使用了Jieba分詞工具,并對(duì)數(shù)據(jù)進(jìn)展清洗,獲得接近2億詞匯量的已分詞數(shù)據(jù)。在一臺(tái)雙路E5-2683v3服務(wù)器上,使用三十分鐘訓(xùn)練出一個(gè)合理的詞向量模型,并進(jìn)展保存。對(duì)每一條評(píng)論,同樣使用Jieba分詞,并對(duì)文本進(jìn)展清洗,去除不合法字符,并對(duì)每個(gè)詞匯轉(zhuǎn)化為對(duì)應(yīng)的向量進(jìn)展求和,最后根據(jù)向量數(shù)量取平均值,獲得一個(gè)“句子向量,代表某個(gè)用戶的“語(yǔ)言習(xí)慣。至此,對(duì)每個(gè)用戶,在文本分析方面,獲得了一個(gè)400維度的向量。3.3 推薦系統(tǒng)推薦對(duì)象模型設(shè)計(jì)3.3.1 評(píng)分機(jī)制建模對(duì)

21、于每部影片,網(wǎng)絡(luò)爬蟲程序可以直接獲得站點(diǎn)所有歷史用戶對(duì)該電影的總平均評(píng)分,以與所有評(píng)分的百分比分布情況。根據(jù)用戶短評(píng)上所附帶的評(píng)分星星數(shù)量減去這一電影的平均打分,即可得出對(duì)應(yīng)這部電影的特征量。這樣我們獲得了一個(gè)直接且獨(dú)立的250維度向量。注意,假設(shè)用戶未看過某一部電影,如此對(duì)應(yīng)位置設(shè)置0。3.3.2 影片分類特征建模對(duì)于每部影片,網(wǎng)絡(luò)爬蟲程序可以直接獲得該影片所屬類型。例如喜劇、愛情、恐怖、懸疑等等。根據(jù)生活經(jīng)驗(yàn),用戶對(duì)某一類型電影的喜好極有可能反映出該用戶的整個(gè)喜好傾向。影片的類型特征對(duì)于單一的對(duì)某一部影片的喜好來說,很可能更有代表性。這樣我們獲得了一個(gè)直接且獨(dú)立的36維度向量。3.4 推薦

22、系統(tǒng)算法3.4.1 協(xié)同過濾算法協(xié)同過濾,簡(jiǎn)單來說是利用某興趣相投、擁有共同經(jīng)驗(yàn)之群體的喜好來推薦用戶感興趣的信息,個(gè)人通過合作的機(jī)制給予信息相當(dāng)程度的回應(yīng)如評(píng)分并記錄下來以達(dá)到過濾的目的進(jìn)而幫助別人篩選信息,回應(yīng)不一定局限于特別感興趣的,特別不感興趣信息的紀(jì)錄也相當(dāng)重要。協(xié)同過濾又可分為評(píng)比或者群體過濾。其后成為電子商務(wù)當(dāng)中很重要的一環(huán),即根據(jù)某顧客以往的購(gòu)置行為以與從具有相似購(gòu)置行為的顧客群的購(gòu)置行為去推薦這個(gè)顧客其“可能喜歡的品項(xiàng),也就是借由社區(qū)的喜好提供個(gè)人化的信息、商品等的推薦服務(wù)。3.4.2 基于項(xiàng)目的協(xié)同過濾算法傳統(tǒng)的以用戶為根底的協(xié)同推薦算法隨著用戶數(shù)量的增多,計(jì)算的時(shí)間就會(huì)變

23、長(zhǎng),所以在2001年Sarwar提出了基于項(xiàng)目的協(xié)同過濾推薦算法(Item-based Collaborative Filtering Algorithms)。以項(xiàng)目為根底的協(xié)同過濾方法有一個(gè)根本的假設(shè)“能夠引起用戶興趣的項(xiàng)目,必定與其之前評(píng)分高的項(xiàng)目相似,通過計(jì)算項(xiàng)目之間的相似性來代替用戶之間的相似性。 方法步驟:先計(jì)算已評(píng)價(jià)項(xiàng)目和待預(yù)測(cè)項(xiàng)目的相似度,并以相似度作為權(quán)重,加權(quán)各已評(píng)價(jià)項(xiàng)目的分?jǐn)?shù),得到待預(yù)測(cè)項(xiàng)目的預(yù)測(cè)值。例如:要對(duì)項(xiàng)目 A 和項(xiàng)目 B 進(jìn)展相似性計(jì)算,要先找出同時(shí)對(duì) A 和 B 打過分的組合,對(duì)這些組合進(jìn)展相似度計(jì)算,常用的算法同以用戶為根底User-based的協(xié)同過濾。以項(xiàng)

24、目為根底的協(xié)同過濾不用考慮用戶間的差異,所以精度比擬差。但是卻不需要用戶的歷史數(shù)據(jù),或是進(jìn)展用戶識(shí)別。對(duì)于項(xiàng)目來講,它們之間的相似性要穩(wěn)定很多,因此可以離線完成工作量最大的相似性計(jì)算步驟,從而降低了在線計(jì)算量,提高推薦效率,尤其是在用戶多于項(xiàng)目的情形下尤為顯著。3.5 推薦系統(tǒng)推薦關(guān)鍵算法局部3.5.1 距離定義局部在推薦系統(tǒng)中常見的四種距離:歐式距離、曼哈頓距離、cos距離、pearson距離。defeuclidean_dis(rating1, rating2):計(jì)算2個(gè)打分序列間的歐式距離. 輸入的rating1和rating2都是打分dict 格式為電影id1: 1.0, 電影idn:

25、5.0 distance =0 monRatings =Falsefor key in rating1:if key in rating2: distance += (rating1key - rating2key)2 monRatings =True#兩個(gè)打分序列之間有公共打分電影if monRatings:return distance#無公共打分電影else:return-1defmanhattan_dis(rating1, rating2): distance =0 monRatings =Falsefor key in rating1:if key in rating2: dista

26、nce +=abs(rating1key - rating2key) monRatings =True#兩個(gè)打分序列之間有公共打分電影if monRatings:return distance#無公共打分電影else:return-1defcos_dis(rating1, rating2): distance =0 dot_product_1 =0 dot_product_2 =0 monRatings =Falsefor score in rating1.values(): dot_product_1 += score2for score in rating2.values(): dot_p

27、roduct_2 += score2for key in rating1:if key in rating2: distance += rating1key * rating2key monRatings =True#兩個(gè)打分序列之間有公共打分電影if monRatings:return1-distance/sqrt(dot_product_1*dot_product_2)#無公共打分電影else:return-1defpearson_dis(rating1, rating2): sum_xy =0 sum_x =0 sum_y =0 sum_x2 =0 sum_y2 =0 n =0for k

28、ey in rating1:if key in rating2: n +=1 x = rating1key y = rating2key sum_xy += x * y sum_x += x sum_y += y sum_x2 +=pow(x, 2) sum_y2 +=pow(y, 2)# now pute denominator denominator = sqrt(sum_x2 -pow(sum_x, 2) / n) * sqrt(sum_y2 -pow(sum_y, 2) / n)if denominator =0:return0else:return (sum_xy - (sum_x

29、* sum_y) / n) / denominator3.5.2 近鄰查找局部#查找最近鄰defputeNearestNeighbor(username, users):在給定username的情況下,計(jì)算其他用戶和它的距離并排序 distances = for user in users:if user != username:#distance = manhattan_dis(usersuser, usersusername) distance = pearson_dis(usersuser, usersusername) distances.append(distance, user)#

30、 根據(jù)距離排序,距離越近,排得越靠前 distances.sort()return distances#推薦defremend(username, users):對(duì)指定的user推薦電影# 找到最近鄰 nearest = puteNearestNeighbor(username, users)01 remendations = # 找到最近鄰看過,但是我們沒看過的電影,計(jì)算推薦 neighborRatings = usersnearest userRatings = usersusernamefor artist in neighborRatings:ifnot artist in userR

31、atings: remendations.append(artist, neighborRatingsartist) results =sorted(remendations, key=lambda artistTuple: artistTuple1, reverse =True)for result in results:print(result0, result1)3.5.3 評(píng)分向量的構(gòu)建# 構(gòu)建電影評(píng)分標(biāo)準(zhǔn)向量vec_std = movie_pos = for index, item inenumerate(movie_data): movie_positemid = index ve

32、c_std.append(itemratingaverage /2) logging.debug(%s 的評(píng)分為 %f, itemtitle, itemratingaverage)vec_std = np.array(vec_std)第四章 課程設(shè)計(jì)總結(jié)與展望 總結(jié)本次課程設(shè)計(jì)以國(guó)訪問量排名第一的電影資訊評(píng)論站點(diǎn)“豆瓣電影的用戶數(shù)據(jù)為根底,構(gòu)建了一個(gè)基于語(yǔ)義分析的協(xié)同過濾推薦系統(tǒng)。該系統(tǒng)建立在使用高性能網(wǎng)絡(luò)爬蟲程序獲得的熱門電影的逾一千四百萬真實(shí)用戶影評(píng)之上,實(shí)現(xiàn)了一個(gè)多維度評(píng)價(jià)用戶的推薦系統(tǒng)。并可以分析生成一個(gè)統(tǒng)計(jì)結(jié)果。4.2 后續(xù)工作展望在數(shù)據(jù)的獲取存儲(chǔ)方面,后續(xù)可進(jìn)展數(shù)據(jù)庫(kù)或分布式數(shù)據(jù)庫(kù)

33、的改良。在評(píng)價(jià)機(jī)制方面,由于現(xiàn)有數(shù)據(jù)量少,電影數(shù)量少,推薦系統(tǒng)使用基于項(xiàng)目的協(xié)同過濾算法。假設(shè)爬蟲繼續(xù)運(yùn)行獲取全站大量數(shù)據(jù),用戶、電影數(shù)量快速增長(zhǎng),還可以進(jìn)展一些在線的推薦嘗試。致 本課程設(shè)計(jì)的工作是在我的導(dǎo)師寧教師悉心指導(dǎo)下完成的,導(dǎo)師淵博的專業(yè)知識(shí),嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,耐心的指導(dǎo)同學(xué),這些都對(duì)我產(chǎn)生了深遠(yuǎn)的影響。在此還要感樊駿同學(xué)對(duì)文檔寫作的指導(dǎo),鮮檳丞同學(xué)對(duì)網(wǎng)絡(luò)爬蟲設(shè)計(jì)的指導(dǎo)和幫助,他們幫助我抑制了一個(gè)個(gè)困難,使本課程設(shè)計(jì)順利完成,非常感他們!參考文獻(xiàn)1 Paul Resnick, Neophytos Iacovou, Mitesh Suchak, Peter Bergstr

34、om, John Riedl, GroupLens: an open architecture for collaborative filtering of netnews, puter Supported Cooperative Work, pp175-186, Chapel Hill, North Carolina, 1994.2 Balabanovic & Shoham, 1997; Mobasher et al., 2000; Yang et al., 200434 秀華、廖婉菁、吳肇銘,在線商品推薦系統(tǒng)之研究 -協(xié)同過濾機(jī)制之應(yīng)用A Study for On-line modity Remendation System:A Case of Collaborative Filtering,中原資管所

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!