寧莉莉
(咸陽職業技術學院,陜西 咸陽712000)
整個系統對于文檔數據的分析主要從數據采集、文檔分析、信息分類、數據統計以及關系發現的5 個步驟逐步實現。
主要是在用戶提交文檔時由系統提示用戶填寫的基本信息,該功能比較簡單,可以和文檔分析一起作為第一步的數據獲取功能,主要的工作步驟如下圖所示:

圖1 數據分析過程示意圖
上面的過程并不一定對每一次論文分析適用,每一個步驟的信息都能夠為整個系統提供所需要的論文數據,每一個步驟也都能夠為下一步工作提供輸入的數據和信息。下面就根據上圖的順序,逐一研究和討論相關的實現算法。
文檔的操作與分析技術主要研究的有兩大類:分析技術和生成技術。除了用戶所輸入的論文的基本信息外,為了提高后面文檔分析算法的有效性,需要對文檔進行深度的分析工作,因為有些內容,僅憑用戶的輸入永遠很難完全獲得,而且很多情況下,用戶可能會選擇不深入相關信息。雖然可以強迫用戶輸入,但是這樣的必填項目不能過多,否則會降低系統的友好程度。而文檔的生成技術,是系統自動生成論文所必須的技術。
在完成了文檔的中文分詞后,算法就可以獲的全部文檔的基本內容,這些內容以中文詞組的方式存儲在數組中可供分析。“近年來,借助模式識別算法,文本分類技術飛速發展。文本分類大致分為幾個要素:文本向量模型表示、文本特征選擇和文本訓練分類器。目前比較流行的分類方法主要有SVM、改進余弦相似度、貝葉斯方法、神經網絡、K2 最近鄰方法、遺傳算法、粗糙集等”。使用這些技術,就可以根據論文的基本內容,對論文的領域和類型進行歸類。
余弦相似度分類技術是利用上面所計算的TF-IDF 結果與當前數據庫中保存的已知類型的文檔中的關鍵詞TF-IDF 進行比較,以此來自動判斷當前所分析的文檔與已知文檔是否一致。余弦相似度越接近的論文就應該認為屬于同一類型。余弦相似度分類算法最常見的應用就是計算文本相似度。通過將兩個文本分別按照所包含的詞建立向量,向量可以通過分析文本包含詞語的數量,或者以論文為例可以簡化為關鍵詞和引用論文,計算兩個向量的余弦值,就可以知道兩個文本在統計學方法中他們的相似度。
樣本信息的收集過程可以如下圖所示的過程實現:

圖2 樣本信息收集及存儲結構示意圖
有了大量的精確度較高的樣本信息,系統就能夠對任意的新論文信息有效的分類。除了上面所研究的余弦相似度算法外,還有一個比較重要,同時分類效果也非常好的算法是樸素貝葉斯分類算法。與余弦相似度算法相比,貝葉斯分類算法利用了概率論的知識,通過比較樣本庫中大量的數據的概率與當前分析文檔的概率,來確定該論文屬于某一類型的可信程度。貝葉斯分類算法的基礎是一個明顯的常識,即同一條詞條在不同類型的文本中出現的概率通常是不一樣的,很多詞條只會在某些類別的文本中出現,例如“微軟”、“索尼”、“喬布斯”等詞條出現在有關戰爭的文本中的概率要遠遠低于“師團”的概率。因此,通過概率的計算和比較,就能夠確定文本的分類。
論文的分析和分類需要花費大量的計算資源,而算法的運行效率會隨著論文數量、樣本信息等數據量的增加而迅速下降,而對于公用的系統,運行的效率決定著用戶的體驗度和繼續使用該系統的信心。解決效率問題的一個最直接的手段就是提高計算機的運行效率,但是這樣的花費將會非常巨大,而且對于一個新系統對計算機效率的估計也十分的困難,開始用戶少的時候可能不需要特別快的系統,而隨著用戶和數據的增長則需要增加計算機的性能。
解決上述問題的一個可能方案是本研究所提出的使用公有云計算平臺,來解決系統的擴展性難題。但是再快的計算機系統也會存在極限,但是對于互聯網系統來說,數據量的增長早已超過計算機性能的增長。雖然使用云計算平臺,但是如果只是依靠單機的性能來完成算法運行的任務,則很快就會碰到效率的瓶頸。因此,更加有效的方案應該是充分的利用分布式計算技術,將分析算法盡可能的分配到不同到計算機上同時并行。則可以解決上述的難題。
目前可能的選擇是利用Storm 這樣的并行計算框架來實現高并行的算法實現。Storm 框架利用集群系統來完成相關的并行計算,并且能夠動態的可靠管理運行在計算機集群上的算法片段。Storm 的框架研究不是本研究的重點,但是通過研究了該框架的具體功能后發現,本系統的論文分析和歸類算法,完全可以適應Storm 框架的并行計算要求。Storm 框架設計之初就是為了滿足海量的文本數據的并行分析需求。
相對于論文分析與歸類算法,論文的統計算法相對難度會低一些。相關的功能的信息對用戶非常有用,但是算法只是利用系統所存儲的所有數據進行統計計算。因此對于論文統計算法的研究重要的是相關數據的存儲結構的設計問題。所有的統計結果都是通過不同的角度來對平臺內的用戶、論文或者學術圈情況進行分析,并且供感興趣的用戶或者研究人員進行查詢或者分析。各個角度的統計信息之間,平臺并不提供統一的比較。
最熱論文的統計主要是解決最熱論文的定義問題。可以使用四種不同的方式或計算方法實現:查詢次數最多、下載次數最多、引用次數最多、評論次數最多。前面三種標準可以反映該論文在整個系統內部整體的活躍程度,而評論次數最多則可以認為當前的一個短期時間內最熱火的論文。
最熱用戶既是最活躍用戶,可以通過如下三種數據進行標識:論文數目最多、評論最多(包括評論別人或者獲得評論最多)、登錄系統次數最多、加入的興趣小組最多。這些信息在數據庫中都有直接的存儲,因此統計分析也十分簡單。最熱用戶可以與最熱論文一起,在用戶登錄系統后直接推送給用戶。可以包括系統內部以及用戶所關注的相關領域內部等不同的統計結果信息。
相關的查詢比較簡單,主要是幾個相關表格的聯合查詢,以半年內上傳論文的數目的查詢為例,相關SQL 示例如下所示。依靠論文發布的數目并不能準確的確定用戶的活躍程度,應該結合最近發布的評論、登錄的次數等一起聯合作為活躍程度評判的標準。
綜合活躍度的計算可以使用:綜合活躍度(GA)=論文數目*C1+評論數目*C2+登錄系統次數*C3+興趣小組數目*C4。不同的用戶統計方案可以使用不同的系數,期望關注登錄次數的統計結果,可以將C3 的百分比提高即可。
有關于熱門用戶的統計不需要更多的算法設計,SQL 查詢就可以獲得所有的相關統計結果,計算出綜合的活躍度,并通過用戶的相關性推送給用戶。在所有用戶的基礎上,可以增加相關領域用戶的熱門用戶統計,提高用戶之間的聯系。興趣小組內的用戶可以獲得小組內最活躍用戶的統計結果信息。用戶活躍度的信息提供綜合查詢接口,用戶可以通過瀏覽發表論文數目最多的100 位用戶來從系統中搜尋自己感興趣的用戶,并可以嘗試與其建立聯系。
與用戶的信息統計類似,熱門領域的統計類似,可以從當前論文數目、關注用戶數目來確定最熱門的領域。最熱門的領域信息對于研究人員來說,是一個非常有趣的信息。但是在系統的初期這樣的信息不會特別準確,只有大量的樣本信息已經存在后,才能讓相關的統計比較準確。統計信息提供給平臺用戶訪問,用戶可以通過這樣的統計信息篩選出當前最熱門的領域。
領域內最熱門的引用統計是一個非常重要的信息,用戶可以了解到當前該領域里被其它研究人員使用最多到書籍、論文等信息。這項統計功能的算法并不復雜,一旦論文的分析成功提取出所有的引用數據后,通過SQL 的查詢就可以獲取該領域里被引用最多的論文信息。該項統計也同樣需要非常大量的樣本數據,越多的數據,才能夠獲得準確的熱門引用統計結果。論文引用信息需要單獨存放,一旦分析完論文后,可以查詢論文中的引用是否存在,如果存在則該引用的被引用數加一。
一旦系統有了大量的樣本數據后,圍繞著論文信息、用戶信息、類型、領域等數據生成更多等相關性信息。如何使用這些信息來發掘出更多的隱藏關聯,是大數據分析領域的重要課題。本系統由于時間的限制無法進一步的開展相關的數據挖掘技術的研究工作,但是海量數據的存在,為后續的研究工作奠定基礎。在本研究中,將重點放在如何利用現有數據,構建推薦功能的技術。
大量的樣本數據和用戶評論和論文查詢的數據,就可以構成一套協作型過濾(Collaborative filtering)技術。該技術通常的做法就是對一大群人進行搜索,并從中找出與某一個用戶興趣相近的推薦。協作型過濾是David Goldberg 在1992 年在施樂帕克研究中心(Xerox PARC) 的一篇題為《Using collaborative filtering to weave an information tapestry》的論文中首次提出的術語,在論文中所設計的系統,可以允許人們根據自己對文檔感興趣的程度為其添加標注,并利用這一信息為他人進行文檔過濾。
根據上述的說明,可以通過用戶使用系統時的偏好分析,獲取與用戶最相似的用戶的使用偏好,并推薦給用戶相關信息。這樣就比單純通過用戶是否在一個領域、或者在一個興趣小組內更加具有廣泛性。畢竟靜態的研究領域的劃分,有時很難真正的標識出用戶的正在喜好。但協作型過濾算法就可以做到。目前廣泛在購物網站上使用的推薦功能就是該應用的一個很好例證。
通過上述的算法根據用戶興趣計算出了興趣相近的用戶后,就能夠根據設計,將興趣相近用戶的喜好,推薦給當前用戶。系統可以提供的推薦功能包括:當用戶查詢、瀏覽以及下載某個論文后,可以立即根據與其興趣相似度最高的用戶的興趣,向其推薦可能感興趣的論文信息。由于興趣相似用戶感興趣的論文可能非常多,因此在獲取了論文列表后,可以進一步根據與當前用戶所操作的論文分析出最相近的論文,并推薦給用戶。相關的算法都已經進行過討論。
使用上述的方案,就能夠構建一個相對準確的論文推薦系統,幫助研究人員從海量的論文信息中發現自己最感興趣的部分。