基于內(nèi)容的微博推薦系統(tǒng)_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  隨著互聯(lián)網(wǎng)的高速發(fā)展,人們逐漸走入了信息過載時(shí)代,大量有用的、無用的信息充斥在互聯(lián)網(wǎng)的各個角落,而用戶的需求并不是任何時(shí)候都很明確傳統(tǒng)的分類目錄和搜索引擎并不能滿足需求,一些科學(xué)家和工程師提出了聯(lián)系用戶和物品解決信息過載問題的推薦系統(tǒng)。目前推薦系統(tǒng)已經(jīng)廣泛運(yùn)用與互聯(lián)網(wǎng)中,在微博平臺上也有基于好友關(guān)系的推薦、基于用戶個人信息的

2、推薦而基于微博信息本身——微博內(nèi)容的推薦卻很少見到。本文在win7操作系統(tǒng)下使用C#作為開發(fā)語言、使用Microsoft Visual Studio 2010作為開發(fā)工具,通過開發(fā)一款以基于內(nèi)容的微博推薦為特色的新浪微博客戶端來研究基于內(nèi)容的微博推薦系統(tǒng)能否在微博平臺上使用。系統(tǒng)通過對微博信息的分詞、分類等操作獲取每條微博信息的類別信息并以此為依據(jù)獲取用戶興趣和做出推薦。</p><p>  關(guān)鍵詞:推薦系統(tǒng);微

3、博;基于內(nèi)容; </p><p><b>  Abstract</b></p><p>  With the rapid development of Internet, people gradually get into the era of information overload.A large number

4、 of useful, useless information filled every corner of the Internet.But the needs of users at any time is not very clear traditional classification directories and search engines can not meet needs.Some scientists and en

5、gineers put forward a recommendation system to contact user and solve the problem of information overload.Non the Weibo platform is based on the recommendation of a fri</p><p>  keywords: Recommended system;

6、 Weibo; based on the content;</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  第1章 概述1</b></p>&

7、lt;p>  1.1 課題背景1</p><p>  1.1.1 推薦系統(tǒng)使用現(xiàn)狀1</p><p>  1.1.2 微博推薦研究現(xiàn)狀2</p><p>  1.2 本文主要工作內(nèi)容3</p><p>  第2章 微博推薦系統(tǒng)需求分析與系統(tǒng)總體設(shè)計(jì)4</p><p>  2.1 需求分析4</p

8、><p>  2.1.1 功能需求4</p><p>  2.1.2 性能需求5</p><p>  2.2 總體設(shè)計(jì)6</p><p>  2.2.1 系統(tǒng)架構(gòu)設(shè)計(jì)方案6</p><p>  2.2.2 功能架構(gòu)設(shè)計(jì)方案6</p><p>  2.3 開發(fā)環(huán)境和開發(fā)工具9</p&

9、gt;<p>  2.3.1 開發(fā)語言9</p><p>  2.3.2 開發(fā)工具9</p><p>  2.3.3 開發(fā)環(huán)境9</p><p>  2.4 本章小結(jié)9</p><p>  第3章 微博推薦系統(tǒng)詳細(xì)設(shè)計(jì)10</p><p>  3.1 用戶登錄詳細(xì)設(shè)計(jì)10</p>

10、<p>  3.2 發(fā)表微博詳細(xì)設(shè)計(jì)13</p><p>  3.3 微博展示詳細(xì)設(shè)計(jì)13</p><p>  3.4 微博推薦詳細(xì)設(shè)計(jì)15</p><p>  3.4.1 數(shù)據(jù)庫設(shè)計(jì)16</p><p>  3.4.2 類設(shè)計(jì)16</p><p>  3.4.3 微博推薦功能詳細(xì)設(shè)計(jì)20<

11、;/p><p><b>  3.5 小結(jié)23</b></p><p>  第4章 微博推薦系統(tǒng)實(shí)現(xiàn)和測試25</p><p>  4.1 系統(tǒng)登錄實(shí)現(xiàn)和測試25</p><p>  4.1.1 系統(tǒng)登錄實(shí)現(xiàn)25</p><p>  4.1.2 系統(tǒng)登錄測試26</p><

12、p>  4.2 系統(tǒng)主界面實(shí)現(xiàn)和測試26</p><p>  4.2.1 系統(tǒng)主界面各功能測試28</p><p>  4.3 系統(tǒng)系能測試28</p><p>  4.4 本章小結(jié)29</p><p><b>  結(jié) 論30</b></p><p><b>  參考文

13、獻(xiàn)31</b></p><p><b>  致 謝32</b></p><p><b>  概述</b></p><p><b>  課題背景</b></p><p>  本課題來源于國家自然科學(xué)基金青年基金項(xiàng)目“基于社會化網(wǎng)絡(luò)的信息推薦方法研究”。作為項(xiàng)目的

14、一部分本課題主要研究基于內(nèi)容的推薦系統(tǒng)在新浪微博上的使用。</p><p><b>  推薦系統(tǒng)使用現(xiàn)狀</b></p><p>  推薦系統(tǒng)是根據(jù)用戶歷史行為數(shù)據(jù)在海量的信息中為用戶推薦出其感興趣的信息,推薦系統(tǒng)的基本任務(wù)是聯(lián)系用戶和物品,解決信息過載問題。</p><p>  目前推薦系統(tǒng)已經(jīng)廣泛應(yīng)用于電子商務(wù)、電影和視頻、音樂、社交網(wǎng)絡(luò)、

15、閱讀、基于位置的服務(wù)、個性化郵件和廣告等領(lǐng)域。推薦系統(tǒng)給這些領(lǐng)域帶來了巨大了經(jīng)濟(jì)利益和極強(qiáng)的個性化體驗(yàn)。</p><p>  電子商務(wù)網(wǎng)站是個性化推薦系統(tǒng)的一大應(yīng)用領(lǐng)域。著名的電子商務(wù)網(wǎng)站亞馬遜是個性化推薦系統(tǒng)的積極應(yīng)用者和推廣者,被RWW(讀寫網(wǎng))稱為“推薦系統(tǒng)之王”。亞馬遜的推薦系統(tǒng)深入到了其各類產(chǎn)品中,其中最主要的應(yīng)用有個性化商品推薦列表和相關(guān)商品的推薦列表。個性化推薦列表采用了一種基于物品的推薦算法(it

16、em-based method),該算法給用戶推薦那些和他們之前喜歡的物品相似的物品。除了個性化推薦列表,亞馬遜另一個重要的推薦應(yīng)用就是相關(guān)推薦列表。當(dāng)你在亞馬遜購買一個商品時(shí),它會在商品信息下面展示相關(guān)的商品。個性化推薦體統(tǒng)給亞馬遜帶來的商業(yè)價(jià)值和對亞馬遜的意義:亞馬遜的前科學(xué)家Greg Linden在他的博客里曾經(jīng)說過,在他離開亞馬遜的時(shí)候,亞馬遜至少有20%(之后的一篇博文則變更為35%)的銷售來自于推薦算法[3];其CEO Je

