論文-RSS電子報紙訂閱系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
論文-RSS電子報紙訂閱系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
論文-RSS電子報紙訂閱系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
論文-RSS電子報紙訂閱系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
論文-RSS電子報紙訂閱系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

北京理工大學(xué)本科生畢業(yè)設(shè)計(論文)PAGE40摘要RSS(普遍被解釋為ReallySimpleSyndication)是一種消息來源格式規(guī)范,被廣泛應(yīng)用于各信息更新速度比較快的服務(wù)站點,用以發(fā)布網(wǎng)站中經(jīng)常更新的內(nèi)容。網(wǎng)絡(luò)用戶可以很方便的訂閱各種網(wǎng)站的RSS內(nèi)容,從而可以及時的獲得網(wǎng)站的更新信息。但是,在現(xiàn)存的RSS閱讀器中普通存在訂閱信息冗余的問題。針對用戶在訂閱RSS頻道過程中所遇到的信息冗余問題,本文將提出一個基于用戶興趣模型的個性化信息匹配方案。通過該方案,RSS訂閱系統(tǒng)可以根據(jù)用戶的興趣模型自動向用戶推送其可能感興趣的信息,提高用戶的閱讀效率。利用本文所提出的方案,作者建立了一個個性RSS聚合閱讀網(wǎng)站模型,并介紹了該網(wǎng)站的詳細(xì)架構(gòu)和實現(xiàn)方法。關(guān)鍵詞:RSS、興趣模型、關(guān)鍵詞提取、相似度計算

AbstractRSS(mostcommonlytranslatedas"ReallySimpleSyndication")isafamilyofpublishmassageformats,bewidelyusedininformationservicesthatupdatesfaster,topublishfrequentlyupdatedworks.

InternetuserscaneasilysubscribetovariouswebsitesoftheRSScontentandtimelyaccessestothesitegetthenewestinformation.However,almostalltheRSSReadertoolscannotallowuserstoefficientlyaccesstheinformationtheyaregenuinelyinterested.

FortheproblemofinformationredundancygeneratedwhileusersinthesubscriptionRSSchannels,thisarticlewillproposeamodelbasedonuserinterestinpersonalizedinformationmatchingprogramtoresolveit.Throughthisprogram,RSSsubscriptionscanbebasedonuserinterestmodelautomaticallytotheusermaybeofinteresttopushtheinformationtoenhancetheuser'sreadingefficiency.Finally,apersonalizedRSSaggregationreadingwebsitemodelbasedontheproposedmethodinthisarticlewillbegivenandintroduceforthearchitectureandimplementationdetails.KeyWords:RSS,Interestmodel,KeywordsExtraction,Similaritycalculation

