基于內(nèi)容的微博推薦系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(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)介

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

2、推薦而基于微博信息本身——微博內(nèi)容的推薦卻很少見(jiàn)到。本文在win7操作系統(tǒng)下使用C#作為開(kāi)發(fā)語(yǔ)言、使用Microsoft Visual Studio 2010作為開(kāi)發(fā)工具,通過(guò)開(kāi)發(fā)一款以基于內(nèi)容的微博推薦為特色的新浪微博客戶端來(lái)研究基于內(nèi)容的微博推薦系統(tǒng)能否在微博平臺(tái)上使用。系統(tǒng)通過(guò)對(duì)微博信息的分詞、分類等操作獲取每條微博信息的類別信息并以此為依據(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 開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具9</p&

9、gt;<p>  2.3.1 開(kāi)發(fā)語(yǔ)言9</p><p>  2.3.2 開(kāi)發(fā)工具9</p><p>  2.3.3 開(kāi)發(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ù)庫(kù)設(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)和測(cè)試25</p><p>  4.1 系統(tǒng)登錄實(shí)現(xiàn)和測(cè)試25</p><p>  4.1.1 系統(tǒng)登錄實(shí)現(xiàn)25</p><p>  4.1.2 系統(tǒng)登錄測(cè)試26</p><

12、p>  4.2 系統(tǒng)主界面實(shí)現(xiàn)和測(cè)試26</p><p>  4.2.1 系統(tǒng)主界面各功能測(cè)試28</p><p>  4.3 系統(tǒng)系能測(cè)試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>  本課題來(lái)源于國(guó)家自然科學(xué)基金青年基金項(xiàng)目“基于社會(huì)化網(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)系用戶和物品,解決信息過(guò)載問(wèn)題。</p><p>  目前推薦系統(tǒng)已經(jīng)廣泛應(yīng)用于電子商務(wù)、電影和視頻、音樂(lè)、社交網(wǎng)絡(luò)、

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

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

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

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

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

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

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

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

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

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

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

26、;  本章主要論述基于內(nèi)容的微博推薦系統(tǒng)通過(guò)開(kāi)發(fā)一款新浪微博客戶端來(lái)實(shí)現(xiàn)并對(duì)這款客戶端進(jìn)行需求分析和總體設(shè)計(jì)。</p><p><b>  需求分析</b></p><p><b>  功能需求</b></p><p>  本小節(jié)對(duì)系統(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)登錄需要能夠使用新浪微博賬號(hào)進(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>  這個(gè)部分是本系統(tǒng)的主要功能,根據(jù)用戶以往發(fā)表的微博信息的內(nèi)容為用戶做出推薦,推薦一些用戶感興趣的公共微博信息給用戶。通過(guò)四步完成推薦:微博下載、確定用戶興趣、用戶對(duì)

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

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

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

32、別中所占的比重對(duì)用戶興趣做出歸納,之后從待推薦微博中推薦出最合理的一組微博推薦給用戶。</p><p><b>  系統(tǒng)用例</b></p><p>  通過(guò)需求分析,得到如圖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)該能夠涵蓋用戶大部分興趣,即推薦的覆蓋率問(wèn)題;對(duì)于一個(gè)新用戶或者沒(méi)有發(fā)表過(guò)微博的用戶應(yīng)該也能做出一個(gè)合理的微博推薦,即系統(tǒng)冷啟動(dòng)問(wèn)題;系統(tǒng)登錄響應(yīng)時(shí)間、微博加載時(shí)間和微博推薦時(shí)間不能太長(zhǎng),要在用戶能夠忍受的范圍之內(nèi),對(duì)于推薦的結(jié)果系統(tǒng)需要提供一種驗(yàn)證機(jī)制。</p><p><b>  總

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

35、最后從用戶感興趣的待推薦微博信息中選擇一個(gè)推薦隊(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)的交互層,推薦用戶賬號(hào)、最終推薦微博數(shù)量輸入以及最終推薦結(jié)果顯示都是在這個(gè)界面完成;邏輯層由微博下載、分詞、分類、推薦四個(gè)模塊組成,主要使

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

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

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

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

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

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

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

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

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

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

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

47、 本章小結(jié)</b></p><p>  本章論述了新浪微博客戶端的需求分析和總體設(shè)計(jì)。需求分析部分主要論述了系統(tǒng)的主要功能需求和性能需求,為系統(tǒng)的開(kāi)發(fā)明確了要求??傮w設(shè)計(jì)部分主要根據(jù)需求對(duì)系統(tǒng)進(jìn)行整體上的設(shè)計(jì),對(duì)系統(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ì)分模塊對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),包括各個(gè)模塊的具體功能實(shí)現(xiàn)設(shè)計(jì)、模塊流程、模塊使用技術(shù)以及實(shí)現(xiàn)各模塊的類設(shè)計(jì)。</p><p><b>  用戶登錄詳細(xì)設(shè)計(jì)</b></p><p>  新浪微博開(kāi)發(fā)平臺(tái)為第三方微博開(kāi)發(fā)提供平臺(tái),在開(kāi)發(fā)階段使用新浪微博API需要進(jìn)行Oauth認(rèn)證,如果要發(fā)布使

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

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

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