17、ff Bezos在接受采訪時(shí)曾經(jīng)說過,亞馬遜相對于其他電子商務(wù)網(wǎng)站的最大優(yōu)勢就在于個性化推薦系統(tǒng),該系統(tǒng)讓每個用戶都能擁有一個自己的在線商店,并且能在商店中找到自己感興趣的商品[4]。</p><p>  在電影和視頻網(wǎng)站中,個性化推薦系統(tǒng)也是一種重要的應(yīng)用。它能夠幫助用戶在浩瀚的視頻庫中找到令他們感興趣的視頻。在該領(lǐng)域成功使用推薦系統(tǒng)的一家公司就是Netflix,它和亞馬遜是推薦系統(tǒng)領(lǐng)域最具代表性的兩家公司。從

18、Netflix的推薦理由來看,它們的算法和亞馬遜的算法類似,也是基于物品的推薦算法,即給用戶推薦和他們曾經(jīng)喜歡的電影相似的電影。至于推薦系統(tǒng)在Netflix中起到的作用,Netflix在宣傳資料[5]中宣稱,有60%的用戶是通過其推薦系統(tǒng)找到自己感興趣的電影和視頻的。</p><p>  個性化推薦系統(tǒng)在個性化音樂網(wǎng)絡(luò)電臺中的應(yīng)用。目前有很多知名的個性化音樂網(wǎng)絡(luò)電臺。國際上著名的有Pandora和Last.fm,

19、國內(nèi)的代表則是豆瓣電臺。</p><p>  最近幾年互聯(lián)網(wǎng)最激動人心的莫過于以Facebook和Twitter為代表的社交網(wǎng)絡(luò)應(yīng)用,在社交網(wǎng)絡(luò)中好友之間可以信息分享和傳播。在社交網(wǎng)絡(luò)中推薦系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用,它能利用用戶的社交網(wǎng)絡(luò)信息對用戶進(jìn)行個性化的物品推薦;能進(jìn)行信息流的會話推薦;為用戶推薦好友。經(jīng)常使用的qq、人人網(wǎng)都有為用戶推薦好友、為用戶推薦可能感興趣日志的機(jī)制。</p><

20、p>  綜上可見推薦系統(tǒng)已經(jīng)廣泛應(yīng)用于互聯(lián)網(wǎng)的各個領(lǐng)域,它出現(xiàn)在網(wǎng)絡(luò)的各個角落,上商務(wù)網(wǎng)站買東西它會推薦物品、上社交網(wǎng)絡(luò)它會推薦好友、上視頻網(wǎng)站它會推薦感興趣的視頻、上微博它會給推薦用戶感興趣的博主。</p><p><b>  微博推薦研究現(xiàn)狀</b></p><p>  在微博上關(guān)于推薦的研究也有很多。大部分是進(jìn)行好友推薦、散列標(biāo)簽(Hash tag)推薦或

21、者新聞推薦,而對于微博中主要的載體,簡短卻包含海量實(shí)時(shí)信息的微博內(nèi)容推薦的研究則不多。微博推薦有以下三個難點(diǎn):(1)用戶的活躍程度低。在傳統(tǒng)的推薦系統(tǒng)中,用戶登錄一個推薦系統(tǒng),就是為了選擇一些他想要的資源。而在微博推薦中,許多用戶上微博,更多的時(shí)間處于“看微博”,而不是“發(fā)微博”,因此很難直接獲得他們的顯式反饋信息,也難以對他們的興趣進(jìn)行學(xué)習(xí)和預(yù)測。(2)數(shù)據(jù)的稀疏性和不對稱性。在傳統(tǒng)的推薦問題中,用戶和資源一般是同一個數(shù)量級的。但是在

22、微博推薦問題中,由于微博數(shù)據(jù)海量的特點(diǎn),微博的數(shù)量和增長速度遠(yuǎn)遠(yuǎn)大于用戶的數(shù)量和增長速度。(3)用戶興趣的動態(tài)變化。微博的話題一直緊隨現(xiàn)實(shí)世界的發(fā)展,因此微博上話題不斷變化,用戶的興趣也隨之變化。在傳統(tǒng)推薦問題中,往往是用戶根據(jù)興趣選擇資源。在微博推薦中,則是不斷出現(xiàn)的微博改變著用戶的興趣,再由用戶選擇喜歡的微博。因此用戶的興趣一直在動態(tài)變化,很難找到一個用戶長時(shí)間感興趣的話題。推薦系統(tǒng)中大部分研究都是利用系統(tǒng)中的一些顯式信息來進(jìn)行學(xué)習(xí)

23、和預(yù)測。顯式信息指的是由用戶主動</p><p>  推薦算法聯(lián)系用戶與物品之間一般有三種方法:好友關(guān)系、用戶愛好、用戶歷史數(shù)據(jù)。好友關(guān)系是跟據(jù)好友之間的愛好具有相似之處而把用戶好友喜歡的物品推薦給用戶;幾乎所有的網(wǎng)站在用戶注冊的時(shí)候都要求用戶填寫個人信息,其中就有用戶興趣愛好一欄,通過用戶填寫的興趣愛好內(nèi)容給用戶做出推薦是聯(lián)系用戶與物品的一種方法;用戶歷史數(shù)據(jù)是用戶在以往操作中產(chǎn)生的數(shù)據(jù),通過用戶歷史數(shù)據(jù)分析出

24、用戶的興趣并以此為依據(jù)做出推薦。</p><p><b>  本文主要工作內(nèi)容</b></p><p>  本文主要研究基于內(nèi)容的微博推薦系統(tǒng),如何在微博上使用推薦系統(tǒng)為用戶進(jìn)行個性化推薦,推薦的依據(jù)則是用戶以前發(fā)表的微博信息的內(nèi)容。本文使用新浪微博作為推薦系統(tǒng)的載體開發(fā)一款以基于內(nèi)容的個性化推薦為特色的新浪微博客戶端(以下簡稱新浪微博客戶端),為此主要解決一下幾個問

25、題:</p><p> ?。?)新浪微博API使用;</p><p> ?。?)基于內(nèi)容對微博進(jìn)行分類;</p><p><b> ?。?)中文分詞;</b></p><p> ?。?)推薦方法的選擇。</p><p>  微博推薦系統(tǒng)需求分析與系統(tǒng)總體設(shè)計(jì)</p><p>

26、;  本章主要論述基于內(nèi)容的微博推薦系統(tǒng)通過開發(fā)一款新浪微博客戶端來實(shí)現(xiàn)并對這款客戶端進(jìn)行需求分析和總體設(shè)計(jì)。</p><p><b>  需求分析</b></p><p><b>  功能需求</b></p><p>  本小節(jié)對系統(tǒng)功能進(jìn)行需求分析。新浪微博客戶端,需要系統(tǒng)能夠發(fā)表微博、顯示用戶和好友發(fā)表的微博以及根據(jù)

27、以往用戶發(fā)表的微博信息為用戶推薦近期關(guān)注度比較高的公共微博信息。其中微博推薦是本系統(tǒng)最主要特色,它要求系統(tǒng)能夠根據(jù)用戶發(fā)表的微博信息內(nèi)容為用戶做出推薦。</p><p><b>  登錄</b></p><p>  系統(tǒng)使用之前需要登錄認(rèn)證,系統(tǒng)登錄需要能夠使用新浪微博賬號進(jìn)行登錄。</p><p><b>  發(fā)表微博</b&