目錄摘要 IAbstract II目錄 III第1章概述 11.1背景 11.2RSS相關(guān)簡介 11.2.1RSS的介紹 11.2.2RSS的應(yīng)用 31.3本論文探討的內(nèi)容 31.4本論文的組織結(jié)構(gòu) 4第2章對RSS訂閱的處理機(jī)制 52.1RSS的格式規(guī)范 52.2內(nèi)容的解析 62.3信息的處理和凈化 72.4RSS訂閱更新的機(jī)制 82.4.1設(shè)置不同更新機(jī)制的原因 82.4.2采用的更新預(yù)測方法 92.5本章小結(jié) 11第3章用戶興趣建模 123.1文本向量化處理 123.1.1分詞 123.1.2ICTCLAS分詞系統(tǒng) 133.1.3關(guān)鍵詞提取 153.2系統(tǒng)詞典的設(shè)計 163.2.1詞典的作用 163.2.2詞典的設(shè)計 173.3相似度計算 183.3.1算法介紹 183.3.2文檔的相似匹配計算 193.4用戶興趣模型的完善 203.5本章小結(jié) 23第4章系統(tǒng)的設(shè)計和實現(xiàn) 244.1系統(tǒng)的功能需求 244.2系統(tǒng)的整體設(shè)計 254.2.1系統(tǒng)框架結(jié)構(gòu)設(shè)計 254.2.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計 264.3具體模塊的設(shè)計 274.3.1信息抓取模塊的設(shè)計 274.3.2信息處理模塊的設(shè)計 294.3.3相似度計算模塊的設(shè)計 324.3.4興趣模型維護(hù)模塊的設(shè)計 334.4數(shù)據(jù)層的設(shè)計 344.5界面設(shè)計 374.5.1設(shè)計原則 374.5.2設(shè)計實例 384.6本章小結(jié) 39總結(jié)和展望 40致謝 41參考文獻(xiàn) 42第1章概述1.1背景基于互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)名詞也是日新月異,最近被炒得最熱的莫過于Web2.0。RSS,作為Web2.0的重要組成部分,我們稱之為簡單信息聚合技術(shù),是目前最為廣泛的XML應(yīng)用,用于不同網(wǎng)站信息的共享和發(fā)布。如今網(wǎng)絡(luò)已經(jīng)成為人們獲得外界信息的主要來源,RSS作為一種發(fā)布網(wǎng)站及時信息的規(guī)范格式,被各大網(wǎng)絡(luò)公司所采用。RSS能夠用于共享各種各樣的信息,包括新聞、簡訊、網(wǎng)站更新、博客、及時資訊、電子商務(wù)、數(shù)字圖書館等。網(wǎng)絡(luò)用戶可以使用RSS閱讀器,根據(jù)自己的喜好訂閱不同站點的RSS頻道,當(dāng)閱讀器檢測到用戶訂閱的信息有更新時,會自動下載更新的內(nèi)容呈現(xiàn)給用戶。通過這種閱讀器,任何網(wǎng)絡(luò)用戶都可以將不同網(wǎng)站的新聞訂閱到本地,而不必再被動的在網(wǎng)絡(luò)中搜集希望了解的信息,各種RSS服務(wù)商會主動的將用戶感興趣的內(nèi)容推送給訂閱者。對于經(jīng)常使用常規(guī)RSS閱讀器的用戶不難發(fā)現(xiàn),這些閱讀器確實給用戶帶來了不小的便利,但是隨著時間的延長,用戶會發(fā)現(xiàn)出現(xiàn)了一個新問題,那就是用戶訂閱的RSS頻道越來越多,加之各種RSS提供商的高速信息更新率,呈現(xiàn)在用戶面前的數(shù)據(jù)已經(jīng)臃腫不堪,或許每天更新的信息就有上百甚至幾百條。如果以這個角度來看,RSS閱讀器并沒有給用戶帶來多少便利,RSS提供商的這種信息推送行為,在一定程度上也并不能稱之為很好的個性化服務(wù)。1.2RSS相關(guān)簡介1.2.1RSS的介紹RSS是一種消息來源格式規(guī)范[1],用以發(fā)布經(jīng)常更新資料并且以一些規(guī)范格式發(fā)布信息的網(wǎng)站,例如博客、新聞標(biāo)題、音訊或視訊的網(wǎng)摘。RSS文件(或稱為摘要、網(wǎng)絡(luò)摘要、或頻道)包含了全文或是摘要,再加上發(fā)行的資料和授權(quán)的元數(shù)據(jù)。網(wǎng)絡(luò)摘要使得信息發(fā)布者可以按照規(guī)范自動地發(fā)布他們的資料。同時也使讀者能更夠定期更新他們喜歡的網(wǎng)站或是聚合不同網(wǎng)站的網(wǎng)摘。RSS摘要可以借由RSS閱讀器、feedreader或是aggregator等網(wǎng)頁或以桌面為架構(gòu)的軟件甚至是基于移動設(shè)備的閱讀器去閱讀。標(biāo)準(zhǔn)的XML文檔可以允許資訊在一次發(fā)布后通過不同的應(yīng)用程序閱覽。使用者通過在閱讀器中輸入網(wǎng)摘的URI(通常不規(guī)范的稱為URL,盡管在技術(shù)層面上這兩個術(shù)語并不同義)或者點擊在網(wǎng)頁中的那種RSS訂閱圖標(biāo)來訂閱該摘要。RSS閱讀器定期檢查用戶的訂閱是否有更新,下載任何訂閱的更新,然后為用戶提供使用界面去監(jiān)視或閱讀這些摘要。RSS文檔采用XML進(jìn)行格式化。盡管RSS規(guī)范從1999年3月開始,已經(jīng)經(jīng)過了很大的發(fā)展,但是RSS的圖標(biāo)(和)被廣泛的應(yīng)用卻是在2005至2006年之間。RSS的第一個版本為RDFSiteSummary,在1999年3月由美國網(wǎng)景公司的Guha為了用在My.Netscape.Com入口網(wǎng)站而開發(fā)。這個版本開始以RSS0.9為名。在1999年七月,美國網(wǎng)景公司的DanLibby發(fā)明了新版本RSS0.91,此版本簡化了形式,撤去RDF元素。Libby并且將其重新命名為RSS,全名"RichSiteSummary",并且在"futuresdocument"論述了未來的發(fā)展形式。在2002年9月Winer發(fā)布了RSS2.0(ReallySimpleSyndication)這一新規(guī)范,在該版本中刪除了RSS0.94草圖中的一些屬性類型,同時添加了對名字空間的支持。因為Winer和RSS-DEV工作組都不是網(wǎng)景公司所支持的,所以他們都不能使用官方聲明的RSS這個名字和規(guī)范。這更加促進(jìn)了商業(yè)共同體關(guān)于哪個試題才是RSS最合適的公布者的爭論。其中備受爭議的就是一種從2003年6月開始便出現(xiàn)的一種新的RSS商業(yè)規(guī)范——Atom。Atom的產(chǎn)生在一定程度上是由于人們在渴望得到一種清晰的免費(fèi)的關(guān)于RSS規(guī)范的要求,現(xiàn)在Atom的格式規(guī)范已經(jīng)被IETF標(biāo)準(zhǔn)所采用,其規(guī)范號為RFC4287。在2005年的12月,微軟的InternetExplorer小組和Outlook小組在他們的博客上聲明采用了在MozillaFirfox瀏覽器上首先使用的RSS網(wǎng)絡(luò)文摘圖標(biāo)。幾個月之后,OperaSoftware也做了和微軟一樣的決定。這樣就有效的使得那個橘紅色帶白色聲波條文的方塊圖標(biāo)成為了RSS和Atom文摘的代表符號,替代了以前使用的種類繁多的網(wǎng)絡(luò)文摘圖標(biāo)。在2006年的1月RogersCadenhead為了繼續(xù)發(fā)展RSS規(guī)范和消除規(guī)范中的歧義,在沒有DaveWiner的參與下重新開通了RSS咨詢平臺。在2007年6月,該咨詢平臺改進(jìn)了他們的規(guī)格說明書的版本以證明用命名空間的屬性可以擴(kuò)展RSS的核心元素,與此同時微軟已經(jīng)在將該方法應(yīng)用到了InternetExplorer7之中。這些大公司的行為留下了很多爭議,因為網(wǎng)絡(luò)文摘的發(fā)行者不能確定這些新的改進(jìn)在未來是可以得到商業(yè)規(guī)范組織的允許還是禁止。[1]1.2.2RSS的應(yīng)用(1)、新聞或者訂閱提供商可以利用RSS來發(fā)布網(wǎng)站內(nèi)容。一個網(wǎng)站可以利用RSS元數(shù)據(jù)規(guī)范描述網(wǎng)站內(nèi)容,創(chuàng)建并在網(wǎng)站中發(fā)布RSSFeed從而發(fā)布網(wǎng)站內(nèi)容。(2)、內(nèi)容整合服務(wù)商可以利用RSS來聚合多個網(wǎng)站的內(nèi)容。聚合是一種自動收割、解析和整合多個網(wǎng)站中發(fā)布的RSSFeed的過程。內(nèi)容整合者可以通過RSS搜索引擎和RSS桌面聚合工具來收割多個網(wǎng)站上的RSSFeed并根據(jù)RSS元數(shù)據(jù)規(guī)范來解析Feed,從而整合相應(yīng)的網(wǎng)站內(nèi)容。(3)、門戶平臺可以利用RSS來直接嵌入某個網(wǎng)站上的內(nèi)容。嵌入是指綁定他人的RSSFeed、通過XLST等技術(shù)直接將其轉(zhuǎn)換成HTML格式的信息嵌入本地網(wǎng)站的頁面,這是一種實時的、實用的內(nèi)容整合方式。許多門戶平臺所提供的RSSportlet(導(dǎo)入組件)能夠直接將來自多個網(wǎng)站的RSSFeed嵌入到本地頁面,并且轉(zhuǎn)換成HTML的格式顯示。(4)、個人用戶可以利用RSS來直接發(fā)現(xiàn)感愛好的網(wǎng)站內(nèi)容。用戶在網(wǎng)站中點擊某個頁面中的XML或RSS標(biāo)志可以直接瀏覽RSSFeed,從而發(fā)現(xiàn)RSSFeed中感愛好的網(wǎng)站內(nèi)容。此外,假如事先已經(jīng)知道該RSSFeed的地址時,也可以直接在瀏覽器地址欄輸入RSSFeed的路徑后按回車,也能直接瀏覽RSSFeed從而發(fā)現(xiàn)網(wǎng)站內(nèi)容。[4]1.3本論文探討的內(nèi)容對于普通用戶來說,長時間使用傳統(tǒng)的RSS訂閱器很容易產(chǎn)生信息冗余的問題。針對普通RSS閱讀器的這一個缺陷,有必要在RSS提供商和普通用戶之間建立一個中間服務(wù)站。該中間站的作用就是分析用戶的行為,建立并維護(hù)符合用戶自己的興趣模型,然后以該模型來匹配所有用戶訂閱的信息并向用戶推薦其可能感興趣的信息,從而減少信息冗余給用戶帶來的麻煩。在本文中,我們將分析RSS的規(guī)范格式,并針對不同的數(shù)據(jù)源格式來對數(shù)據(jù)進(jìn)行格式化處理,對于不同類型的訂閱建立不同的更新機(jī)制以提高系統(tǒng)效率;討論對于每一篇文章提取關(guān)鍵詞,并將文章向量化的算法;同時提出一種建立和維護(hù)用戶的興趣模型的方法,以該模型來和每篇文章的向量進(jìn)行匹配和進(jìn)行相似度的計算,以便于向用戶推薦閱讀。最后將詳細(xì)介紹基于本文理論所建立的一個RSS訂閱網(wǎng)站。1.4本論文的組織結(jié)構(gòu)第一章介紹了本論文所研究的背景,RSS的特殊發(fā)展歷史,RSS的主要應(yīng)用和前景以及本文的組織結(jié)構(gòu)。第二章討論了不同版本的規(guī)范格式,在本系統(tǒng)中對于RSS內(nèi)容的解析和格式化方法,雜質(zhì)內(nèi)容的過濾,對于所有用戶訂閱頻道的更新策略。第三章為本論文核心章節(jié),重點討論了分詞,關(guān)鍵詞提取,文檔向量化的處理,系統(tǒng)詞典的功能和維護(hù),相似度的計算。第四章為該論文理論方法的應(yīng)用章節(jié),介紹了基于本文方法建立的RSS閱讀網(wǎng)站,包括其需求分析,整體設(shè)計,各模塊的詳細(xì)設(shè)計以及系統(tǒng)數(shù)據(jù)層的設(shè)計和界面設(shè)計。總結(jié)和展望對本論文做了總結(jié)并且闡述了作者對于未來RSS個性訂閱功能的展望。最后為對本論文研究有重要指導(dǎo)和幫助的人的致謝以及參考文獻(xiàn)列表。

