寧莉莉
(咸陽(yáng)職業(yè)技術(shù)學(xué)院,陜西 咸陽(yáng)712000)
整個(gè)系統(tǒng)對(duì)于文檔數(shù)據(jù)的分析主要從數(shù)據(jù)采集、文檔分析、信息分類(lèi)、數(shù)據(jù)統(tǒng)計(jì)以及關(guān)系發(fā)現(xiàn)的5 個(gè)步驟逐步實(shí)現(xiàn)。
主要是在用戶(hù)提交文檔時(shí)由系統(tǒng)提示用戶(hù)填寫(xiě)的基本信息,該功能比較簡(jiǎn)單,可以和文檔分析一起作為第一步的數(shù)據(jù)獲取功能,主要的工作步驟如下圖所示:
圖1 數(shù)據(jù)分析過(guò)程示意圖
上面的過(guò)程并不一定對(duì)每一次論文分析適用,每一個(gè)步驟的信息都能夠?yàn)檎麄€(gè)系統(tǒng)提供所需要的論文數(shù)據(jù),每一個(gè)步驟也都能夠?yàn)橄乱徊焦ぷ魈峁┹斎氲臄?shù)據(jù)和信息。下面就根據(jù)上圖的順序,逐一研究和討論相關(guān)的實(shí)現(xiàn)算法。
文檔的操作與分析技術(shù)主要研究的有兩大類(lèi):分析技術(shù)和生成技術(shù)。除了用戶(hù)所輸入的論文的基本信息外,為了提高后面文檔分析算法的有效性,需要對(duì)文檔進(jìn)行深度的分析工作,因?yàn)橛行﹥?nèi)容,僅憑用戶(hù)的輸入永遠(yuǎn)很難完全獲得,而且很多情況下,用戶(hù)可能會(huì)選擇不深入相關(guān)信息。雖然可以強(qiáng)迫用戶(hù)輸入,但是這樣的必填項(xiàng)目不能過(guò)多,否則會(huì)降低系統(tǒng)的友好程度。而文檔的生成技術(shù),是系統(tǒng)自動(dòng)生成論文所必須的技術(shù)。
在完成了文檔的中文分詞后,算法就可以獲的全部文檔的基本內(nèi)容,這些內(nèi)容以中文詞組的方式存儲(chǔ)在數(shù)組中可供分析。“近年來(lái),借助模式識(shí)別算法,文本分類(lèi)技術(shù)飛速發(fā)展。文本分類(lèi)大致分為幾個(gè)要素:文本向量模型表示、文本特征選擇和文本訓(xùn)練分類(lèi)器。目前比較流行的分類(lèi)方法主要有SVM、改進(jìn)余弦相似度、貝葉斯方法、神經(jīng)網(wǎng)絡(luò)、K2 最近鄰方法、遺傳算法、粗糙集等”。使用這些技術(shù),就可以根據(jù)論文的基本內(nèi)容,對(duì)論文的領(lǐng)域和類(lèi)型進(jìn)行歸類(lèi)。
余弦相似度分類(lèi)技術(shù)是利用上面所計(jì)算的TF-IDF 結(jié)果與當(dāng)前數(shù)據(jù)庫(kù)中保存的已知類(lèi)型的文檔中的關(guān)鍵詞TF-IDF 進(jìn)行比較,以此來(lái)自動(dòng)判斷當(dāng)前所分析的文檔與已知文檔是否一致。余弦相似度越接近的論文就應(yīng)該認(rèn)為屬于同一類(lèi)型。余弦相似度分類(lèi)算法最常見(jiàn)的應(yīng)用就是計(jì)算文本相似度。通過(guò)將兩個(gè)文本分別按照所包含的詞建立向量,向量可以通過(guò)分析文本包含詞語(yǔ)的數(shù)量,或者以論文為例可以簡(jiǎn)化為關(guān)鍵詞和引用論文,計(jì)算兩個(gè)向量的余弦值,就可以知道兩個(gè)文本在統(tǒng)計(jì)學(xué)方法中他們的相似度。
樣本信息的收集過(guò)程可以如下圖所示的過(guò)程實(shí)現(xiàn):
圖2 樣本信息收集及存儲(chǔ)結(jié)構(gòu)示意圖
有了大量的精確度較高的樣本信息,系統(tǒng)就能夠?qū)θ我獾男抡撐男畔⒂行У姆诸?lèi)。除了上面所研究的余弦相似度算法外,還有一個(gè)比較重要,同時(shí)分類(lèi)效果也非常好的算法是樸素貝葉斯分類(lèi)算法。與余弦相似度算法相比,貝葉斯分類(lèi)算法利用了概率論的知識(shí),通過(guò)比較樣本庫(kù)中大量的數(shù)據(jù)的概率與當(dāng)前分析文檔的概率,來(lái)確定該論文屬于某一類(lèi)型的可信程度。貝葉斯分類(lèi)算法的基礎(chǔ)是一個(gè)明顯的常識(shí),即同一條詞條在不同類(lèi)型的文本中出現(xiàn)的概率通常是不一樣的,很多詞條只會(huì)在某些類(lèi)別的文本中出現(xiàn),例如“微軟”、“索尼”、“喬布斯”等詞條出現(xiàn)在有關(guān)戰(zhàn)爭(zhēng)的文本中的概率要遠(yuǎn)遠(yuǎn)低于“師團(tuán)”的概率。因此,通過(guò)概率的計(jì)算和比較,就能夠確定文本的分類(lèi)。
論文的分析和分類(lèi)需要花費(fèi)大量的計(jì)算資源,而算法的運(yùn)行效率會(huì)隨著論文數(shù)量、樣本信息等數(shù)據(jù)量的增加而迅速下降,而對(duì)于公用的系統(tǒng),運(yùn)行的效率決定著用戶(hù)的體驗(yàn)度和繼續(xù)使用該系統(tǒng)的信心。解決效率問(wèn)題的一個(gè)最直接的手段就是提高計(jì)算機(jī)的運(yùn)行效率,但是這樣的花費(fèi)將會(huì)非常巨大,而且對(duì)于一個(gè)新系統(tǒng)對(duì)計(jì)算機(jī)效率的估計(jì)也十分的困難,開(kāi)始用戶(hù)少的時(shí)候可能不需要特別快的系統(tǒng),而隨著用戶(hù)和數(shù)據(jù)的增長(zhǎng)則需要增加計(jì)算機(jī)的性能。
解決上述問(wèn)題的一個(gè)可能方案是本研究所提出的使用公有云計(jì)算平臺(tái),來(lái)解決系統(tǒng)的擴(kuò)展性難題。但是再快的計(jì)算機(jī)系統(tǒng)也會(huì)存在極限,但是對(duì)于互聯(lián)網(wǎng)系統(tǒng)來(lái)說(shuō),數(shù)據(jù)量的增長(zhǎng)早已超過(guò)計(jì)算機(jī)性能的增長(zhǎng)。雖然使用云計(jì)算平臺(tái),但是如果只是依靠單機(jī)的性能來(lái)完成算法運(yùn)行的任務(wù),則很快就會(huì)碰到效率的瓶頸。因此,更加有效的方案應(yīng)該是充分的利用分布式計(jì)算技術(shù),將分析算法盡可能的分配到不同到計(jì)算機(jī)上同時(shí)并行。則可以解決上述的難題。
目前可能的選擇是利用Storm 這樣的并行計(jì)算框架來(lái)實(shí)現(xiàn)高并行的算法實(shí)現(xiàn)。Storm 框架利用集群系統(tǒng)來(lái)完成相關(guān)的并行計(jì)算,并且能夠動(dòng)態(tài)的可靠管理運(yùn)行在計(jì)算機(jī)集群上的算法片段。Storm 的框架研究不是本研究的重點(diǎn),但是通過(guò)研究了該框架的具體功能后發(fā)現(xiàn),本系統(tǒng)的論文分析和歸類(lèi)算法,完全可以適應(yīng)Storm 框架的并行計(jì)算要求。Storm 框架設(shè)計(jì)之初就是為了滿(mǎn)足海量的文本數(shù)據(jù)的并行分析需求。
相對(duì)于論文分析與歸類(lèi)算法,論文的統(tǒng)計(jì)算法相對(duì)難度會(huì)低一些。相關(guān)的功能的信息對(duì)用戶(hù)非常有用,但是算法只是利用系統(tǒng)所存儲(chǔ)的所有數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算。因此對(duì)于論文統(tǒng)計(jì)算法的研究重要的是相關(guān)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì)問(wèn)題。所有的統(tǒng)計(jì)結(jié)果都是通過(guò)不同的角度來(lái)對(duì)平臺(tái)內(nèi)的用戶(hù)、論文或者學(xué)術(shù)圈情況進(jìn)行分析,并且供感興趣的用戶(hù)或者研究人員進(jìn)行查詢(xún)或者分析。各個(gè)角度的統(tǒng)計(jì)信息之間,平臺(tái)并不提供統(tǒng)一的比較。
最熱論文的統(tǒng)計(jì)主要是解決最熱論文的定義問(wèn)題??梢允褂盟姆N不同的方式或計(jì)算方法實(shí)現(xiàn):查詢(xún)次數(shù)最多、下載次數(shù)最多、引用次數(shù)最多、評(píng)論次數(shù)最多。前面三種標(biāo)準(zhǔn)可以反映該論文在整個(gè)系統(tǒng)內(nèi)部整體的活躍程度,而評(píng)論次數(shù)最多則可以認(rèn)為當(dāng)前的一個(gè)短期時(shí)間內(nèi)最熱火的論文。
最熱用戶(hù)既是最活躍用戶(hù),可以通過(guò)如下三種數(shù)據(jù)進(jìn)行標(biāo)識(shí):論文數(shù)目最多、評(píng)論最多(包括評(píng)論別人或者獲得評(píng)論最多)、登錄系統(tǒng)次數(shù)最多、加入的興趣小組最多。這些信息在數(shù)據(jù)庫(kù)中都有直接的存儲(chǔ),因此統(tǒng)計(jì)分析也十分簡(jiǎn)單。最熱用戶(hù)可以與最熱論文一起,在用戶(hù)登錄系統(tǒng)后直接推送給用戶(hù)??梢园ㄏ到y(tǒng)內(nèi)部以及用戶(hù)所關(guān)注的相關(guān)領(lǐng)域內(nèi)部等不同的統(tǒng)計(jì)結(jié)果信息。
相關(guān)的查詢(xún)比較簡(jiǎn)單,主要是幾個(gè)相關(guān)表格的聯(lián)合查詢(xún),以半年內(nèi)上傳論文的數(shù)目的查詢(xún)?yōu)槔?,相關(guān)SQL 示例如下所示。依靠論文發(fā)布的數(shù)目并不能準(zhǔn)確的確定用戶(hù)的活躍程度,應(yīng)該結(jié)合最近發(fā)布的評(píng)論、登錄的次數(shù)等一起聯(lián)合作為活躍程度評(píng)判的標(biāo)準(zhǔn)。
綜合活躍度的計(jì)算可以使用:綜合活躍度(GA)=論文數(shù)目*C1+評(píng)論數(shù)目*C2+登錄系統(tǒng)次數(shù)*C3+興趣小組數(shù)目*C4。不同的用戶(hù)統(tǒng)計(jì)方案可以使用不同的系數(shù),期望關(guān)注登錄次數(shù)的統(tǒng)計(jì)結(jié)果,可以將C3 的百分比提高即可。
有關(guān)于熱門(mén)用戶(hù)的統(tǒng)計(jì)不需要更多的算法設(shè)計(jì),SQL 查詢(xún)就可以獲得所有的相關(guān)統(tǒng)計(jì)結(jié)果,計(jì)算出綜合的活躍度,并通過(guò)用戶(hù)的相關(guān)性推送給用戶(hù)。在所有用戶(hù)的基礎(chǔ)上,可以增加相關(guān)領(lǐng)域用戶(hù)的熱門(mén)用戶(hù)統(tǒng)計(jì),提高用戶(hù)之間的聯(lián)系。興趣小組內(nèi)的用戶(hù)可以獲得小組內(nèi)最活躍用戶(hù)的統(tǒng)計(jì)結(jié)果信息。用戶(hù)活躍度的信息提供綜合查詢(xún)接口,用戶(hù)可以通過(guò)瀏覽發(fā)表論文數(shù)目最多的100 位用戶(hù)來(lái)從系統(tǒng)中搜尋自己感興趣的用戶(hù),并可以嘗試與其建立聯(lián)系。
與用戶(hù)的信息統(tǒng)計(jì)類(lèi)似,熱門(mén)領(lǐng)域的統(tǒng)計(jì)類(lèi)似,可以從當(dāng)前論文數(shù)目、關(guān)注用戶(hù)數(shù)目來(lái)確定最熱門(mén)的領(lǐng)域。最熱門(mén)的領(lǐng)域信息對(duì)于研究人員來(lái)說(shuō),是一個(gè)非常有趣的信息。但是在系統(tǒng)的初期這樣的信息不會(huì)特別準(zhǔn)確,只有大量的樣本信息已經(jīng)存在后,才能讓相關(guān)的統(tǒng)計(jì)比較準(zhǔn)確。統(tǒng)計(jì)信息提供給平臺(tái)用戶(hù)訪(fǎng)問(wèn),用戶(hù)可以通過(guò)這樣的統(tǒng)計(jì)信息篩選出當(dāng)前最熱門(mén)的領(lǐng)域。
領(lǐng)域內(nèi)最熱門(mén)的引用統(tǒng)計(jì)是一個(gè)非常重要的信息,用戶(hù)可以了解到當(dāng)前該領(lǐng)域里被其它研究人員使用最多到書(shū)籍、論文等信息。這項(xiàng)統(tǒng)計(jì)功能的算法并不復(fù)雜,一旦論文的分析成功提取出所有的引用數(shù)據(jù)后,通過(guò)SQL 的查詢(xún)就可以獲取該領(lǐng)域里被引用最多的論文信息。該項(xiàng)統(tǒng)計(jì)也同樣需要非常大量的樣本數(shù)據(jù),越多的數(shù)據(jù),才能夠獲得準(zhǔn)確的熱門(mén)引用統(tǒng)計(jì)結(jié)果。論文引用信息需要單獨(dú)存放,一旦分析完論文后,可以查詢(xún)論文中的引用是否存在,如果存在則該引用的被引用數(shù)加一。
一旦系統(tǒng)有了大量的樣本數(shù)據(jù)后,圍繞著論文信息、用戶(hù)信息、類(lèi)型、領(lǐng)域等數(shù)據(jù)生成更多等相關(guān)性信息。如何使用這些信息來(lái)發(fā)掘出更多的隱藏關(guān)聯(lián),是大數(shù)據(jù)分析領(lǐng)域的重要課題。本系統(tǒng)由于時(shí)間的限制無(wú)法進(jìn)一步的開(kāi)展相關(guān)的數(shù)據(jù)挖掘技術(shù)的研究工作,但是海量數(shù)據(jù)的存在,為后續(xù)的研究工作奠定基礎(chǔ)。在本研究中,將重點(diǎn)放在如何利用現(xiàn)有數(shù)據(jù),構(gòu)建推薦功能的技術(shù)。
大量的樣本數(shù)據(jù)和用戶(hù)評(píng)論和論文查詢(xún)的數(shù)據(jù),就可以構(gòu)成一套協(xié)作型過(guò)濾(Collaborative filtering)技術(shù)。該技術(shù)通常的做法就是對(duì)一大群人進(jìn)行搜索,并從中找出與某一個(gè)用戶(hù)興趣相近的推薦。協(xié)作型過(guò)濾是David Goldberg 在1992 年在施樂(lè)帕克研究中心(Xerox PARC) 的一篇題為《Using collaborative filtering to weave an information tapestry》的論文中首次提出的術(shù)語(yǔ),在論文中所設(shè)計(jì)的系統(tǒng),可以允許人們根據(jù)自己對(duì)文檔感興趣的程度為其添加標(biāo)注,并利用這一信息為他人進(jìn)行文檔過(guò)濾。
根據(jù)上述的說(shuō)明,可以通過(guò)用戶(hù)使用系統(tǒng)時(shí)的偏好分析,獲取與用戶(hù)最相似的用戶(hù)的使用偏好,并推薦給用戶(hù)相關(guān)信息。這樣就比單純通過(guò)用戶(hù)是否在一個(gè)領(lǐng)域、或者在一個(gè)興趣小組內(nèi)更加具有廣泛性。畢竟靜態(tài)的研究領(lǐng)域的劃分,有時(shí)很難真正的標(biāo)識(shí)出用戶(hù)的正在喜好。但協(xié)作型過(guò)濾算法就可以做到。目前廣泛在購(gòu)物網(wǎng)站上使用的推薦功能就是該應(yīng)用的一個(gè)很好例證。
通過(guò)上述的算法根據(jù)用戶(hù)興趣計(jì)算出了興趣相近的用戶(hù)后,就能夠根據(jù)設(shè)計(jì),將興趣相近用戶(hù)的喜好,推薦給當(dāng)前用戶(hù)。系統(tǒng)可以提供的推薦功能包括:當(dāng)用戶(hù)查詢(xún)、瀏覽以及下載某個(gè)論文后,可以立即根據(jù)與其興趣相似度最高的用戶(hù)的興趣,向其推薦可能感興趣的論文信息。由于興趣相似用戶(hù)感興趣的論文可能非常多,因此在獲取了論文列表后,可以進(jìn)一步根據(jù)與當(dāng)前用戶(hù)所操作的論文分析出最相近的論文,并推薦給用戶(hù)。相關(guān)的算法都已經(jīng)進(jìn)行過(guò)討論。
使用上述的方案,就能夠構(gòu)建一個(gè)相對(duì)準(zhǔn)確的論文推薦系統(tǒng),幫助研究人員從海量的論文信息中發(fā)現(xiàn)自己最感興趣的部分。