28、gt;</p><p>  用戶能夠在登錄以后發(fā)表140字以內(nèi)的文字微博或者發(fā)表140字以內(nèi)帶有圖片的圖文微博。 </p><p><b>  微博推薦</b></p><p>  這個部分是本系統(tǒng)的主要功能,根據(jù)用戶以往發(fā)表的微博信息的內(nèi)容為用戶做出推薦,推薦一些用戶感興趣的公共微博信息給用戶。通過四步完成推薦:微博下載、確定用戶興趣、用戶對

29、某條微博感興趣程度、做出合理推薦。</p><p>  微博下載:要想進(jìn)行微博推薦就需要大量的微博信息的數(shù)據(jù),而微博信息都存儲在各大微博平臺的服務(wù)器中,如何才能下載這些信息呢?各大微博平臺給第三方提供了微博API接口,通過這些接口能方便的下載服務(wù)器中的微博信息。這里需要能夠下載兩個方面的微博數(shù)據(jù)一是最近幾天關(guān)注度高的微博信息(以下稱為待推薦微博);二是某個用戶發(fā)表的所有微博信息,考慮到用戶感興趣的內(nèi)容可能會隨著時(shí)

30、間、環(huán)境、心情發(fā)生改變,用戶發(fā)表的所有微博信息應(yīng)該是近期所發(fā)表的所有微博信息(以下成為個人微博信息),這個時(shí)間大概是兩個月左右。將下載的個人微博信息和待推薦中的每條微博信息保存下來,為接下來的推薦提供數(shù)據(jù)支持。</p><p>  確定用戶興趣:要想知道用戶對哪些微博信息感興趣首先需要對微博信息進(jìn)行分類,要想對微博信息分類首先要進(jìn)行微博信息的分詞。所以確定用戶的興趣要走兩步:分詞、分類。</p>&

31、lt;p>  分詞是將下載的所有微博信息的內(nèi)容按照中文分詞技術(shù)分割成一個一個單獨(dú)的詞,再根據(jù)需要去除其中的虛詞,留下需要的有意義的名詞和動詞,形成各個微博信息對應(yīng)的詞向量。</p><p>  分類是使用分類算法將分詞產(chǎn)生的每條微博信息的詞向量進(jìn)行類別的劃分,確定每條微博信息所屬的類別。用戶的興趣則是根據(jù)用戶發(fā)表微博所屬的類別確定。</p><p>  根據(jù)用戶發(fā)表的微博信息在各個類

32、別中所占的比重對用戶興趣做出歸納,之后從待推薦微博中推薦出最合理的一組微博推薦給用戶。</p><p><b>  系統(tǒng)用例</b></p><p>  通過需求分析,得到如圖2-1所示的系統(tǒng)用例圖。</p><p>  圖2-1 新浪微博客戶端用例圖</p><p><b>  性能需求</b>&

33、lt;/p><p>  待推薦的微博應(yīng)該具有實(shí)時(shí)性,每次推薦的內(nèi)容不應(yīng)該完全一樣;推薦的微博信息應(yīng)該能夠涵蓋用戶大部分興趣,即推薦的覆蓋率問題;對于一個新用戶或者沒有發(fā)表過微博的用戶應(yīng)該也能做出一個合理的微博推薦,即系統(tǒng)冷啟動問題;系統(tǒng)登錄響應(yīng)時(shí)間、微博加載時(shí)間和微博推薦時(shí)間不能太長,要在用戶能夠忍受的范圍之內(nèi),對于推薦的結(jié)果系統(tǒng)需要提供一種驗(yàn)證機(jī)制。</p><p><b>  總

34、體設(shè)計(jì)</b></p><p>  根據(jù)系統(tǒng)的需求將系統(tǒng)主要分為四個功能,登錄,發(fā)表微博、查看微博和微博推薦。其中登錄使用OAUTH模擬認(rèn)證;發(fā)表微博和查看微博只需要使用新浪微博API就能實(shí)現(xiàn);微博推薦則是本系統(tǒng)的重點(diǎn):首先系統(tǒng)根據(jù)需要下載登錄用戶的個人微博信息和待推薦微博信息;然后根據(jù)分類算法對每一條用戶微博信息進(jìn)行分類確定用戶興趣;之后對每條待推薦微博進(jìn)行分類以確定該條微博是否是用戶感興趣的微博;

35、最后從用戶感興趣的待推薦微博信息中選擇一個推薦隊(duì)列推薦給用戶。</p><p><b>  系統(tǒng)架構(gòu)設(shè)計(jì)方案</b></p><p>  系統(tǒng)為三層架構(gòu),邏輯層、展示層、數(shù)據(jù)層組成如圖2-2 微博推薦系統(tǒng)架構(gòu)圖。用戶界面是用戶與系統(tǒng)的交互層,推薦用戶賬號、最終推薦微博數(shù)量輸入以及最終推薦結(jié)果顯示都是在這個界面完成;邏輯層由微博下載、分詞、分類、推薦四個模塊組成,主要使

36、用數(shù)據(jù)層的數(shù)據(jù)為用戶做出推薦并將推薦結(jié)果通過展示層展示給用戶;數(shù)據(jù)層主要是系統(tǒng)從新浪微博服務(wù)器中下載的微博信息。</p><p>  圖2-2 微博推薦系統(tǒng)架構(gòu)圖</p><p><b>  功能架構(gòu)設(shè)計(jì)方案</b></p><p>  本客戶端由登錄、發(fā)表微博、展示微博和微博推薦四個部分組成。</p><p>  系統(tǒng)

37、登錄使用新浪微博開發(fā)平臺提供的OAuth認(rèn)證,新浪微博客開發(fā)平臺為了保障新浪微博的安全性第三方軟件開發(fā)過程中微博登錄還需要登錄賬號在新浪微博開發(fā)平臺上申請的認(rèn)證信息,為此本客戶端登錄不僅需要輸入新浪微博賬號密碼還需要設(shè)置該賬號對應(yīng)的App Key和APP Secret。</p><p>  發(fā)表微博和展示微博使用新浪微博API接口就能實(shí)現(xiàn)。用戶登錄客戶端之后就能發(fā)表微博信息,微博信息包括兩個部分文本信息和圖片信息

38、。文本信息是必不可少的,它的輸入是一個140字以內(nèi)的文字信息;圖片信息可有可無,當(dāng)發(fā)表圖片時(shí)需要選擇本地的一張圖片進(jìn)行上傳,當(dāng)圖片上傳完畢時(shí)給出提示。發(fā)表微博使用新浪微博API接口中的寫入接口update。</p><p>  展示微博信息包括顯示用戶以往發(fā)表的微博信息(這部分的微博信息需要存儲下來,在微博推薦中需要使用)和好友微博信息。顯示用戶以往發(fā)表的微博信息使用新浪微博API接口中的讀取接口user_tim