第2章對RSS訂閱的處理機(jī)制2.1RSS的格式規(guī)范正如第一章所述,RSS有多個不同的版本,但是主要有兩個分支(RDF和RSS2.*)。RDF和RSS2.*的分支包含如下基本版本[1]:RSS0.90,起源于網(wǎng)景公司開發(fā)的RSS規(guī)范,這里的RSS為RDFSiteSummary的簡稱,是基于一種早期的工作草案RDF規(guī)范而開發(fā),但是和這個早期版本并不兼容。RSS1.0,由RSS-DEV工作組開發(fā)的開源規(guī)范,同樣是代表RDFSiteSummary。RSS1.0的規(guī)范類似于RSS0.90,但是并非完全相同,因為1.0是基于RDF1.0Recommendation最終版而開發(fā)。RSS1.1同樣是一個開源的規(guī)范,它的誕生是刻意的要替代RSS1.0版本,但是該版本只是一個獨立的草案,并不受到RSS-Dev工作組和其他任何組織的支持和認(rèn)可。RSS2.*分支(最初歸屬于UserLand,現(xiàn)在歸屬于哈佛大學(xué))包含以下版本:RSS0.91是一個精簡的RSS形式,由美國網(wǎng)景公司所發(fā)行,同時也是原創(chuàng)的排行第一的版本編號,由DaveWiner從Userland軟件所制作。網(wǎng)景公司的版本現(xiàn)在被稱為RichSiteSummary;這個是不久前的RDF格式,但是相對而言比較不方便使用。RSS0.92透過0.94被擴(kuò)大為RSS0.91版本,更容易與其他相容以及和Winer的RSS0.91版本,但仍然和RSS0.90不相容。RSS2.0.1是2.0的內(nèi)部版本編號。RSS2.0.1雖被聲稱凍結(jié),但是仍是一個網(wǎng)頁然可以快速下載,之后再聲稱沒有改變版本編號。RSS現(xiàn)今代表著簡易供搞系統(tǒng)。主要的改變是在這個版本里使用XML命名空間。對大部分版本而言,在每個分支中,新的版本和較早的版本都可以兼容,(除了在0.90中的無兼容性的RDF語法),以及大部分的版本嚴(yán)格上來說包括以延伸機(jī)構(gòu)使用XMLNamespaces來證明,另一方面正好(在2.*分支)或透過RDF(在1.*分支),大部分的企業(yè)聯(lián)合組織化軟件都有支持這兩種分支。表2-1為針對各種RSS版本規(guī)范的部分元素的詳細(xì)標(biāo)注[2][3]。表2-1常用RSS版本格式規(guī)范元素版本號0.901.00.910.922.0關(guān)鍵RSS元素Channel<channel>RRRRR<title>RRRRR<description>RRRRR<link>RRRRR<copyright>NNOOO<lastBuildDate>NNOOO<pubDate>NNOOO<ttl>NNNNO<category>NNNOOdomainNNNOOItem<item>RRRRR<title>RRROR<description>NOOOR<link>RRROO<author>NNNNO<comments>NNNNO<pubDate>NNNNO<category>NNNOO<guid>NNNOO備注:R-必須元素O-可選元素N-不支持元素2.2內(nèi)容的解析至2007年一月,據(jù)網(wǎng)站的統(tǒng)計,當(dāng)時使用的RSS版本主要有0.91,1.0和2.0三個版本。在世界范圍中RSS的使用情況看1.0占到17%,2.0占到67%。到2008年的八月,索引了546,069個網(wǎng)絡(luò)摘要,其中86,496個為Atom格式,438,102個為RSS格式。至2009-5-2日共索引了567.233個網(wǎng)絡(luò)摘要,其中438,102個為RSS格式,86,496個為Atom格式在實際應(yīng)用中有的RSS服務(wù)商并不是完全的按照RSS規(guī)范發(fā)布信息,有可能自己定義部分格式。再根據(jù)以上數(shù)據(jù)并結(jié)合本論文所研究的主要方向,我們有選擇的屏蔽掉了一些非關(guān)鍵因素以簡化設(shè)計方案。在本系統(tǒng)中,我們解析的RSS頻道主要模式按照圖2-1的格式進(jìn)行轉(zhuǎn)換:這樣做可以消除各種版本之間的差異,方便了后期的數(shù)據(jù)處理。2.3信息的處理和凈化隨著時間的推延,有些數(shù)據(jù)源并不能永久存在,這樣就要求我們的信息抓取系統(tǒng)能夠識別這些情況,對于作廢的數(shù)據(jù)源予以處理。在服務(wù)器中增添錯誤頻道計數(shù)功能,這樣在每次遇到更新錯誤時,自動計數(shù)。對于長久沒有更新的數(shù)據(jù)源,提示給用戶,以提高系統(tǒng)效率。服務(wù)商為了更好的顯示其提供的內(nèi)容,往往會在發(fā)布信息中添加HTML標(biāo)記信息或者圖片鏈接等附屬信息。這些信息對于我們的計算是沒有意義的,甚至屬于有害信息,這樣就需要將其屏蔽。所以在抓取信息時,保留一份原數(shù)據(jù)的同時,將會對抓取內(nèi)容進(jìn)行處理對于所有HTML標(biāo)簽中的數(shù)據(jù)進(jìn)行刪除,對連續(xù)的多余空格進(jìn)行刪除,對網(wǎng)頁標(biāo)記元素進(jìn)行刪除或者替換。這樣處理后輸出的數(shù)據(jù)既不影響原有含義,又可以方便下一步的關(guān)鍵詞提取、分詞相似度計算等操作。2.4RSS訂閱更新的機(jī)制2.4.1設(shè)置不同更新機(jī)制的原因?qū)τ诓煌腞SS數(shù)據(jù)源,它們的更新時間和更新頻率并不相同,甚至相差很大。例如門戶網(wǎng)站或者大型新聞網(wǎng)站的RSS源在新聞發(fā)布高峰每小時都可以更新十幾條信息,而個人博客數(shù)據(jù)源甚至一周之內(nèi)只會更新一兩篇文章。如果我們的中間站以相同的更新間隔去訪問和下載數(shù)據(jù)源,那樣不僅浪費(fèi)不必要的網(wǎng)絡(luò)資源也會大量消耗系統(tǒng)的計算資源。站系統(tǒng)為了得到最新的內(nèi)容就要不斷的抓取新信息,由于上面提到的更新時間不確定性,所以有必要針對不同的數(shù)據(jù)源設(shè)計出不同的更新策略。圖2-1RDF和RSS轉(zhuǎn)換為系統(tǒng)格式2.4.2時間序列預(yù)測法[6]是一種定量分析方法,它是在時間序列變量分析的基礎(chǔ)上,運(yùn)用一定的數(shù)學(xué)方法建立預(yù)測模型,使時間趨勢向外延伸,從而預(yù)測未來數(shù)據(jù)更新的發(fā)展變化趨勢,確定變量預(yù)測值。時間序列預(yù)測法也叫歷史延伸法或外推法。時間序列預(yù)測法的基本特點是:假定事物的過去趨勢會延伸到未來;預(yù)測所依據(jù)的數(shù)據(jù)具有不規(guī)則性;撇開了數(shù)據(jù)變化之間的因果關(guān)系時間序列是指同一變量按事件發(fā)生的先后順序排列起來的一組觀察值或記錄值。構(gòu)成時間序列的要素有兩個:其一是時間,其二是與時間相對應(yīng)的變量水平。實際數(shù)據(jù)的時間序列能夠展示研究對象在一定時期內(nèi)的發(fā)展變化趨勢與規(guī)律,因而可以從時間序列中找出變量變化的特征、趨勢以及發(fā)展規(guī)律,從而對變量的未來變化進(jìn)行有效地預(yù)測。時間序列的變動形態(tài)一般分為四種:長期趨勢變動,季節(jié)變動,循環(huán)變動,不規(guī)則變動。下面著重介紹和本文有關(guān)系的兩種預(yù)測法。(1)簡單平均數(shù)預(yù)測法,是用一定觀察期內(nèi)預(yù)測目標(biāo)的時間序列的各期數(shù)據(jù)的簡單平均數(shù)作為預(yù)測期的預(yù)測值的預(yù)測方法。該方法常應(yīng)用于近期短期數(shù)據(jù)的預(yù)測。在簡單平均數(shù)法中,極差越小、方差越小,簡單平均數(shù)作為預(yù)測值的代表性越好。簡單平均數(shù)法的預(yù)測模型如式(2-1)所示。(2-1)注釋:為預(yù)測值,為計算平均值,為樣本值,為樣本容量(2)加權(quán)算術(shù)平均數(shù)法,是簡單算術(shù)平均數(shù)法的改進(jìn)。它根據(jù)觀察期內(nèi)各個時間序列數(shù)據(jù)的重要程度,分別對各個數(shù)據(jù)進(jìn)行加權(quán),以加權(quán)平均數(shù)作為下期的預(yù)測值。對于離預(yù)測期越近的數(shù)據(jù),可以賦予越大的權(quán)重。加權(quán)算術(shù)平均數(shù)法的預(yù)測模型如式(2-2)所示。(2-2)注釋:wi為權(quán)重,Google資訊RSS頻道(中國版)2009-5-30RSS更新時間和次數(shù)數(shù)據(jù)如表2表2-2Google資訊RSS頻道2009-5-30日頻道更新統(tǒng)計簡單平均數(shù)預(yù)測法對于方差比較大,極差比較大的樣本數(shù)據(jù)的預(yù)測性不是很好,而加權(quán)算術(shù)平均數(shù)法通過對不同樣本數(shù)據(jù)引入不同權(quán)值的概念,可以適當(dāng)?shù)南A(yù)測誤差。綜合考慮兩種預(yù)測法的優(yōu)勢,在本系統(tǒng)中將折中使用兩種預(yù)測法。由圖3-2的數(shù)據(jù)可以看出,對于該頻道而言,其更新的高頻階段為上午的10點到下午3點,如果將N取值為24小時則似的系統(tǒng)的預(yù)測性能偏差較大。為了減小這樣的誤差,我們現(xiàn)將N定義為12,只針對6點到18點之間的數(shù)據(jù)進(jìn)行預(yù)測。這樣計算出的預(yù)測值為:13.9條/小時。根據(jù)這樣的計算方法,可以求得每個頻道的更新頻率,并針對不同的頻率進(jìn)行不同的更新策略以提高系統(tǒng)效率:對于每小時更新頻率大于10的訂閱,每小時更新一次;對于每小時更新頻率小于10大于1的訂閱,3小時更新一次;對于每天更新頻率大于1小于24的訂閱,每天更新一次;對于其他更新頻率的訂閱,2天更新一次。由于大型門戶的數(shù)據(jù)更新速度比較快,如果刷新頻率過高,勢必會嚴(yán)重降低系統(tǒng)的效率,所以對于更新頻率過高的RSS訂閱,規(guī)定每小時更新一次;而其他的普通訂閱更新頻率則可以設(shè)置為參數(shù),在實踐應(yīng)用中改變以達(dá)到最佳效率,本文僅給出一個參考值。2.5本章小結(jié)由于歷史的原因,RSS在不斷的發(fā)展完善之中產(chǎn)生了不同的幾個版本,而不同的版本又都被不同的網(wǎng)站廣泛使用,因此一個RSS閱讀器必須能夠做到解析不同格式規(guī)范的RSS數(shù)據(jù)源,由于對RSS的解析并非本論文的討論重點,因此,本文中根據(jù)RSS發(fā)布版本的比例,采用了RSS1.0和RSS2.0兩個主流版本作為解析對象,摒棄了Atom格式的解析。在本章中,介紹了如何將多種不同的RSS格式轉(zhuǎn)換為本系統(tǒng)所采用的格式(如圖2-1所示),這樣做可以消除各種版本之間的差異,方便了后期的數(shù)據(jù)處理。在處理完版本差異之后,下載的數(shù)據(jù)將被進(jìn)行過濾以消除雜質(zhì)信息。不同的RSS頻道,它們的更新時間和更新頻率并不相同,甚至相差很大。如果RSS閱讀器以相同的更新間隔去訪問和下載數(shù)據(jù)源,那樣不僅浪費(fèi)不必要的網(wǎng)絡(luò)資源也會大量消耗系統(tǒng)的計算資源。為了得到最新的內(nèi)容就要不斷的抓取新信息,由于上面提到的更新時間不確定性,所以有必要針對不同的數(shù)據(jù)源設(shè)計出不同的更新策略以提高系統(tǒng)效率。在本章中,討論了簡單平均數(shù)法、加權(quán)算術(shù)平均數(shù)法兩種常用預(yù)測法,并綜合了實際需要和復(fù)雜度,在本系統(tǒng)中采用了兩種算法的折中。