52、置不同或者登錄賬號(hào)密碼有錯(cuò)則提示響應(yīng)錯(cuò)誤,返回登錄界面;如果登錄成功則進(jìn)入主界面并且獲取Access Token,如果選擇了保存賬號(hào)密碼則會(huì)將本次登錄的賬號(hào)密碼以及設(shè)置信息保存下來(lái)。</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 ,與之相對(duì)應(yīng)的新浪微博賬號(hào)密碼也在登錄中設(shè)置為默認(rèn)。</p><p>  登錄過(guò)程中的類圖如圖3-1 登錄類圖所示。</p><p><b>  圖3-1 登陸類圖</b></p><p>  登錄過(guò)程時(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ù)器中。首先需要一個(gè)輸入界面能夠接收用戶發(fā)表的文字和圖片信息

55、,在用戶的輸入過(guò)程中還需要在文字大于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ā)表微博功能所屬頁(yè)面、實(shí)現(xiàn)這個(gè)功能所需數(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>  微博展示包括兩個(gè)方面的內(nèi)容:查看用戶發(fā)表的微博信息和查看用戶關(guān)注的好友(以下簡(jiǎn)稱好友)的微博信息。查看微博信息的功能是將用戶微博信息和好友微博信息通過(guò)登錄時(shí)認(rèn)證獲取的授權(quán)Oauth

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

59、微博信息的主要功能是顯示用戶好友最近發(fā)表的20條微博信息。查看好友微博信息詳細(xì)用例設(shè)計(jì)如表3-5 查看好友微博信息用例規(guī)約所示。該表詳細(xì)描述了展示好友微博的具體流程以可能出現(xiàn)的異常事件流并對(duì)異常事件做出相應(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),從表面上來(lái)看與個(gè)人微博顯示、好友微博顯示沒(méi)有什么區(qū)別,但是顯示的內(nèi)容取得的方式與這兩者有天壤之別;個(gè)人微博信息和好友微博信息只要從服務(wù)器中下載Js

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

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

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

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

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

66、-9 Weibo類詳細(xì)介紹</p><p>  PersonWeibo類是個(gè)人微博信息的實(shí)體類。它繼承了Weibo類,包含了系統(tǒng)所需微博信息的所有內(nèi)容,還包含了個(gè)人基本信息。定義了下載下來(lá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ù)庫(kù)連接和操作類,其具體功能是根據(jù)系統(tǒng)需要對(duì)WeiboRecommend數(shù)據(jù)庫(kù)中

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ì)算幾個(gè)功能,每個(gè)功能用一個(gè)方法實(shí)現(xiàn),具體信息見(jiàn)表2-13 RecommendWeibo類詳細(xì)介紹。<

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

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

71、ibo方法將對(duì)象存入數(shù)據(jù)庫(kù)中。</p><p><b>  分詞詳細(xì)設(shè)計(jì)</b></p><p>  分詞由RecommendWeibo類的ICTCLAS方法實(shí)現(xiàn),這個(gè)部分主要使用中科院的ICTCLAS分詞工具將傳入的微博信息內(nèi)容分詞并產(chǎn)生詞向量,具體過(guò)程如下:</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é)果中的每個(gè)詞的詞性,將形容詞、副詞、介詞、連詞、感嘆詞等詞去除,留下來(lái)的形成這條微博信息的詞向

73、量。</p><p>  微博信息詞向量使用結(jié)構(gòu)體WordVector存儲(chǔ),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>  建立一個(gè)包含所有類別的訓(xùn)練集</p><p> ?。?)對(duì)訓(xùn)練集中的內(nèi)容進(jìn)行分詞后得到每個(gè)類別的特征詞以及該詞在本類別的權(quán)值</p><p> ?。?)對(duì)每條微博信息進(jìn)行分詞獲取詞向量</p><p> ?。?)微博詞向量與類別詞向量進(jìn)行相似度計(jì)算,依次計(jì)算本條微博在每個(gè)類別的權(quán)重</p>&l

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

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

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

78、<p>  設(shè)類別的詞向量為T(mén)[n],n長(zhǎng)度為詞庫(kù)中詞的個(gè)數(shù),T[i]為在詞庫(kù)中編號(hào)為i的詞在這個(gè)類別中的個(gè)數(shù);微博詞向量為P(w1,w2,w3..),wi詞向量中的詞在詞庫(kù)中的編號(hào);相似度為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)過(guò)程中則是取出每一條微博信息使用ICTCLAS方法對(duì)其進(jìn)行分詞獲取本條信息的WordVector類型結(jié)構(gòu)體,之后使用Classify方法對(duì)詞向量進(jìn)行分類,獲得本條微博信息的類型,然后將用戶興趣數(shù)組的對(duì)應(yīng)類的值加一,以此遍歷每一條用戶微博信息,得到用戶興趣數(shù)組。具體流程如圖3-4確定用戶

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

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

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