39、eline。下載好友微博信息需要使用新浪微博API接口中的讀取接口friends_timeline。這兩個接口下載的內(nèi)容都是JSON格式的數(shù)組,通過遍歷這個數(shù)組可以得到一條微博的任何信息。返回類型包含的內(nèi)容如表2-1 返回字段說明。</p><p>  表2-1返回字段說明</p><p>  本系統(tǒng)最主要功能和特點(diǎn)是微博推薦部分。這個部分由微博下載、分詞、分類和推薦四模塊構(gòu)成。</

40、p><p>  微博下載模塊,本系統(tǒng)使用新浪微博API[10],從服務(wù)器中下載公用微博200條(待推薦微博)和要用戶在最近發(fā)表的微博信息20條(個人微博)。這部分需要使用新浪微博開發(fā)平臺中的API接口,主要使用微博讀取接口;在使用過程中需要獲取新浪微博開放平臺應(yīng)用認(rèn)證,在認(rèn)證成功之后下載微博信息并將下載的微博信息存入數(shù)據(jù)庫中。具體下載過程如圖2-3 微博下載流程圖所示。</p><p>  圖

41、2-3 微博下載流程圖</p><p>  分詞模塊使用中文分詞技術(shù)將微博內(nèi)容分解為一個個單獨(dú)的詞。這部分使用中科院ICTCLAS開源軟件,將微博信息的內(nèi)容分成一個一個的詞以及每個詞的詞性;再根據(jù)詞的詞性將虛詞、助詞、代詞等沒有實(shí)際意義的詞去掉;最后將剩下的詞組成詞向量。</p><p>  分類模塊使用推薦算法將分詞產(chǎn)生的詞向量進(jìn)行分類,本系統(tǒng)使用K為1的KNN算法進(jìn)行分類,每一條微博信

42、息對應(yīng)一個類別。KNN分類算法具體歩驟如下:</p><p>  建立一個包含所有類別的訓(xùn)練集</p><p>  對訓(xùn)練集中的內(nèi)容進(jìn)行分詞后得到每個類別的特征詞以及該詞在本類別的權(quán)值</p><p>  對每條微博信息進(jìn)行分詞獲取詞向量</p><p>  微博詞向量與類別詞向量進(jìn)行相似度計(jì)算,依次計(jì)算本條微博在每個類別的權(quán)重</p&

43、gt;<p>  根據(jù)SWF決策規(guī)則,將微博分配到權(quán)重最大的那個類別中</p><p>  在系統(tǒng)中設(shè)計(jì)一個后臺模塊能夠通過訓(xùn)練集中的內(nèi)容得到每個類別的詞向量,在系統(tǒng)運(yùn)行時(shí)只要將類別詞向量加載就能進(jìn)行接下來的分詞工作了。</p><p>  推薦模塊對每一條用戶微博信息進(jìn)行分詞、分類操作得到用戶的興趣,之后對每一條待推薦微博都進(jìn)行分詞、分類操作得到該條微博信息所屬的類別從而確

44、定這條微博用戶是否感興趣,以此確定這條微博是否能推薦給用戶。最后在能推薦給用戶的微博信息中選擇一個最符合用戶興趣分布的隊(duì)列作為推薦列表進(jìn)行覆蓋率計(jì)算。覆蓋率計(jì)算主要是通過用戶以往轉(zhuǎn)載微博信息的類別與推薦列表中微博的類別進(jìn)行對比看這個推薦列表包含了用戶轉(zhuǎn)載微博信息所含有的哪些類,如果包含的不多說明這個推薦不是一個好的推薦需要在可能推薦給用戶的微博信息中重新獲取推薦列表。</p><p><b>  開發(fā)環(huán)

45、境和開發(fā)工具</b></p><p><b>  開發(fā)語言</b></p><p>  新浪微博客戶端主要使用C#進(jìn)行開發(fā),在實(shí)現(xiàn)過程中根據(jù)需要還會使用一些css、html方面的語言。</p><p><b>  開發(fā)工具</b></p><p>  新浪微客戶端使用Microsoft

46、Visual Studio 2010作為開發(fā)工具,SQL Server 2008作為數(shù)據(jù)存儲工具。</p><p><b>  開發(fā)環(huán)境</b></p><p>  新浪微博客戶端在Win7操作系統(tǒng)下開發(fā),開發(fā)測試過程中需要連上互聯(lián)網(wǎng)的計(jì)算機(jī),具有新浪微博開放平臺認(rèn)證, sql server2008數(shù)據(jù)庫。</p><p><b> 

47、 本章小結(jié)</b></p><p>  本章論述了新浪微博客戶端的需求分析和總體設(shè)計(jì)。需求分析部分主要論述了系統(tǒng)的主要功能需求和性能需求,為系統(tǒng)的開發(fā)明確了要求??傮w設(shè)計(jì)部分主要根據(jù)需求對系統(tǒng)進(jìn)行整體上的設(shè)計(jì),對系統(tǒng)的功能架構(gòu)方面進(jìn)行的論述和做出取舍。</p><p>  微博推薦系統(tǒng)詳細(xì)設(shè)計(jì)</p><p><b>  [小冒]</b&

48、gt;</p><p>  本章跟據(jù)系統(tǒng)的需求分析和總體設(shè)計(jì)分模塊對系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),包括各個模塊的具體功能實(shí)現(xiàn)設(shè)計(jì)、模塊流程、模塊使用技術(shù)以及實(shí)現(xiàn)各模塊的類設(shè)計(jì)。</p><p><b>  用戶登錄詳細(xì)設(shè)計(jì)</b></p><p>  新浪微博開發(fā)平臺為第三方微博開發(fā)提供平臺,在開發(fā)階段使用新浪微博API需要進(jìn)行Oauth認(rèn)證,如果要發(fā)布使

49、用新浪微博API的軟件作為第三方軟件的開發(fā)者需要將自己開發(fā)的軟件提交審核才能發(fā)布,發(fā)布后所有新浪微博賬號都能登錄,而這一過程需要有完整的軟件提交審核,在開發(fā)和測試過程中并不適用;所以在我的客戶端中使用Oauth認(rèn)證,需要用戶輸入登錄賬號申請的認(rèn)證信息。新浪微博開發(fā)平臺提供了一種開發(fā)測試過程中使用的方法:為每個測試的賬號申請App Key和APP Secret并且設(shè)置響應(yīng)的回調(diào)地址,這樣在開發(fā)過程中不需要提交審核只需為每個賬號申請App

50、Key和APP Secret并且在程序中設(shè)置就行了。微博推薦客戶端就是使用這種登錄機(jī)制具體過程如下:</p><p>  (1). 進(jìn)入登錄界面,從登錄界面進(jìn)入設(shè)置界面設(shè)置本次要登錄的用戶在新浪微博開放平臺上申請的App Key,App Secret和設(shè)置的回調(diào)地址,然后將輸入的認(rèn)證信息返回登錄界面。如果上次登錄成功并且選擇了保存賬號密碼的話這次進(jìn)入設(shè)置界面會顯示上次登錄賬號的App Key,App Secret

51、和設(shè)置的回調(diào)地址。</p><p>  (2). 返回登錄界面后根據(jù)認(rèn)證信息實(shí)例化授權(quán)對象Oauth</p><p>  (3). 輸入賬號和密碼;如果上次登錄成功并且保存了賬號密碼系統(tǒng)會自動設(shè)置上次的賬號密碼。</p><p>  (4). 使用Oauth對象進(jìn)行模擬登錄</p><p>  (5). 如果登錄的賬號申請的App Key與設(shè)