第3章用戶興趣建模3.1文本向量化處理3.1.1分詞在英文的行文中[9],單詞之間是以空格作為自然分界符的,而中文只是字、句和段,可以通過明顯的分界符來簡單劃界,唯獨詞沒有一個形式上的分界符,雖然英文也同樣存在短語的劃分問題,但是在詞這一層上,所以中文的分詞要比英文分詞復(fù)雜一些。中文分詞技術(shù)屬于自然語言處理技術(shù)范疇,對于一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機(jī)也能理解?其處理過程就是分詞算法?,F(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法。由于本系統(tǒng)采用的分詞系統(tǒng)為中科院的基于多層隱馬模型的漢語詞法分析系統(tǒng)ICTCLAS,該系統(tǒng)是基于字符串匹配的分詞方法,所有在此僅對該方法進(jìn)行介紹。字符串匹配的分詞[10]又叫做機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一個充分大的機(jī)器詞典中的詞條進(jìn)行配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優(yōu)先匹配的情況,可以分為最大(最長)匹配和最?。ㄗ疃蹋┢ヅ?;按照是否與詞性標(biāo)注過程相結(jié)合,又可以分為單純分詞方法和分詞與標(biāo)注相結(jié)合的一體化方法。常用的幾種機(jī)械分詞方法如下:正向最大匹配法(由左到右的方向)逆向最大匹配法(由右到左的方向)最少切分(使每一句中切出的詞數(shù)最?。┻€可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結(jié)合起來構(gòu)成雙向匹配法。由于漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高于正向匹配,遇到的歧義現(xiàn)象也較少。統(tǒng)計結(jié)果表明,單純使用正向最大匹配的錯誤率為1/169,單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠(yuǎn)遠(yuǎn)不能滿足實際的需要。實際使用的分詞系統(tǒng),都是把機(jī)械分詞作為一種初分手段,還需通過利用各種其它的語言信息來進(jìn)一步提高切分的準(zhǔn)確率。一種方法是改進(jìn)掃描方式,稱為特征掃描或標(biāo)志切分,優(yōu)先在待分析字符串中識別和切分出一些帶有明顯特征的詞,以這些詞作為斷點,可將原字符串分為較小的串再來進(jìn)機(jī)械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標(biāo)注結(jié)合起來,利用豐富的詞類信息對分詞決策提供幫助,并且在標(biāo)注過程中又反過來對分詞結(jié)果進(jìn)行檢驗、調(diào)整,從而極大地提高切分的準(zhǔn)確率。對于機(jī)械分詞方法,可以建立一個一般的模型,在這方面有專業(yè)的學(xué)術(shù)論文,這里不做詳細(xì)論述。3.1.2ICTCLAS分詞系統(tǒng)ICTCLAS分詞的總體流程包括:1)初步分詞;2)詞性標(biāo)注;3)人名、地名識別;4)重新分詞;5)重新詞性標(biāo)注這五步。就第一步分詞而言,又細(xì)分成:1)原子切分;2)找出原子之間所有可能的組詞方案;3)N-最短路徑中文詞語粗分三步。在所有內(nèi)容中,詞典庫的讀取是最基本的功能。ICTCLAS中詞典存放在Data目錄中,常用的詞典包括coreDict.dct(詞典庫)、BigramDict.dct(詞與詞間的關(guān)聯(lián)庫)、nr.dct(人名庫)、ns.dct(地名庫)、tr.dct(翻譯人名庫)。由于本系統(tǒng)使用的是ICTCLAS開源程序SharpICTCLAS,所以這里只給出其中的WordDictionary類的結(jié)構(gòu)(如圖3-1所示)和詞典結(jié)構(gòu)(如圖3-2所示)。圖3-1WordDictionary類結(jié)構(gòu)下面內(nèi)容節(jié)選自詞庫中CCID2單元,CCID的取值范圍自1~6768,對應(yīng)6768個漢字,所有與該漢字可以組成的詞均記錄在相應(yīng)的單元內(nèi)。詞庫中記錄的詞是沒有首漢字的(用帶括號的字補(bǔ)上了),其首漢字就是該單元對應(yīng)的漢字。詞庫中記錄了詞的詞長、頻率、詞性以及詞。另外特別需要注意的是在一個單元內(nèi),詞是按照CCID大小排序的。圖3-2‘?!衷谠~典中的結(jié)構(gòu)在這里還應(yīng)當(dāng)注意的是,一個詞可能有多個詞性,因此一個詞可能在詞典中出現(xiàn)多次,但詞性不同。若想從詞典中唯一定位一個詞的話,必須同時指明詞與詞性。具體的分詞算法請參見ICTCLAS官方說明書。在文檔中,實詞往往可以代表文檔要表達(dá)的意思。在經(jīng)過分詞之后,將文檔分成了原子詞匯,為了提高系統(tǒng)的運(yùn)算效率,僅對實詞(名詞、動詞、形容詞)和英文字符串進(jìn)行保存處理。ICTCLAS中對詞性的標(biāo)注如表3-1所示。表3-1部分實詞詞性符號標(biāo)注詞性字符詞性字符名詞n動詞v時間詞t形容詞a處所詞s字符串x方位詞f3.1.3關(guān)鍵詞提取在進(jìn)行文檔匹配的時候,我們并不能以整個文檔對其進(jìn)行比較,只有把該文檔分割成一個一個的語義元,由這些語義原子來表示該文檔。而一篇幾百字甚至上千字的文章,可以用不到其文章總數(shù)的10%甚至更少的詞匯來對其唯一性進(jìn)行標(biāo)注,這些詞匯就是關(guān)鍵詞。例如在短語“統(tǒng)計學(xué)的應(yīng)用”可以分成三個關(guān)鍵詞:統(tǒng)計學(xué)、的、應(yīng)用。我們可以很清楚的想到,包含這三個詞多的文章應(yīng)該比包含它們少的文章相關(guān)。當(dāng)然,這個辦法有一個明顯的漏洞,因為網(wǎng)頁的長短會對比值有較大的影響。因此我們需要根據(jù)網(wǎng)頁的長度,對關(guān)鍵詞的次數(shù)進(jìn)行歸一化,也就是用關(guān)鍵詞的次數(shù)除以網(wǎng)頁的總字?jǐn)?shù)。我們把這個比值稱為“關(guān)鍵詞的頻率”,或者“單文本詞匯頻率”(TermFrequency,TF),比如,在某個一共有一千詞的網(wǎng)頁中“統(tǒng)計學(xué)”、“的”和“應(yīng)用”分別出現(xiàn)了2次、35次和5次,那么它們的詞頻就分別是0.002、0.035和0.005。在上面的例子中,詞“的”站了總詞頻的80%以上,而它對確定文章的主題幾乎沒有用。我們稱這種詞叫“應(yīng)刪除詞”(Stopwords),也就是說在度量相關(guān)性是不應(yīng)考慮它們的頻率。在漢語中,應(yīng)刪除詞還有“是”、“和”、“中”、“地”、“得”等等。忽略這些應(yīng)刪除詞后,上述網(wǎng)頁的相似度就變成了0.007,其中“統(tǒng)計學(xué)”貢獻(xiàn)了0.002,“應(yīng)用”貢獻(xiàn)了0.005。經(jīng)過上面的信息屏蔽后,還會遇到另外一個問題,在漢語中,“應(yīng)用”是個很通用的詞,而“統(tǒng)計學(xué)”則相對是個比較特別的專業(yè)詞匯,后者在相關(guān)性排名中比前者重要。因此我們需要給漢語中的每一個詞給一個權(quán)重,這個權(quán)重的設(shè)定必須滿足下面兩個條件:(1)一個詞的預(yù)測主題能力越強(qiáng),權(quán)重就越大,反之,權(quán)重就越小。我們在網(wǎng)頁中看到“統(tǒng)計學(xué)”這個詞,或多或少地能了解網(wǎng)頁的主題。我們看到“應(yīng)用”一次,對主題基本上還是一無所知。因此“統(tǒng)計學(xué)”的權(quán)重就應(yīng)該比“應(yīng)用”大。(2)應(yīng)刪除詞的權(quán)重應(yīng)該是零。我們很容易發(fā)現(xiàn),如果一個關(guān)鍵詞只在很少的文檔中出現(xiàn),我們通過它就容易鎖定搜索目標(biāo),它的權(quán)重也就應(yīng)該大。反之如果一個詞在大量文檔中出現(xiàn),我們看到它仍然不很清楚要找什么內(nèi)容,因此它應(yīng)該小。概括地講,假定一個關(guān)鍵詞w在Dw個網(wǎng)頁中出現(xiàn)過,那么Dw越大,w的權(quán)重越小,反之亦然。在信息檢索中,使用最多的權(quán)重是“逆文本頻率指數(shù)”(Inversedocumentfrequency縮寫為IDF),它的公式為log(D/Dw)其中D是全部網(wǎng)頁數(shù)。比如,我們假定中文網(wǎng)頁數(shù)是D=10億,應(yīng)刪除詞“的”在所有的網(wǎng)頁中都出現(xiàn),即Dw=10億,那么它的IDF=log(10億/10億)=log(1)=0。假如專用詞“統(tǒng)計學(xué)”在兩百萬個網(wǎng)頁中出現(xiàn),即Dw=200萬,則它的權(quán)重IDF=log(500)=6.2。又假定通用詞“應(yīng)用”,出現(xiàn)在五億個網(wǎng)頁中,它的權(quán)重IDF=log(2)則只有0.7[11]。最后對所有關(guān)鍵詞的IDF*TF值進(jìn)行倒序排序,截取部分關(guān)鍵詞和其權(quán)重將用以代表文章。由于實驗環(huán)境和數(shù)據(jù)源的局限性,在本系統(tǒng)中并不能大范圍的索引詞匯,所以引入了一個詞典模塊,以輔助記錄詞匯的熱度,下面章節(jié)會有詳細(xì)介紹。3.2系統(tǒng)詞典的設(shè)計3.2.1詞典的作用在上面提到“逆文本頻率指數(shù)”,它的公式為log(D/Dw)其中D是全部網(wǎng)頁數(shù)。我們名不能抓取所有的網(wǎng)頁數(shù),只能在可操作的范圍內(nèi)盡量的使D更接近實際值。在本系統(tǒng)中,以每篇文章為一個文檔,對文檔進(jìn)行分詞,去掉重復(fù)詞匯。對于分詞結(jié)果,如果該詞已經(jīng)在詞典中出現(xiàn),則將其計數(shù)加1,表示在所有網(wǎng)頁中出現(xiàn)的次數(shù),如果在詞典中沒有該詞的記錄,則將其加入詞典并置出現(xiàn)次數(shù)為1。由以上描述不難看出,在系統(tǒng)使用初期,詞典所給出的數(shù)據(jù)并不是很準(zhǔn)確,但是隨著使用時間的延長,其數(shù)據(jù)也會越來越接近實際值,系統(tǒng)計算的精度也會隨之提高。3.2.2詞典的設(shè)計在詞典系統(tǒng)中主要包含兩個類,一個詞典類,一個關(guān)鍵詞類。詞典是由關(guān)鍵字所組成,對詞典的操作主要表現(xiàn)在對關(guān)鍵詞的操作上面。Keyword類,該類具有該系統(tǒng)中關(guān)鍵詞的必備屬性,其詳細(xì)介紹如下屬性:HotCount:詞匯的熱度HotWeight:詞匯在詞典中的權(quán)重IDF:逆文本頻率指數(shù)OccurTimes:在文檔中出現(xiàn)的次數(shù)PartOfSpeech:詞匯的詞性圖3-3KeyWord類結(jié)構(gòu)TF:單文本詞匯頻率Value:詞匯值(內(nèi)容)Weight:詞匯在文檔中的權(quán)重WID:詞匯ID方法:IsExist:判斷詞匯是否存在于詞典SaveToDictionary:將詞匯保存至詞典圖3-4Dictionary類結(jié)構(gòu)圖Dictionary類包含了對關(guān)鍵詞類的維護(hù)和對數(shù)據(jù)庫詞典的維護(hù)功能。方法:AddKeyWordsWeight:對于需要增加權(quán)重的詞匯將其權(quán)重值加1;GetHotKey:獲得熱門關(guān)鍵詞;GetKeyMsg:按照關(guān)鍵詞的內(nèi)容或者關(guān)鍵詞的ID獲得其全部屬性;InsertToDictionary:將關(guān)鍵詞插入數(shù)據(jù)庫;IsExsit:判斷關(guān)鍵詞是否存在于詞典中;ReduceKeyWordsWeight:降低關(guān)鍵詞的權(quán)重;3.3相似度計算3.3.1算法在文本分析計算中,通過文本向量的Cosine夾角來計算文檔的相似度,是比較常用的算法。它的思想就是計算兩個向量的夾角,如果兩個向量夾角的cosine值越接近1,表明兩個向量夾角越小,相似度越大;如果兩個向量的相似性越小,則其cosine值越接近0[12],如圖3-5所示。通過這個方法可以按照和比較文檔之間的相似度進(jìn)行方便的排序。例如,點A(x1,y1)代表要比較的主文檔,點B(x2,y2),C(x3,y3),D(x4,y4),E(x5,y5)代表和A相比較的文檔,我們依次將BCDE和A進(jìn)行cosine角的計算(cosinesimilarity)如式(3-1),這樣的操作可以擴(kuò)充到集合內(nèi)的所有文檔的比較。圖3-5Cosine角的計算(3-1)3.3.2文檔的相似匹配計算每個文檔可以作為一個向量,向量的維數(shù)是特征集項的個數(shù)(在本論文中,特征集就是文檔的關(guān)鍵字),向量的每個分量是特征集在文檔中出現(xiàn)的次數(shù)[8]。現(xiàn)具體定義如下:假設(shè)文檔集D={di},|D|=S,(|D|表示集合D中元素的個數(shù)),其特征項集T={tj},|T|=M。定義特征項tj在文檔di中的權(quán)重如式(3-2)所示。(3-2)TFij為特征項tj在文檔di中出現(xiàn)的頻率;IDFj是文檔集D中特征項tj的逆文本頻率指數(shù)。現(xiàn)在建立文檔的向量模型,以t1,t2…tM為坐標(biāo)軸,把文檔di表示為M維向量(wi1,wi2,…wiM),文檔di和文檔dj之間的相似度Sim(di,dj)可以表示為公式(3-3)。(3-3)為了比較用戶的興趣模型和文檔的相似度,我們將建立和文檔向量類似的用戶興趣向量U。通過計算ui(用戶i的興趣向量)和di(文檔i的特征向量)的cosine值來計算其相似度?,F(xiàn)定義u和d的格式為:ui=word1<weight1>word2<weight2>…wordn<weightn>di=word1<weight1>word2<weight2>…wordm<weightm>3.4用戶興趣模型的完善本系統(tǒng)的一個核心就是建立用戶的興趣模型,該模型的好壞直接影響到匹配的效果和用戶體驗。在此,本文主要從三個方向來完善用戶的興趣模型,其詳細(xì)介紹如下。(1)興趣模型的初始化。當(dāng)用戶初次注冊系統(tǒng)時,我們并不能很好的獲得有關(guān)用戶的興趣信息,因此無法建立比較完善的興趣模型。為了彌補(bǔ)這樣的缺陷,結(jié)合系統(tǒng)詞典中統(tǒng)計的數(shù)據(jù),在本系統(tǒng)中,我們抽取比較熱門的系統(tǒng)關(guān)鍵詞作為用戶的興趣關(guān)鍵詞,但是考慮到用戶興趣模型的個性化和不斷變化發(fā)展的趨勢,現(xiàn)規(guī)定熱門關(guān)鍵詞的權(quán)值設(shè)為一個容易改變但是同時可以反映該詞特征的權(quán)重,這里暫定其為1(可根據(jù)實驗效果而改變)。興趣模型的初始化流程如圖3-6所示。圖3-6興趣模型初始化流程(2)興趣模型的自動完善。興趣模型的自動完善可以從多個方面進(jìn)行,可以記錄用戶的操作行為并分析,對于瀏覽時間長的文章提取其主要關(guān)鍵詞,并設(shè)置一個規(guī)定的權(quán)重,將其附加到用戶的興趣模型;對用戶新添加的頻道進(jìn)行分析,對該頻道內(nèi)Item中的摘要信息進(jìn)行主要關(guān)鍵詞提取,設(shè)置一個較低的權(quán)重并附加到用戶興趣模型;在向用戶推薦文章的時候,對每篇文章提供一個用戶評價接口,使用戶可以直接對系統(tǒng)為自己的正確推薦做出反饋,并對正確推薦的文章提取關(guān)鍵詞并賦予較高權(quán)重,附加到用戶興趣模型。詳細(xì)算法如圖3-7所示。圖3-7更新用戶興趣模型詳細(xì)算法其流程為:i.關(guān)鍵詞集合排序ii.關(guān)鍵詞權(quán)重計算iii.關(guān)鍵詞更新iv.保存至數(shù)據(jù)庫(3)興趣模型的手動設(shè)置系統(tǒng)自動完善用戶興趣模型的過程具有漸變性和非偶然性,即用戶模型在短時間內(nèi)并不能發(fā)生根本性的改變,其改變多是來自用戶對模型日積月累的微小影響。如果用戶需要其興趣模型在短時間內(nèi)發(fā)生較大的改變,那么僅僅依靠興趣模型的自動完善并不能滿足要求。為了解決這個問題,本系統(tǒng)引入了手動設(shè)置用戶模型的接口,這樣用戶可以自行添加或者更改其興趣模型中的關(guān)鍵詞和權(quán)重,增加了系統(tǒng)的靈活性。詳細(xì)算法如圖3-8所示。圖3-8向用戶興趣模型中插入特征值的詳細(xì)算法其流程為:i.初始化詞典ii.將新詞插入詞典iii.對用戶興趣模型中的關(guān)鍵詞排序iv.判斷需要保存的關(guān)鍵詞v.保存至用戶興趣模型3.5本章小結(jié)針對中文分詞的復(fù)雜性,本論文引入了中科院的ICTCLAS分詞程序。介紹了改分詞程序的核心分詞算法機(jī)械分詞法。在ICTCLAS的分詞系統(tǒng)章節(jié),介紹了系統(tǒng)中的關(guān)鍵模塊數(shù)據(jù)保存格式、詞典類的結(jié)構(gòu),以及對所需要處理的詞匯的詞性進(jìn)行了解釋。介紹了TF和IDF的概念以及本論文采用的關(guān)鍵詞提取算法;因為文檔向量相似度計算的需要,引入了系統(tǒng)詞典,詞典的作用就是便于統(tǒng)計詞匯頻率并對詞匯進(jìn)行排序?qū)Ρ?,并介紹了系統(tǒng)詞典的作用和設(shè)計方法;在相似度計算章節(jié)討論了通過文本向量的Cosine夾角來計算文檔的相似度算法,并將用戶興趣模型以文檔向量來表示應(yīng)用到該算法最后,針對用戶興趣模型的維護(hù)和實際需要,提出了興趣模型初始化、興趣模型的自動維護(hù)、興趣模型的手動維護(hù)三種方式,詳細(xì)介紹了其中自動維護(hù)和手動維護(hù)兩種方式的算法。