83、如圖3-5所示。</p><p><b>  小結(jié)</b></p><p>  本章詳細(xì)設(shè)計(jì)了系統(tǒng)的各個(gè)功能模塊的實(shí)現(xiàn),詳細(xì)分析和設(shè)計(jì)了各個(gè)功能實(shí)現(xiàn)的流程,設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫(kù)表,設(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)和測(cè)試</p><p>  本章論述系統(tǒng)的實(shí)現(xiàn),通過(guò)前幾章的需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)系統(tǒng)的設(shè)計(jì)已經(jīng)完成,接下來(lái)就是將設(shè)計(jì)轉(zhuǎn)變?yōu)榭蛇\(yùn)行的程序,實(shí)現(xiàn)新浪微博客戶端。</p><p><b>  系統(tǒng)登錄實(shí)現(xiàn)和測(cè)試</b></p><p><b>  系統(tǒng)登錄實(shí)現(xiàn)</b>

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

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

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

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

89、博以及推薦微博的顯示部分,這個(gè)部分通過(guò)選項(xiàng)卡實(shí)現(xiàn)。每個(gè)選項(xiàng)頁(yè)中設(shè)置一個(gè)WebBrowser控件用來(lái)加載詳細(xì)設(shè)計(jì)中微博信息顯示的模板,模板中需要加入的內(nèi)容則通過(guò)下載的個(gè)人微博信息、好友微博信息以及推薦的微博信息進(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}) 評(píng)論({5})</p></p><p><b>  </div></b></p><p>  圖4-3 新浪微博客戶端主界面</p><p>  系統(tǒng)主界面各功能測(cè)試</p><p>  系統(tǒng)主界面包含三個(gè)部分,個(gè)人信息展示,發(fā)表微博和微博展示。個(gè)人

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

93、定的要求。故以哈爾濱工業(yè)大學(xué)校園網(wǎng)各個(gè)時(shí)段為測(cè)試時(shí)間對(duì)系統(tǒng)登錄時(shí)間、個(gè)人信息加載時(shí)間、個(gè)人微博加載時(shí)間、好友微博加載時(shí)間、微博推薦時(shí)間、發(fā)表微博事件進(jìn)行測(cè)試。具體見(jiàn)表4-3 系統(tǒng)性能測(cè)試結(jié)果。</p><p>  表4-3 系統(tǒng)性能測(cè)試結(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)行的一些測(cè)試,至此整個(gè)開(kāi)發(fā)過(guò)程已經(jīng)完成,有了一個(gè)可以正常運(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來(lái)操作新浪微博的技術(shù)、然后對(duì)微博內(nèi)容進(jìn)行分詞和分類操作并以類別為依據(jù)做出推薦。這個(gè)推薦系統(tǒng)最主要的思想還是根據(jù)微博信息的詞向量進(jìn)行分類,從而為推薦提供依據(jù)。目前還沒(méi)有成熟的基于內(nèi)容的微博推薦系統(tǒng)出現(xiàn),這方面的研究也比較少,本文通過(guò)設(shè)計(jì)實(shí)現(xiàn)新浪微博客戶端在基于內(nèi)容的微博推薦系統(tǒng)方面做出一些嘗試。由于個(gè)人學(xué)識(shí)、技術(shù)等因素的限制最終做出的推薦并不是那么的合理,系統(tǒng)有比較大的

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

97、只有140字以內(nèi)的文字信息;微博用戶活躍度低,多看微博而少發(fā)微博;發(fā)表微博的隨意性都使基于內(nèi)容的微博推薦系統(tǒng)很難實(shí)現(xiàn)。不過(guò)相信隨著對(duì)基于內(nèi)容的微博推薦系統(tǒng)的研究、微博分類方法的日趨完善基于內(nèi)容的微博推薦系統(tǒng)還是有發(fā)展前景的?;趦?nèi)容的微博推薦系統(tǒng)能夠繼續(xù)發(fā)展最主要的原因是用戶需要它,因?yàn)楝F(xiàn)在基于好友關(guān)系和用戶個(gè)人信息的推薦系統(tǒng)推薦給用戶的微博信息中還是能出現(xiàn)很多用戶不感興趣的內(nèi)容,而一個(gè)成熟的基于內(nèi)容的微博系統(tǒng)則不容易出現(xiàn)這種問(wè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í)代博客、輕博與微博的比較研究.圖書(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] 曾琦,基于微博的圖書(shū)館資源推薦系統(tǒng)設(shè)計(jì),圖書(shū)館學(xué)研究. 2012. 14</p><p>  [8] 李金波.國(guó)外圖書(shū)館微博客建設(shè)及其啟示.圖書(shū)與情報(bào),2011,1:70-73</p><p>  [9

102、] 王晟,王子琪,張銘,個(gè)性化微博推薦算法. 北京:北京大學(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)師孫承杰老師對(duì)本人的精心指導(dǎo)。在完成畢業(yè)設(shè)計(jì)過(guò)程中沒(méi)有孫老師指引和督促我很難完成畢業(yè)設(shè)計(jì);在我開(kāi)題多次沒(méi)通過(guò)而缺乏信心時(shí)是孫老師的悉心教導(dǎo)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論