52、置不同或者登錄賬號密碼有錯則提示響應(yīng)錯誤,返回登錄界面;如果登錄成功則進(jìn)入主界面并且獲取Access Token,如果選擇了保存賬號密碼則會將本次登錄的賬號密碼以及設(shè)置信息保存下來。</p><p>  在不設(shè)置App Key、App Secret和回調(diào)地址的時(shí)候系統(tǒng)默認(rèn)App Key為704237077、App Secret為d39cef08d447b3ce55145ce052287fd4、回調(diào)地址為http:

53、//127.0.0.1 ,與之相對應(yīng)的新浪微博賬號密碼也在登錄中設(shè)置為默認(rèn)。</p><p>  登錄過程中的類圖如圖3-1 登錄類圖所示。</p><p><b>  圖3-1 登陸類圖</b></p><p>  登錄過程時(shí)序圖如圖3-1登錄時(shí)序圖所示。</p><p>  圖3-1 登錄時(shí)序圖</p>

54、<p>  登錄流程圖如圖3-2新浪微博客戶端登錄流程圖。</p><p>  圖3-2 新浪微博客戶端登錄流程圖</p><p><b>  發(fā)表微博詳細(xì)設(shè)計(jì)</b></p><p>  發(fā)表微博是將140字以內(nèi)的文字微博或者140內(nèi)的文字和圖片的圖文微博發(fā)表到新浪微博服務(wù)器中。首先需要一個輸入界面能夠接收用戶發(fā)表的文字和圖片信息

55、,在用戶的輸入過程中還需要在文字大于140時(shí)給用戶做出提示;之后使用新浪微博API接口上傳發(fā)表的微博信息。</p><p>  發(fā)表微博詳細(xì)用設(shè)計(jì)如表3-1 發(fā)表微博用例規(guī)約所示。用例規(guī)約詳細(xì)描述了發(fā)表微博功能的實(shí)現(xiàn)流程以及需要處理的異常事件;發(fā)表微博用例實(shí)現(xiàn)如表3-2 發(fā)表微博用例實(shí)現(xiàn)所示,該表詳細(xì)設(shè)計(jì)了發(fā)表微博功能所屬頁面、實(shí)現(xiàn)這個功能所需數(shù)據(jù)的定義以及實(shí)現(xiàn)發(fā)表微博的事件和線程。</p><

56、;p>  表3-1 發(fā)表微博用例規(guī)約</p><p>  表3-2 發(fā)表微博用例實(shí)現(xiàn)</p><p><b>  微博展示詳細(xì)設(shè)計(jì)</b></p><p>  微博展示包括兩個方面的內(nèi)容:查看用戶發(fā)表的微博信息和查看用戶關(guān)注的好友(以下簡稱好友)的微博信息。查看微博信息的功能是將用戶微博信息和好友微博信息通過登錄時(shí)認(rèn)證獲取的授權(quán)Oauth

57、創(chuàng)建Client對象使用新浪微博API下載然后在主界面中展示出來。</p><p>  查看用戶微博信息如表3-3 查看用戶微博用例規(guī)約。該規(guī)約列出了查看的微博信息條數(shù)以及實(shí)現(xiàn)該功能的基本流程。</p><p>  表3-3 查看用戶微博用例規(guī)約</p><p>  查看用戶個人微博信息下載用戶最近發(fā)表的20微博信息,以固定的格式顯示出來;根據(jù)微博信息微博內(nèi)容比較短

58、,既有圖片又有文字的特點(diǎn)使用css和html設(shè)計(jì)每一條微博信息的顯示格式,這樣在顯示列表時(shí)就非常方便了。</p><p>  查看用戶微博信息用例實(shí)現(xiàn)如表3-4 查看用戶微博信息用例實(shí)現(xiàn)所示。該表詳細(xì)列出了微博信息的具體內(nèi)容,還為信息的展示提供了模板使微博信息能整齊清晰的展現(xiàn)出來。</p><p>  表3-4 查看用戶微博信息用例實(shí)現(xiàn)</p><p>  查看好友

59、微博信息的主要功能是顯示用戶好友最近發(fā)表的20條微博信息。查看好友微博信息詳細(xì)用例設(shè)計(jì)如表3-5 查看好友微博信息用例規(guī)約所示。該表詳細(xì)描述了展示好友微博的具體流程以可能出現(xiàn)的異常事件流并對異常事件做出相應(yīng)的解決。</p><p>  表 3-5 查看好友微博信息用例規(guī)約</p><p>  查看好友微博信息用例實(shí)現(xiàn)如表3-6 查看好友微博信息用例實(shí)現(xiàn)所示。該表與表3-4 查看用戶微博信息

60、用例實(shí)現(xiàn)類似,這里不再做贅述。</p><p>  表 3-6 查看好友微博信息用例實(shí)現(xiàn)</p><p><b>  微博推薦詳細(xì)設(shè)計(jì)</b></p><p>  微博推薦模塊式微博推薦客戶端的重點(diǎn),從表面上來看與個人微博顯示、好友微博顯示沒有什么區(qū)別,但是顯示的內(nèi)容取得的方式與這兩者有天壤之別;個人微博信息和好友微博信息只要從服務(wù)器中下載Js

61、on格式的數(shù)據(jù)然后按需求獲取就行了,而微博推薦不僅要下載微博信息,而且要根據(jù)微博信息的內(nèi)容確定用戶的興趣并且為用戶做出推薦。按照需求分析這個部分的設(shè)計(jì)也分為微博下載、分詞、分類和做出推薦幾個部分。在詳細(xì)設(shè)計(jì)這幾個部分之前先將數(shù)據(jù)庫和基本類設(shè)計(jì)好。</p><p><b>  數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  根據(jù)前期的分析和系統(tǒng)需求,設(shè)計(jì)Person_Weibo

62、表用于存儲用戶微博信息,Other_Weibo表用于存儲待推薦微博信息。</p><p>  用戶微博信息Person_Weibo(微博ID Weibo_id,用戶頭像地址 ProfileImageUrl,用戶名ScreenName,微博內(nèi)容Text,微博圖片PictureUrl,評論條數(shù)RepostsCount,轉(zhuǎn)載條數(shù) ConmmentsCount)</p><p>  表3-7 Pe

63、rson_Weibo數(shù)據(jù)表</p><p>  待推薦微博信息Other_Weibo(微博發(fā)表人號 User_id,微博ID Weibo_id,用戶頭像地址 ProfileImageUrl,用戶名 ScreenName,微博內(nèi)容 Text,微博圖片 PictureUrl,評論條數(shù) RepostsCount,轉(zhuǎn)載條數(shù) CommentsCount)</p><p>  表3-8 Other_W

64、eibo數(shù)據(jù)表</p><p><b>  類設(shè)計(jì)</b></p><p>  微博推薦主要分為六個類,其類圖如圖3-3微博推薦類圖所示。其中除了frmMain類(客戶端主頁面)還包含發(fā)表微博、查看微博等功能模塊其余的五個類都是為微博推薦服務(wù)的。</p><p>  圖3-3 微博推薦類圖</p><p>  ODBC是