第4章系統(tǒng)的設(shè)計和實現(xiàn)4.1系統(tǒng)的功能需求在快節(jié)奏的現(xiàn)代生活中,面對浩如煙海的互聯(lián)網(wǎng)信息,快速、高效、全面地獲取最新咨詢,把握時代先機(jī),成了各類人士的普遍需求。在互聯(lián)網(wǎng)上,該類產(chǎn)品中具有代表性的主要有抓蝦、鮮果、GoogleReader、周伯通RSS閱讀器等。其主要特點是提供大量服務(wù)頻道供用戶訂閱,內(nèi)容涉及新聞、博客、視頻等諸多領(lǐng)域。然而這些產(chǎn)品雖然用戶眾多,但其分類繁瑣、來源復(fù)雜、更新緩慢(對于即時新聞),達(dá)不到信息及時、全面、高效的要求。而專業(yè)新聞類用戶對這方面的要求又非常迫切。同時,這些系統(tǒng)的設(shè)計都是基于用戶添加RSS訂閱,系統(tǒng)根據(jù)用戶的訂閱按時更新數(shù)據(jù),對于所有的用戶提供的都是千篇一律的服務(wù)。面對大量的數(shù)據(jù),用戶必須要花費(fèi)相對很長的時間去查找自己感興趣的新聞和訂閱,RSS閱讀器運(yùn)營商僅僅是一味的推送所有的訂閱信息。對于服務(wù)商和用戶來說,這樣的行為都是比較浪費(fèi)資源的,因為服務(wù)商要存儲大量的數(shù)據(jù)和消耗大量的計算資源,而用戶要浪費(fèi)很多的時間并且得不到較好的用戶體驗。為改進(jìn)了以上現(xiàn)有系統(tǒng)的不足,現(xiàn)定義該系統(tǒng)的需求功能如下:(1)用戶信息維護(hù)功能需求 i.新用戶注冊(用戶名、密碼、密碼確認(rèn)、性別、職業(yè)、年齡) ii.用戶個人信息和興趣模型中關(guān)鍵詞其權(quán)重值的查看 iii.用戶密碼的修改(2)數(shù)據(jù)源維護(hù)功能需求 i.添加、刪除訂閱頻道 ii.添加、刪除、修改頻道所屬分組 iii.計算統(tǒng)計各個頻道的更新頻率,和下次更新時間 v.手動更新某頻道,按照指定算法自動更新所有頻道(3)個性化信息服務(wù)方面功能需求 i.初始化用戶的興趣模型 ii.手動修改用戶興趣模型中的關(guān)鍵詞和權(quán)重 iii.系統(tǒng)根據(jù)用戶的操作記錄自動維護(hù)用戶的興趣模型 iv.安裝頻道名稱、文章標(biāo)題、內(nèi)容、發(fā)布日期、截止日期進(jìn)行檢索;對于信息查看頁,提供無刷新即時顯示檢索。 v.統(tǒng)計用戶訂閱頻道的信息和閱讀情況,包括:訂閱頻道總數(shù),頻道包含文章總數(shù),閱讀文章數(shù),尚未閱讀文章數(shù),整體閱讀比例,各個頻道的文章數(shù)和閱讀比例 vi.根據(jù)用戶興趣模型,向用戶推薦用戶可能感興趣的文章 vii.用戶評價系統(tǒng)推薦的文章,反饋給系統(tǒng)以改進(jìn)該用戶的興趣模型 viii.按照閱讀比例和時間限制用戶設(shè)定對過時信息的操作(刪除),顯示系統(tǒng)下次對訂閱信息的操作時間。(4)用戶界面功能需求 i.采用網(wǎng)頁瀏覽器作為查看工具 ii.操作簡便,使用戶點擊次數(shù)盡可能少而完成的功能盡可能的多 iii.使用AJAX無刷新機(jī)制,增強(qiáng)用戶體驗效果 v.色彩搭配合理,各種網(wǎng)頁元素的顯示和位置規(guī)范4.2系統(tǒng)的整體設(shè)計4.2.1系統(tǒng)框架結(jié)構(gòu)設(shè)計本系統(tǒng)采用BS結(jié)構(gòu),之所以采用這樣的結(jié)果是因為用戶不需要為了訂閱信息而付出額外的存儲資源,有利于系統(tǒng)對用戶興趣模型的維護(hù)。RSS訂閱服務(wù)器可以分為三大服務(wù)模塊。(1)Web服務(wù)器,直接面向客戶,為客戶呈現(xiàn)訂閱的數(shù)據(jù)和提供界面的操作服務(wù);(2)應(yīng)用程序服務(wù)器,負(fù)責(zé)與網(wǎng)絡(luò)上的其他RSS服務(wù)商取得聯(lián)系并獲取RSS資源,整理數(shù)據(jù),在數(shù)據(jù)庫服務(wù)器和Web服務(wù)器之間建立聯(lián)系;(3)數(shù)據(jù)庫服務(wù)器,負(fù)責(zé)存儲數(shù)據(jù)。其結(jié)構(gòu)如圖4-1所示。

