邵明陽(yáng) 單菁



摘要:為從DBLP數(shù)據(jù)集中挖掘出作者研究興趣,提出了基于DBLP數(shù)據(jù)集中有效信息的作者研究興趣挖掘模型,主要是利用了數(shù)據(jù)集中作者姓名和論文題目進(jìn)行研究興趣的挖掘。因?yàn)镈BLP數(shù)據(jù)集的元數(shù)據(jù)以XML格式存儲(chǔ),因此采用SAX解析器對(duì)其進(jìn)行解析。解析出有用信息后,提出了一種基于索引的數(shù)據(jù)存儲(chǔ)方式。由于作者研究興趣詞匯主要來(lái)自數(shù)據(jù)集中論文的題目,因此將題目劃分短語(yǔ)后,根據(jù)短語(yǔ)的重要度,確定專家的研究興趣詞匯。經(jīng)實(shí)驗(yàn)表明,該系統(tǒng)的運(yùn)行速度較快,能較好地提取出作者的研究興趣信息。
關(guān)鍵詞: 研究興趣挖掘; DBLP數(shù)據(jù)集; 數(shù)據(jù)存儲(chǔ); 格式解析; 短語(yǔ)劃分
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)27-0009-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
隨著計(jì)算機(jī)領(lǐng)域的快速發(fā)展,不論是高?;蛘哌€是研究所發(fā)表的論文的數(shù)量也是逐年上升。研究人員通過(guò)在期刊和會(huì)議上發(fā)表他們的研究成果,然后被更廣泛的受眾所消費(fèi),從而導(dǎo)致合作和引用,進(jìn)而使創(chuàng)新和突破性的想法得以迅速傳播[1]。而各類國(guó)際期刊或者會(huì)議發(fā)表的論文會(huì)被收錄進(jìn)DBLP,這使得DBLP這個(gè)英文文獻(xiàn)數(shù)據(jù)網(wǎng)站的數(shù)據(jù)集也越發(fā)龐大,目前DBLP已收集了超過(guò)500萬(wàn)種出版物的信息。DBLP最初功能為數(shù)據(jù)庫(kù)系統(tǒng),為計(jì)算機(jī)領(lǐng)域提供文獻(xiàn)的檢索功能,它所收錄的期刊和會(huì)議論文質(zhì)量較高,而且更新非常迅速,這使得它很好地反映了國(guó)際研究的前沿方向。它的數(shù)據(jù)并未采用數(shù)據(jù)庫(kù)存儲(chǔ),而是采用了可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)格式存儲(chǔ)元數(shù)據(jù),元數(shù)據(jù)包括了標(biāo)題、作者、摘要、出版單位、日期等信息,因?yàn)镈BLP數(shù)據(jù)集提供的信息有限,因而進(jìn)行作者研究興趣挖掘的有效信息只有作者姓名和論文題目。
2 相關(guān)研究
對(duì)于興趣的挖掘目前國(guó)內(nèi)已有不少學(xué)者在進(jìn)行相關(guān)算法的研究和改進(jìn)。劉小捷等人[2]提出了一種基于維基百科類別圖的推特用戶興趣挖掘系統(tǒng),該方法使用個(gè)性化PageRank算法[3],通過(guò)在維基百科類別圖上隨機(jī)游走的方式擴(kuò)展用戶興趣度。池雪花等人[4]通過(guò)基于學(xué)術(shù)論文研究學(xué)者的興趣標(biāo)簽,計(jì)算學(xué)者和興趣標(biāo)簽的相似度,作為興趣標(biāo)簽的匹配度。傳統(tǒng)的用戶興趣研究主要基于統(tǒng)計(jì)和聚類等方法[5],例如黃鎮(zhèn)圣對(duì)高校圖書(shū)館用戶進(jìn)行研究[6]。石豪等人考慮到了用戶之間的相似性[7]。易明等人從用戶、資源、標(biāo)簽的聚類進(jìn)行用戶興趣挖掘[8]。隨著社交網(wǎng)絡(luò)的興起,有不少研究人員通過(guò)社交數(shù)據(jù)進(jìn)行興趣的提取,Weng等人采用LDA算法挖掘主題分布,進(jìn)而獲取用戶的興趣特征[9]。Hung等人通過(guò)用戶自定義標(biāo)簽、用戶收藏等設(shè)置以及社交關(guān)系,構(gòu)建用戶的興趣模型[10]。以上研究是通過(guò)大量的文本和各種不同的數(shù)據(jù)集進(jìn)行興趣挖掘,而本文目的是基于DBLP數(shù)據(jù)集,試圖快速挖掘出每位研究者的研究興趣?;贒BLP提供的信息,我們?cè)噲D通過(guò)每位作者的論文題目找出其感興趣的研究方向,本文主要解決了如下兩個(gè)問(wèn)題:
(1) 通過(guò)Python語(yǔ)言標(biāo)準(zhǔn)庫(kù)中simple API for XML(SAX)解析XML格式文件,由于只有作者姓名和論文題目為本文有用信息,所以可以選擇過(guò)濾掉其他信息。提取信息后,考慮到空間復(fù)雜度和時(shí)間復(fù)雜度,自建索引提高檢索速度。
(2) 得到論文題目后,我們選擇采用速度較快的Rapid Automatic Keyword Extraction(Rake)算法[11]對(duì)論文題目的關(guān)鍵詞進(jìn)行提取,然后根據(jù)關(guān)鍵詞的重要度確定大于指定閾值的詞匯作為作者的研究興趣。
3 作者研究興趣挖掘模型
作者研究興趣挖掘過(guò)程中一個(gè)很重要的步驟就是論文題目的關(guān)鍵詞提取,本文通過(guò)使用Rake算法進(jìn)行關(guān)鍵詞的提取,目前主要的關(guān)鍵詞提取算法除Rake外還包括基于TF-IDF詞頻統(tǒng)計(jì)的關(guān)鍵詞抽取[12],基于詞圖模型的關(guān)鍵詞抽取(TextRank)[13]等算法。TF-IDF算法有一個(gè)較大的缺點(diǎn):需要一個(gè)較為全面的語(yǔ)料庫(kù)來(lái)支持一篇文檔的關(guān)鍵詞提取,這樣的做法時(shí)間開(kāi)銷或者空間開(kāi)銷較大,不適合簡(jiǎn)單快速的關(guān)鍵詞提取。而TextRank利用投票機(jī)制來(lái)為文本中的詞語(yǔ)進(jìn)行加權(quán),從而利用權(quán)重排序得到關(guān)鍵字,關(guān)鍵字提取的過(guò)程中僅利用了文檔自身的信息,而不需要對(duì)多篇文檔學(xué)習(xí)訓(xùn)練,因此比較簡(jiǎn)潔,但是由于算法過(guò)程中需要構(gòu)建詞圖和迭代計(jì)算,對(duì)于大量數(shù)據(jù)來(lái)說(shuō),運(yùn)行速度太慢,不易收斂,Rake算法則很好地解決了以上問(wèn)題。
整個(gè)研究興趣挖掘過(guò)程大約分為三個(gè)部分,首先是對(duì)DBLP數(shù)據(jù)集的XML格式的解析,過(guò)濾掉一些無(wú)用信息,只保留作者姓名和論文題目等關(guān)鍵性信息,其次是對(duì)解析出的論文題目進(jìn)行關(guān)鍵詞提取,最后是將作者與關(guān)鍵詞的關(guān)聯(lián),通過(guò)作者姓名搜索按照得分大于指定閾值的關(guān)鍵詞作為其研究興趣。
3.1 基于DBLP數(shù)據(jù)集提取信息
3.1.1 數(shù)據(jù)集解析
由于DBLP的元數(shù)據(jù)由XML格式進(jìn)行存儲(chǔ),所以并不能直接分析。在Python中提供的解析XML的API接口主要有兩種:Simple API XML(SAX)和Document Object Model(DOM)。兩種接口的解析思路不同,各自的特點(diǎn)如下:
(1) SAX解析器。它是事件驅(qū)動(dòng)型的,首先會(huì)對(duì)整個(gè)文檔順序掃描,當(dāng)掃描到開(kāi)始和結(jié)束標(biāo)簽等信息時(shí),會(huì)觸發(fā)事件處理函數(shù),對(duì)事件做相應(yīng)處理,直至文檔結(jié)束。SAX解析時(shí)邊掃描,邊解析,流式讀取文件,速度較快,但是操作較復(fù)雜。
(2) DOM解析器。DOM解析時(shí),會(huì)把文件一次性的讀入內(nèi)存,并構(gòu)建一棵樹(shù)狀結(jié)構(gòu),通過(guò)對(duì)樹(shù)的遍歷解析出文件的內(nèi)容。這樣的缺點(diǎn)是當(dāng)文件過(guò)大時(shí),占用大量的內(nèi)存空間,當(dāng)只對(duì)文檔中某些內(nèi)容感興趣時(shí),執(zhí)行效率較低。
因?yàn)镈BLP數(shù)據(jù)集較大,本文采用了SAX解析的方式,避免了大量占用內(nèi)存,運(yùn)行效率較高。
3.1.2 數(shù)據(jù)集解析
選定SAX解析后,下一步是提取出作者和題目,為了節(jié)省空間和以后查找信息的快速方便,并未將提取出的作者和題目信息放入數(shù)據(jù)庫(kù),而是以文本形式進(jìn)行存儲(chǔ),為了查找得快速,將每條題目中加入了索引。經(jīng)過(guò)多次隨機(jī)測(cè)試,創(chuàng)建索引需要耗費(fèi)幾分鐘時(shí)間,但索引建立好后查找的速度較快,在幾秒鐘之內(nèi)。具體算法流程如下:
(1) 用SAX開(kāi)始順序讀取文件,從第一個(gè)元數(shù)據(jù)開(kāi)始從0編號(hào),此編號(hào)作為當(dāng)前論文題目的索引,同時(shí)將作者姓名作為關(guān)鍵字存入Python的字典數(shù)據(jù)結(jié)構(gòu)中,將索引號(hào)作為其值,并且將論文題目存入列表當(dāng)中,這樣順序解析下去。
(2) 將得到的字典和列表中的信息,分別作為文本永久化到電腦當(dāng)中,得到作者的文本文件和論文題目的文本文件,這兩個(gè)文件也是后續(xù)操作的基礎(chǔ)。
(3) 將文件加載到內(nèi)存,分別讀入到字典和列表中,然后通過(guò)在字典中查找作者姓名得到此作者所有的題目索引,進(jìn)而在列表中找到論文題目,并輸出。
通過(guò)以上步驟便從DBLP中提取到了相關(guān)信息,并且進(jìn)行了存儲(chǔ),這些將作為以后步驟的基礎(chǔ)。
3.2 通過(guò)Rake算法提取關(guān)鍵詞
3.2.1 Rake算法介紹
相較于中文來(lái)說(shuō),Rake算法非常適合對(duì)英文文本中的多單詞短語(yǔ)關(guān)鍵字進(jìn)行提取,在英文文本中的短語(yǔ)關(guān)鍵字大多數(shù)是不會(huì)含有停用詞和標(biāo)點(diǎn)符號(hào)的,Rake算法正是根據(jù)這一點(diǎn)來(lái)進(jìn)行短語(yǔ)的劃分。Rake關(guān)鍵詞提取算法中的幾個(gè)概念定義如下:
定義1 (停用詞):停用詞大多數(shù)情況下指兩類,一類是語(yǔ)言中的一些功能詞,比如英文中的“the、on、which”等詞,具有語(yǔ)法作用,而不具備實(shí)際意義。另一類是詞匯詞,比如“need”等,這樣的詞并不會(huì)對(duì)詞組的劃分起到作用。停用詞在語(yǔ)言處理中需要被過(guò)濾掉。
定義2 (詞頻):詞頻指單詞在文本中出現(xiàn)的次數(shù),記為wordFrequency。
定義3 (詞共現(xiàn)度):詞共現(xiàn)度指一個(gè)單詞在整篇文檔中非重復(fù)共現(xiàn)詞的數(shù)量,記為wordDegree。
Rake算法的大致流程如下:首先將輸入的文本按照標(biāo)點(diǎn)符號(hào)劃分為句子集合,然后對(duì)于每一個(gè)句子依照停用詞劃分為短語(yǔ)集合,將這些短語(yǔ)加入最終提取的關(guān)鍵詞的候選詞中。這些短語(yǔ)又是由單詞組成,這樣通過(guò)詞頻和詞共現(xiàn)度之間的關(guān)系計(jì)算出每個(gè)單詞的得分,在一個(gè)詞組中將每一個(gè)單詞的分?jǐn)?shù)相加,便可以得到整個(gè)詞組的分?jǐn)?shù)。單詞分?jǐn)?shù)計(jì)算公式如下:
[wordScore=wordDegreewordFrequency]? ? ? ? ? ? ? ? ? ? ?(1)
即單詞的分?jǐn)?shù)就是詞的共現(xiàn)度除以詞頻,此公式是Rake算法的核心。接下來(lái)就是將一個(gè)短語(yǔ)中單詞的分?jǐn)?shù)相加得到短語(yǔ)的分?jǐn)?shù),然后依照分?jǐn)?shù)將短語(yǔ)排序,排序越靠前的短語(yǔ)就越重要。
3.2.2 使用Rake算法提取題目關(guān)鍵詞
由于使用Rake算法進(jìn)行關(guān)鍵詞提取過(guò)程中需要使用停用詞,所以在代碼的具體實(shí)現(xiàn)過(guò)程中,我們采用了Python庫(kù)中的nltk模板語(yǔ)料庫(kù)的停用詞來(lái)對(duì)短語(yǔ)進(jìn)行劃分。Rake算法對(duì)文本提取的過(guò)程中,需要將文本劃分為句子然后再進(jìn)行處理,而筆者的輸入是一個(gè)一個(gè)的論文題目,所以筆者將論文題目視作句子,作為輸入,這樣就不需要再對(duì)文本進(jìn)行劃分為句子的步驟,具體的算法流程如下:
(1) 首先將保存論文題目的文件讀入內(nèi)存,然后用Rake算法將每一個(gè)論文題目以單句的形式進(jìn)行處理,得到關(guān)鍵詞及其在整個(gè)文檔中總的分?jǐn)?shù),并以字典的形式儲(chǔ)存。
(2) 依照順序讀入論文題目,將每一個(gè)論文題目依據(jù)停用詞分出短語(yǔ),然后利用上述的字典得到短語(yǔ)總的分?jǐn)?shù),然后將這一條論文題目的所有短語(yǔ)及其分?jǐn)?shù)寫(xiě)入到文件,依次讀取下去。這樣就可以保證索引順序不會(huì)打亂,為以后的操作提供方便。
通過(guò)以上這些步驟便從論文題目中提取出了關(guān)鍵詞,并以文件的形式存儲(chǔ)下來(lái)。
3.3 依照作者搜索技能
作者研究興趣挖掘流程如圖1所示。
由前面所做的工作我們得到了保存作者姓名的文檔,保存論文題目的文檔和保存題目關(guān)鍵詞的文檔。有了這些信息我們可以通過(guò)搜索作者姓名找出作者擅長(zhǎng)的研究領(lǐng)域,具體算法流程如下:
(1) 首先將姓名文檔和關(guān)鍵詞文檔讀入內(nèi)存,姓名文檔讀為字典,其鍵為姓名,其值為索引列表,關(guān)鍵詞文檔讀為列表。
(2) 將要查詢的姓名通過(guò)字典找出對(duì)應(yīng)的索引列表,將這些索引通過(guò)關(guān)鍵詞列表找到對(duì)應(yīng)的值,即每一個(gè)題目的關(guān)鍵詞,將這些關(guān)鍵詞保存在一起然后使用集合(set)去重,最后將這些關(guān)鍵詞輸出。
(3) 根據(jù)關(guān)鍵詞的得分,得出作者最擅長(zhǎng)的某些領(lǐng)域,其中在計(jì)算關(guān)鍵詞的得分時(shí),考慮到作者的署名位序?qū)ρ芯颗d趣的挖掘有很大影響,署名越靠前的作者對(duì)文獻(xiàn)的研究興趣貢獻(xiàn)度越大,署名靠后的因逐級(jí)給予更少的得分,因此將署名位序加入關(guān)鍵詞得分計(jì)算公式中。
4 實(shí)驗(yàn)
4.1 實(shí)驗(yàn)環(huán)境
操作系統(tǒng):Window 10 專業(yè)版64位。
處理器:英特爾酷睿i7-9750H。
內(nèi)存:16G(DDR4 2666MHz)。
硬盤(pán):1T機(jī)械硬盤(pán)。
4.2 實(shí)驗(yàn)過(guò)程和結(jié)果
實(shí)驗(yàn)數(shù)據(jù)集采用DBLP數(shù)據(jù)集,對(duì)數(shù)據(jù)解析處理后,使用Rake算法將題目中的關(guān)鍵詞提取出來(lái),并記錄和存儲(chǔ)。最后按照作者的名字將所有關(guān)鍵詞按照得分排序,將得分靠前的一些關(guān)鍵詞作為作者感興趣的研究方向。表1展示了部分運(yùn)行結(jié)果及作者主頁(yè)中對(duì)自己研究興趣的描述。
為了測(cè)試系統(tǒng)的速度,記錄了各部分的運(yùn)行時(shí)間,結(jié)果如表2所示:
以上三個(gè)操作最耗費(fèi)時(shí)間,剩下的操作在內(nèi)存中完成,不會(huì)占用過(guò)多的時(shí)間,考慮到DBLP數(shù)據(jù)集大約有500萬(wàn)條數(shù)據(jù),實(shí)驗(yàn)表明本系統(tǒng)運(yùn)行速度相對(duì)較快,可以滿足日常的任務(wù)需求。
5 結(jié)論
本文專注于基于DBLP的作者研究興趣挖掘,提出了一種通過(guò)挖掘題目中的關(guān)鍵詞獲得作者研究興趣的方法。該方法首先需要對(duì)DBLP的數(shù)據(jù)進(jìn)行解析,獲得解析后的作者姓名信息和論文題目信息,并為了檢索的快速在論文題目的信息上建立了索引,接下來(lái)就是將獲得的論文題目信息進(jìn)行關(guān)鍵詞的抽取,以此作為研究興趣,并生成關(guān)鍵詞的文檔進(jìn)行保存,基于以上工作,接下來(lái)就可以通過(guò)作者姓名,將關(guān)鍵詞信息聯(lián)系起來(lái),進(jìn)行搜索。最后通過(guò)實(shí)驗(yàn)表明,本系統(tǒng)運(yùn)行速度較為快速,可以較好地提取出作者的研究興趣。
參考文獻(xiàn):
[1] Wu Y,Venkatramanan S,Chiu D M.A population model for academia:case study of the computer science community using DBLP bibliography 1960-2016[J].IEEE Transactions on Emerging Topics in Computing,2021,9(1):258-268.
[2] 劉小捷,呂曉強(qiáng),王曉玲,等.基于維基百科類別圖的推特用戶興趣挖掘[J].計(jì)算機(jī)科學(xué),2019,46(9):79-84.
[3] Page Lawrence, Sergey Brin, Rajeev Motwani, et al. The PageRank citation ranking: bringing order to the Web[J]. Computer Science,1998,1(29):1-17.
[4] 池雪花,劉麗帆,章成志.基于學(xué)術(shù)論文的學(xué)者研究興趣標(biāo)簽發(fā)現(xiàn)研究[J].情報(bào)工程,2019,5(2):28-39.
[5] 石光蓮,楊敏.基于FCA的Folksonomy用戶興趣研究述評(píng)[J].現(xiàn)代情報(bào),2017,37(5):172-177.
[6] 黃鎮(zhèn)圣.基于Web瀏覽的高校圖書(shū)館用戶個(gè)性化研究[J].科技信息,2009(12):183.
[7] 石豪,李紅娟,賴雯,等.基于folksonomy標(biāo)簽的用戶分類研究[J].圖書(shū)情報(bào)工作,2011,55(2):117-120.
[8] 易明,鄧衛(wèi)華.基于標(biāo)簽的個(gè)性化信息推薦研究綜述[J].情報(bào)理論與實(shí)踐,2011,34(3):126-128.
[9] Weng J S,Lim E P,Jiang J,et al.TwitterRank:finding topic-sensitive influential twitterers[C]//Proceedings of the third ACM international conference on Web search and data mining.New York,New York,USA.New York:ACM,2010:261-270.
[10] Hung C. Huang Y C, Hsu J Y, et al. Tag-based user profiling for social media recommendation[C] //Proceedings of the 2008 Workshop on Intelligent Techniques for Web Personalization and Recommender Systems at AAAI. Hawaii, USA, 2008:49-55.
[11] Stuart Rose, Dave Engel, Nicholas Charles, et al. Automatic keyword extraction from individual documents[J]. Text Mining: Applications and Theory, 2010,3(4):1-20.
[12] Aizawa A . An information-theoretic perspective of tf-idf measures[J]. Information Processing & Management, 2003, 39(1):45-65.
[13] Mihalcea R, Tarau P. Textrank: Bringing order into text[C] //Proceedings of the 2004 conference on empirical methods in natural language processing. 2004: 404-411.
【通聯(lián)編輯:王力】