65、與數(shù)據(jù)庫連接交互的類,PersonWeibo和OtherWeibo繼承Weibo類,這三個類是微博信息類。RecommendWeibo是做出推薦功能的類。各個類的詳細(xì)信息如下:</p><p>  Weibo類是微博信息的基類,它包含本系統(tǒng)需要的所有微博信息,被PersonWeibo和OtherWeibo類繼承,其詳細(xì)信息如表3-9 Weibo類詳細(xì)介紹所示。 </p><p>  表 3

66、-9 Weibo類詳細(xì)介紹</p><p>  PersonWeibo類是個人微博信息的實(shí)體類。它繼承了Weibo類,包含了系統(tǒng)所需微博信息的所有內(nèi)容,還包含了個人基本信息。定義了下載下來的json微博信息中所需要的內(nèi)容和格式,其數(shù)據(jù)內(nèi)容如表3-10 PersonWeibo類詳細(xì)介紹所示。</p><p>  表 3-10 PersonWeibo類詳細(xì)介紹</p><p

67、>  OtherWeibo類是待推薦微博信息的實(shí)體類,它繼承Weibo類,包含推薦所需的微博信息的所有內(nèi)容還包含發(fā)表這條微博信息的用戶基本信息。其詳細(xì)信息如表3-11 OtherWeibo類詳細(xì)介紹所示。</p><p>  表 3-11 OtherWeibo類詳細(xì)信息</p><p>  ODBC類是數(shù)據(jù)庫連接和操作類,其具體功能是根據(jù)系統(tǒng)需要對WeiboRecommend數(shù)據(jù)庫中

68、的Person_Weibo表和Other_Weibo表進(jìn)行操作,具體信息如表2-12 ODBC類詳細(xì)介紹。</p><p>  表 2-12 ODBC類詳細(xì)介紹</p><p>  RecommendWeibo類是微博推薦的實(shí)現(xiàn)類,它根據(jù)微博推薦的流程分為微博下載、分詞、分類和相似度計(jì)算幾個功能,每個功能用一個方法實(shí)現(xiàn),具體信息見表2-13 RecommendWeibo類詳細(xì)介紹。<

69、/p><p>  表 2-13 RecommendWeibo類詳細(xì)介紹</p><p>  微博推薦功能詳細(xì)設(shè)計(jì)</p><p>  要實(shí)現(xiàn)微博推薦需要以下幾個模塊一起完成,微博下載提供數(shù)據(jù)支持;中文分詞提供進(jìn)行信息提?。环诸惒僮鳛槊織l微博劃分類別為接下來的推薦提供依據(jù)。</p><p><b>  微博下載詳細(xì)設(shè)計(jì)</b>

70、</p><p>  微博下載功能由RecommendWeibo類的DownLoad方法實(shí)現(xiàn),用于下載個人微博信息,用戶轉(zhuǎn)載微博信息和待推薦微博信息并將其存入數(shù)據(jù)庫中;這一過程主要使用Sina對象的UserTimeline接口和PublicTimeline接口進(jìn)行下載實(shí)例化PersonWeibo對象和OtherWeibo對象,并使用ODBC中的insert_personweibo方法和insert_otherwe

71、ibo方法將對象存入數(shù)據(jù)庫中。</p><p><b>  分詞詳細(xì)設(shè)計(jì)</b></p><p>  分詞由RecommendWeibo類的ICTCLAS方法實(shí)現(xiàn),這個部分主要使用中科院的ICTCLAS分詞工具將傳入的微博信息內(nèi)容分詞并產(chǎn)生詞向量,具體過程如下:</p><p>  (1). 引入NLPIR.DLL并申明使用的函數(shù)</p&

72、gt;<p>  (2). 使用NLPIR_GetParagraphProcessAWordCount方法獲取結(jié)果中詞數(shù)量</p><p>  (3). 使用NLPIR_ParagraphProcess方法進(jìn)行分詞,獲得InrPtr類型的結(jié)果</p><p>  (4). 根據(jù)分詞結(jié)果中的每個詞的詞性,將形容詞、副詞、介詞、連詞、感嘆詞等詞去除,留下來的形成這條微博信息的詞向

73、量。</p><p>  微博信息詞向量使用結(jié)構(gòu)體WordVector存儲,WordVector詳細(xì)信息如表2-14 所示。</p><p>  表2-14 WordVector結(jié)構(gòu)體詳細(xì)信息</p><p><b>  分類詳細(xì)設(shè)計(jì)</b></p><p>  微博分類功能使用K等于1的KNN算法實(shí)現(xiàn),KNN分類算法具

74、體歩驟如下:</p><p>  建立一個包含所有類別的訓(xùn)練集</p><p>  (2)對訓(xùn)練集中的內(nèi)容進(jìn)行分詞后得到每個類別的特征詞以及該詞在本類別的權(quán)值</p><p>  (3)對每條微博信息進(jìn)行分詞獲取詞向量</p><p> ?。?)微博詞向量與類別詞向量進(jìn)行相似度計(jì)算,依次計(jì)算本條微博在每個類別的權(quán)重</p>&l

75、t;p> ?。?)根據(jù)SWF決策規(guī)則,將微博分配到權(quán)重最大的那個類別中</p><p>  為了系統(tǒng)能夠更快的做出推薦也基于訓(xùn)練集的相對固定性步驟1和2在客戶端運(yùn)行之前就應(yīng)該完成。訓(xùn)練集的建立則是根據(jù)新浪博客對博客的分類系統(tǒng)建立每個類別并使用新浪博客為用戶推薦的各月、各周的熱門微博作為類別的內(nèi)容。選擇新浪博客的分類系統(tǒng)作為推薦的類別主要是因?yàn)樾吕宋⒉┎]有對微博本身的分類,只有微博用戶的分類而一個微博用戶不

76、會只發(fā)表一個類別的微博信息這樣訓(xùn)練集的內(nèi)容就不準(zhǔn)確了;而新浪博客的分類系統(tǒng)比較成熟,各種類別的博文都很充實(shí)。根據(jù)新浪博客的分類系統(tǒng)以及微博本身的一些特點(diǎn)最終提取出一下十一個類別:IT數(shù)碼、教育就業(yè)、軍事、旅游、美食、汽車、體育、投資理財(cái)、文化、游戲動漫和娛樂。每個類別下載30篇左右的博文作為每個類別的訓(xùn)練集。編寫一個后臺程序?qū)⒂?xùn)練集中的內(nèi)容進(jìn)行分詞操作得到一個包含所有訓(xùn)練集中的名詞和動詞的不重復(fù)的詞庫;之后為每個類建立一個以詞庫中詞的個

77、數(shù)為長度的一維數(shù)組存儲這個類中每個詞的個數(shù)。并將詞庫和類別詞數(shù)組存入文本文件中,微博推薦時(shí)將類別次數(shù)組加載成類別詞向量,這個詞向量。</p><p>  微博推薦中的分類由RecommendWeibo類的Classify方法實(shí)現(xiàn),這個方法主要完成KNN算法的后幾個步驟。首先獲取一條微博信息使用ICTCLAS方法進(jìn)行分詞,分詞完成之后計(jì)算這條微博信息的詞向量與各個類別的相似度,具體計(jì)算方法如下:</p>