圖4-1系統(tǒng)架構(gòu)圖4.2.2系統(tǒng)邏輯結(jié)構(gòu)設(shè)計系統(tǒng)的整個邏輯架構(gòu)如圖4-2。RSS源為網(wǎng)絡(luò)上RSS訂閱內(nèi)容的提供商,每個用戶可以同時訂閱多個RSS數(shù)據(jù)源,一個數(shù)據(jù)源可以同時被不同的用戶訂閱。數(shù)據(jù)處理器主要的功能根據(jù)已經(jīng)設(shè)定好的規(guī)范配合信息抓取器來獲得新的RSS數(shù)據(jù)。信息抓取器的任務(wù)就是完成從網(wǎng)上下載RSS頻道,并對頻道進(jìn)行解析,轉(zhuǎn)換為本系統(tǒng)適用的格式并保存。更新監(jiān)視器的任務(wù)是監(jiān)視數(shù)據(jù)庫中的RSS訂閱,并針對不同的訂閱按照不同的更新方案控制信息抓取器進(jìn)行RSS新信息的拉取。數(shù)據(jù)呈現(xiàn)即數(shù)據(jù)和用戶的交互界面。用戶操作并不是一個實體,是聯(lián)系用戶興趣模型維護(hù)器和用戶之間的一個橋梁。興趣模型維護(hù)器的任務(wù)是維護(hù)用戶的興趣模型,直接控制每個用戶興趣向量。各個模塊的詳細(xì)算法和操作在本文后面將給出詳細(xì)介紹。圖4-2系統(tǒng)邏輯結(jié)構(gòu)圖4.3具體模塊的設(shè)計在本節(jié)中,將針對信息抓取模塊、信息處理模塊、相似度計算的主要算法、興趣模型的維護(hù)模塊給出詳細(xì)介紹。4.3.1信息抓取模塊的設(shè)計本系統(tǒng)采用開源的RSS.Net作為主要的RSS解析器,可以完成RSS0.9、0.91、0.92、1.0、2.0的解析。處理后的RSS規(guī)范請參閱章節(jié)3.1的介紹。RSS信息抓取器主要配合數(shù)據(jù)處理器和更新監(jiān)視器進(jìn)行工作,完成下載、解析不同格式、格式轉(zhuǎn)換、預(yù)測并更新下次下載時間。其主要流程圖如圖4-3。頻道內(nèi)容被下載下來后,經(jīng)過處理得到規(guī)范格式的Channel類型傳送給下一個處理單元。下載模塊的主要類成員為Collector類。下面為類Collector的介紹:屬性: ChannelID:需要更新的頻道列表,保存期ID值,集合類型。 Channels:更新后的頻道,集合類型。 URLS:要更新頻道的URL,集合類型。圖4-3信息抓取模塊流程圖圖4-4Collctor類結(jié)構(gòu)圖方法:CollectChannel:完成頻道的下載和轉(zhuǎn)換。Collector:構(gòu)造函數(shù)。CollectRssFeeds:完成頻道的下載。4.3.2信息處理模塊的設(shè)計信息處理模塊的主要功能為截取過長信息,對于要求向量化的Description內(nèi)容進(jìn)行HTML標(biāo)記的清除,去掉多余的空白符號,替換網(wǎng)頁標(biāo)記,去掉空行,進(jìn)行漢字的繁簡轉(zhuǎn)換等等操作,其流程如圖4-5。圖4-5信息處理模塊流程圖 該模塊內(nèi)兩個關(guān)鍵類CheckString和TextAndVector的說明。圖4-6CheckString類結(jié)構(gòu)圖CheckString類的主要工作是對字符串的檢查和轉(zhuǎn)換,其方法介紹如下。方法:Check:替換數(shù)據(jù)庫敏感字符;CnChar2EnChar:將全角字符轉(zhuǎn)換為半角字符;HtmlToText:預(yù)處理,去掉不必要的HTML信息。包括去掉所有HTML標(biāo)記,去掉多余空白符號,替換英文字符,去掉空行,將多個連續(xù)空格替換成一個空格,去掉行首尾的空格;ToSimplifyString:將GB2312中的繁體字轉(zhuǎn)換為簡體字。圖4-7TxtAndVector類結(jié)構(gòu)圖TextAndVector類的主要作用是對關(guān)鍵詞、字符串、向量的操作,其具體方法介紹如下。方法:KeyWordsToString:將集合類型的關(guān)鍵詞轉(zhuǎn)換為字符串向量;StringToKeyWords:將字符串類型的向量轉(zhuǎn)換為集合類型的關(guān)鍵詞;StringToKeyWordsValue:將字符串類型的向量轉(zhuǎn)換為具有完整屬性的關(guān)鍵詞集合;StringToKeyWordsValuetb:將字符串類型的向量轉(zhuǎn)換為具有完整屬性的關(guān)鍵表;TextToVector:將字符串轉(zhuǎn)換為字符串向量。對Item中關(guān)鍵詞的提取和對文檔的向量化需要的類和關(guān)鍵算法如圖4-10,在圖4-10中myseg的定義語句為:WordSegmentsmyseg=newWordSegments(DictPath,2);其中WordSegments類的定義為如圖4-9。圖4-9WordSegments類結(jié)構(gòu)圖圖4-10關(guān)鍵詞提取算法該類的主要功能是提供分詞。器屬性和方法介紹如下:屬性: nKind:在NShortPath方法中用來決定初步切分時分成幾種結(jié)果。方法: WordSegments:構(gòu)造函數(shù),在沒有指明nKind的情況下,nKind取1; Segment:分詞主方法。4.3.3相似度計算模塊的設(shè)計用戶興趣模型向量和文本特征向量的相似度計算是個性化服務(wù)的重要組成部分,其計算結(jié)果是向用戶進(jìn)行信息推薦的關(guān)鍵參考值。圖4-11為相似度計算模塊用到的主要類,圖4-12詳細(xì)描述了相似度計算算法的流程。圖4-11PersonalityCalc類結(jié)構(gòu)圖PersonalityCalc類的主要功能就是完成向量間相似度的計算。包含如下方法: CalcSimilarity:被重載四次,根據(jù)不同的傳入?yún)?shù),進(jìn)行不同的計算,該函數(shù)是相似度計算的主要函數(shù)。 Split:完成字符串轉(zhuǎn)換為List<KeyWord>的功能,其輸入格式為字符串向量,詳細(xì)請參見4.3.2章節(jié)。4.3.4興趣模型維護(hù)模塊的設(shè)計在本文前面詳細(xì)介紹了興趣模型的維護(hù)方法,主要包括初始化、自動維護(hù)、手動維護(hù)三種方法,其各個方法的詳細(xì)算法請參考章節(jié)4.3。圖4-13是在整個環(huán)境中三種方法操作的流程圖。圖4-12相似度計算算法圖4-13興趣模型維護(hù)流程圖該流程的主要過程為:(1)判斷所要采取的模型維護(hù)方法;(2)采用選擇的方法獲得一個新的特征向量;(3)將該特征向量附加到用戶的興趣模型。(4)保存至數(shù)據(jù)庫4.4數(shù)據(jù)層的設(shè)計本系統(tǒng)的數(shù)據(jù)庫包含表:Catalog、Category、Channel、dictionary、Items、Job、Users。其中主表的關(guān)系如圖4-14。圖4-14數(shù)據(jù)庫主表ER圖下面是各表的詳細(xì)說明:表4-1用戶信息表(Users)字段名數(shù)據(jù)類型允許空約束備注UIDintNPK用戶IDNamevarchar(50)NUNIQUE用戶名Passwordvarchar(50)N密碼GenderbitY性別BirthdaydatetimeY出生日期JobIDintYFK–Job-JID工作類型外鍵Vectornchar(2000)Y用戶興趣向量DelPChntinyintY最低刪除比例DelChnsmallintY刪除比例DelRItemsmaillintYItem刪除比例DelURItemsmaillintY未讀Item比例表4-2RSS頻道表(Items)字段名數(shù)據(jù)類型允許空約束備注ChIDintNPK頻道IDCURLvarchar(200)N頻道的xml地址UIDintNFK-Users-UID用戶IDCtIDintNFK-Category-CtID所屬分類IDMyTitlevarchar(200)N自定義標(biāo)題Titlevarchar(200)N頻道名字Linkvarchar(200)N頻道鏈接Descriptionvarchar(500)Y頻道描述PubDatedatetimeY發(fā)布時間TtlintY生命期LastUpdateTimedatetimeN上次更新時間CopyRightvarchar(200)Y版權(quán)所有表4-3目錄表(Catelog)字段名數(shù)據(jù)類型允許空值約束備注CIDintNPK目錄編號UIDintNFK-Users-UID歸屬用戶的ID外鍵FatherIDintNFK-Catelog-CID父級目錄ID外鍵Namevarchar(100)N目錄名字Discriptionvarchar(200)Y目錄項的描述TotalCountintN子目錄項計數(shù)ReadedCountintN已讀項的數(shù)量TypetinyintY是否為葉子節(jié)點表4-4頻道項Item表(Items)字段名數(shù)據(jù)類型允許空值約束備注IIDintNPKItem的IDChIDintNFK-Channel-ChID所屬頻道IDTitlevarchar(200)NItem標(biāo)題Linkvarchar(300)N鏈接Authorvarchar(100)Y作者Descriptionvarchar(8000)N摘要內(nèi)容PubDatedatetimeY發(fā)布時間Commentsvarchar(300)Y評論URLHasReadedBooleanN是否已經(jīng)閱讀Guidvarchar(300)NItem唯一標(biāo)識Vectornchar(2000)N文章特征值向量FlagbitY標(biāo)記WeightfloatN文章權(quán)重4.5界面設(shè)計4.5.1設(shè)計原則根據(jù)用戶心理學(xué)和認(rèn)知科學(xué),提出如下四個基本原則用以指導(dǎo)人機(jī)界面交互設(shè)計[13]。(1)一致性原則:即從任務(wù)、信息的表達(dá)、界面控制操作、色彩搭配等方面與用戶理解熟悉的模式盡量保持一致。(2)兼容性:在用戶期望和界面設(shè)計的現(xiàn)實之間要兼容,要基于用戶以前的經(jīng)驗。例如按鈕圖片樣式的規(guī)范設(shè)計以及按鈕位置的選擇。(3)適應(yīng)性:用戶應(yīng)處于控制地位,因此界面應(yīng)在多方面適應(yīng)用戶。使得用戶在使用本系統(tǒng)時能夠順利舒暢的進(jìn)行日常操作。(4)結(jié)構(gòu)性:減少頁面復(fù)雜度,使用戶可以一目了然的知道該如何去操作就可以簡便的達(dá)到目的。4.5.2設(shè)計實例(1)各個網(wǎng)頁的導(dǎo)航欄:從左至右,依次顯示用戶尚未閱讀的訂閱和總訂閱文章數(shù),網(wǎng)站各個網(wǎng)頁的鏈接按鈕,滾動的及時新聞,當(dāng)天和第二天的天氣情況。這些設(shè)計都可以使用戶很直觀的進(jìn)行操作,如圖4-15所示。圖4-15網(wǎng)站模板頭樣式(2)個人主頁:用以顯示和閱讀所有個人的訂閱信息。該頁面基于AJAX無刷新技術(shù),使得用戶在切換頻道時能夠流暢的顯示新的信息,給用戶以較舒適的體驗(圖4-16)。圖4-16新聞閱讀主頁樣式(3)檢索界面設(shè)計如圖4-17,4-18所示??紤]到RSS新聞的簡短性,將檢索結(jié)果設(shè)計為滑動窗口的模式,這樣用戶在得到檢索結(jié)果之后,不需要點擊鏈接進(jìn)入新的界面去閱讀,可以直接

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論