78、<p>  設(shè)類別的詞向量為T[n],n長度為詞庫中詞的個數(shù),T[i]為在詞庫中編號為i的詞在這個類別中的個數(shù);微博詞向量為P(w1,w2,w3..),wi詞向量中的詞在詞庫中的編號;相似度為S,計(jì)算公式如公式1所示</p><p>  .……………………(1)</p><p>  計(jì)算一條微博信息與所有類別的相似度,選擇相似度最大的類作為這條微博信息的類別。</p&g

79、t;<p>  用戶興趣確定詳細(xì)設(shè)計(jì)</p><p>  用戶的興趣是根據(jù)用戶以往發(fā)表的微博信息內(nèi)容確定的,在在實(shí)現(xiàn)過程中則是取出每一條微博信息使用ICTCLAS方法對其進(jìn)行分詞獲取本條信息的WordVector類型結(jié)構(gòu)體,之后使用Classify方法對詞向量進(jìn)行分類,獲得本條微博信息的類型,然后將用戶興趣數(shù)組的對應(yīng)類的值加一,以此遍歷每一條用戶微博信息,得到用戶興趣數(shù)組。具體流程如圖3-4確定用戶

80、興趣流程圖所示。</p><p>  圖3-4 確定用戶興趣</p><p>  做出微博推薦詳細(xì)設(shè)計(jì)</p><p>  微博推薦是對每一條待推薦微博都進(jìn)行一整套的微博推薦流程,具體流程如下:</p><p>  (1). 從Other_Weibo表中讀取一條微博信息</p><p>  (2). 對這條微博信息的內(nèi)

81、容進(jìn)行分詞得到WordVector結(jié)構(gòu)體形式的詞向量</p><p>  (3). 對詞向量進(jìn)行分類,得到這條微博信息的類別</p><p>  (4). 根據(jù)用戶興趣數(shù)組確定這條微博信息是否有可能推薦</p><p>  (5). 沒有可能返回(1),有可能判斷微博推薦列表是否滿了滿了則返回(1),否則將這條微博信息的ID加入推薦列表</p><

82、;p>  (6). 獲得推薦列表</p><p>  (7). 將推薦列表的微博與用戶以往轉(zhuǎn)載的微博信息進(jìn)行覆蓋率計(jì)算</p><p>  (8). 如果推薦列表中的微博信息能夠覆蓋轉(zhuǎn)載微博信息類別的60以上則將這個結(jié)果推薦給用戶,如果低于60%,則將列表中沒有在轉(zhuǎn)載微博信息類別中的微博信息剔除待推薦列表,并且重復(fù)推薦過程重新推薦。</p><p>  流程圖

83、如圖3-5所示。</p><p><b>  小結(jié)</b></p><p>  本章詳細(xì)設(shè)計(jì)了系統(tǒng)的各個功能模塊的實(shí)現(xiàn),詳細(xì)分析和設(shè)計(jì)了各個功能實(shí)現(xiàn)的流程,設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫表,設(shè)計(jì)了系統(tǒng)主要的類為系統(tǒng)實(shí)現(xiàn)提供最終要也是最直觀的設(shè)計(jì)方案。系統(tǒng)實(shí)現(xiàn)只需要按照詳細(xì)設(shè)計(jì)內(nèi)容按部就班進(jìn)行就能基本完成。</p><p>  圖3-5微博推薦流程圖<

84、/p><p>  微博推薦系統(tǒng)實(shí)現(xiàn)和測試</p><p>  本章論述系統(tǒng)的實(shí)現(xiàn),通過前幾章的需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)系統(tǒng)的設(shè)計(jì)已經(jīng)完成,接下來就是將設(shè)計(jì)轉(zhuǎn)變?yōu)榭蛇\(yùn)行的程序,實(shí)現(xiàn)新浪微博客戶端。</p><p><b>  系統(tǒng)登錄實(shí)現(xiàn)和測試</b></p><p><b>  系統(tǒng)登錄實(shí)現(xiàn)</b>

85、</p><p>  系統(tǒng)登錄有兩個頁面:登錄界面和設(shè)置界面完成。</p><p>  啟動新浪微博客戶端進(jìn)入登錄頁面;登錄頁如圖4-1 新浪微博客戶端登錄頁面所示。登錄用戶的賬號和密碼由這個頁面輸入,如果上次成功登錄則賬號密碼默認(rèn)為上次登錄的信息;設(shè)置按鈕進(jìn)入設(shè)置頁面;取消按鈕退出系統(tǒng);登錄按鈕進(jìn)行登錄;單選框用來選擇這次登錄信息是否保存。</p><p>  圖

86、4-1 新浪微博客戶端登錄頁面</p><p>  如果用戶信息沒有保存下來則需要進(jìn)行設(shè)置,登錄賬號發(fā)生改變也要進(jìn)行設(shè)置。設(shè)置頁面如圖4-2 新浪微博客戶端登錄設(shè)置頁面所示。這里輸入的三個參數(shù)是用來創(chuàng)建Oauth授權(quán)對象的;不同的登錄賬號設(shè)置不同。</p><p>  圖4-2 新浪微博客戶端登登錄設(shè)置界面</p><p><b>  系統(tǒng)登錄測試<

87、/b></p><p>  登錄測試主要測試登錄過程中常見的輸入錯誤能否正常提示,賬號密碼保存功能是否實(shí)現(xiàn)等問題,詳細(xì)情況見表4-1 系統(tǒng)登錄測試結(jié)果。</p><p>  表4-1 系統(tǒng)登錄測試結(jié)果</p><p>  系統(tǒng)主界面實(shí)現(xiàn)和測試</p><p>  發(fā)表微博,查看微博以及推薦的微博顯示都在系統(tǒng)的主界面中實(shí)現(xiàn)。登錄成功之后進(jìn)

88、入系統(tǒng)主界面如圖4-3 新浪微博客戶端主界面所示。</p><p>  主界面分為三個部分,第一部分是界面頂端顯示該登錄用戶的個人信息,包括頭像,昵稱,好友數(shù),粉絲數(shù)和發(fā)表的微博數(shù)。這些顯示的內(nèi)容都是使用登錄時(shí)獲取的Oauth授權(quán)對象創(chuàng)建Client對象調(diào)用新浪微博的微博讀取接口的方法進(jìn)行加載。第二各部分是發(fā)表微博,這個部分包括一個文本輸入框,一個圖片輸入框,信息提示框和發(fā)表微博按鈕。第三個部分是個人微博、好友微

89、博以及推薦微博的顯示部分,這個部分通過選項(xiàng)卡實(shí)現(xiàn)。每個選項(xiàng)頁中設(shè)置一個WebBrowser控件用來加載詳細(xì)設(shè)計(jì)中微博信息顯示的模板,模板中需要加入的內(nèi)容則通過下載的個人微博信息、好友微博信息以及推薦的微博信息進(jìn)行填充,模板代碼如下:</p><p>  statusPattern = @”<div class=””status””></p><p>  <img src=

90、””{0}”” alt=””{1}”” class=””face”” /></p><p>  <p class=””status-content””></p><p>  <span class=””name””>{1}</span>:{2}</p>{3}</p><p>  <p class=””sta

91、tus-count””>轉(zhuǎn)發(fā) ({4}) 評論({5})</p></p><p><b>  </div></b></p><p>  圖4-3 新浪微博客戶端主界面</p><p>  系統(tǒng)主界面各功能測試</p><p>  系統(tǒng)主界面包含三個部分,個人信息展示,發(fā)表微博和微博展示。個人

92、信息展示在圖4-3 新浪微博客戶端主界面中很清晰的展示出來不需要測試,主界面各功能中主要測試發(fā)表微博。測試內(nèi)容詳見表4-2 系統(tǒng)主界面功能測試結(jié)果。</p><p>  4-2 系統(tǒng)主界面功能測試結(jié)果</p><p><b>  系統(tǒng)系能測試</b></p><p>  根據(jù)系統(tǒng)性能需求,系統(tǒng)的登錄響應(yīng)時(shí)間、微博加載時(shí)間、做出微博推薦時(shí)間都有一

93、定的要求。故以哈爾濱工業(yè)大學(xué)校園網(wǎng)各個時(shí)段為測試時(shí)間對系統(tǒng)登錄時(shí)間、個人信息加載時(shí)間、個人微博加載時(shí)間、好友微博加載時(shí)間、微博推薦時(shí)間、發(fā)表微博事件進(jìn)行測試。具體見表4-3 系統(tǒng)性能測試結(jié)果。</p><p>  表4-3 系統(tǒng)性能測試結(jié)果</p><p>  將表4-3內(nèi)容用折線圖表示,如圖4-4系統(tǒng)性能折線圖。</p><p>  圖4-4系統(tǒng)性能折線圖<

94、/p><p><b>  本章小結(jié)</b></p><p>  本章論述了系統(tǒng)如何實(shí)現(xiàn),實(shí)現(xiàn)結(jié)果展示以及進(jìn)行的一些測試,至此整個開發(fā)過程已經(jīng)完成,有了一個可以正常運(yùn)行的程序了。</p><p><b>  結(jié) 論</b></p><p>  本文詳細(xì)介紹了推薦系統(tǒng)的使用狀況以及基于內(nèi)容的微博推薦系統(tǒng)的

95、一些研究現(xiàn)狀。以設(shè)計(jì)實(shí)現(xiàn)新浪微博客戶端為目標(biāo),首先使用了新浪微博API來操作新浪微博的技術(shù)、然后對微博內(nèi)容進(jìn)行分詞和分類操作并以類別為依據(jù)做出推薦。這個推薦系統(tǒng)最主要的思想還是根據(jù)微博信息的詞向量進(jìn)行分類,從而為推薦提供依據(jù)。目前還沒有成熟的基于內(nèi)容的微博推薦系統(tǒng)出現(xiàn),這方面的研究也比較少,本文通過設(shè)計(jì)實(shí)現(xiàn)新浪微博客戶端在基于內(nèi)容的微博推薦系統(tǒng)方面做出一些嘗試。由于個人學(xué)識、技術(shù)等因素的限制最終做出的推薦并不是那么的合理,系統(tǒng)有比較大的

96、完善空間:</p><p>  建立更加合理完善分類系統(tǒng)和訓(xùn)練集</p><p>  改進(jìn)分類算法,使對微博的分類更加合理</p><p>  用戶興趣的確定不再依賴單一的個人微博信息而是綜合用戶個人微博信息和用戶轉(zhuǎn)載、評論的微博信息對用戶興趣進(jìn)行深度挖掘。</p><p>  基于內(nèi)容的微博推薦系統(tǒng)是一個大課題,由于微博本身的特點(diǎn):內(nèi)容少,

97、只有140字以內(nèi)的文字信息;微博用戶活躍度低,多看微博而少發(fā)微博;發(fā)表微博的隨意性都使基于內(nèi)容的微博推薦系統(tǒng)很難實(shí)現(xiàn)。不過相信隨著對基于內(nèi)容的微博推薦系統(tǒng)的研究、微博分類方法的日趨完善基于內(nèi)容的微博推薦系統(tǒng)還是有發(fā)展前景的?;趦?nèi)容的微博推薦系統(tǒng)能夠繼續(xù)發(fā)展最主要的原因是用戶需要它,因?yàn)楝F(xiàn)在基于好友關(guān)系和用戶個人信息的推薦系統(tǒng)推薦給用戶的微博信息中還是能出現(xiàn)很多用戶不感興趣的內(nèi)容,而一個成熟的基于內(nèi)容的微博系統(tǒng)則不容易出現(xiàn)這種問題。&l

98、t;/p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 項(xiàng)亮. 推薦系統(tǒng)實(shí)踐. 人民郵電出版社. 2012</p><p>  [2] 高舒,劉萍.Web2.0時(shí)代博客、輕博與微博的比較研究.圖書館學(xué)研究,2012 ,3:42-44</p><p>  [3] Greg Linden. Lessons o

99、n recommendation systems. (2008-05-29)[2012-10-26]</p><p>  http://blog.kiwitobes.com/?p=58</p><p>  [4] Mark Levene. An Introduction to Search Engines and Web Navigation,Second Editon, Wiley,20

100、10</p><p>  [5] Netflix, Consumer Press Kit, [2012-10-26] http://cdn0.nflximg.com/us/pdf/ Consumer_Press_Kit.pdf</p><p>  [6] Pandora,Music Recommendation and Discovery,(2011-05-26)[2012-10-27]

101、http://www.slideshare.net/plamere/music-recommendation-and-discovery</p><p>  [7] 曾琦,基于微博的圖書館資源推薦系統(tǒng)設(shè)計(jì),圖書館學(xué)研究. 2012. 14</p><p>  [8] 李金波.國外圖書館微博客建設(shè)及其啟示.圖書與情報(bào),2011,1:70-73</p><p>  [9

102、] 王晟,王子琪,張銘,個性化微博推薦算法. 北京:北京大學(xué)信息科學(xué)技術(shù)學(xué)院,2012</p><p>  [10] 新浪官方,新浪微博API,(2011-08-09)[2012-11-07] http://open.weibo.-com/wiki/API%E6%96%87%E6%A1%A3_V2#.E5.BE.AE.E5.8D.9A</p><p>  [11] John S.Brees

103、e, David Heckerman, Cark Kadie. Empirical Analysis of Pred-ictve Algorithms for Collaborative Filtering. Morgan Kaufman Publishers, 1998</p><p>  [12] Linden Creg, Smith Brent, York Jeremy. Amazon.com Recomm

104、endations: Item-to-Item Collaborative Filtering. IEEE Internet Computing 2003</p><p><b>  致 謝</b></p><p>  衷心感謝導(dǎo)師孫承杰老師對本人的精心指導(dǎo)。在完成畢業(yè)設(shè)計(jì)過程中沒有孫老師指引和督促我很難完成畢業(yè)設(shè)計(jì);在我開題多次沒通過而缺乏信心時(shí)是孫老師的悉心教導(dǎo)

溫馨提示

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

評論

0/150

提交評論