段建勇 魯朝陽(yáng) 王昊 李欣 何麗
1. 北方工業(yè)大學(xué)信息學(xué)院 北京 100144;
2. 富媒體數(shù)字出版內(nèi)容組織與知識(shí)服務(wù)重點(diǎn)實(shí)驗(yàn)室 北京 100038;
3. 北方工業(yè)大學(xué)CNONIX 國(guó)家標(biāo)準(zhǔn)應(yīng)用與推廣實(shí)驗(yàn)室 北京 100144
當(dāng)今社會(huì)信息高速發(fā)達(dá),每天發(fā)表在社交平臺(tái)上的內(nèi)容不計(jì)其數(shù),其中絕大部分都是短文本。對(duì)于時(shí)間有限的人們來(lái)說(shuō),想要快速檢索自己感興趣的內(nèi)容就成了一個(gè)亟待解決的問(wèn)題。關(guān)鍵詞可以幫助讀者快速了解一篇文檔的主題內(nèi)容,通過(guò)關(guān)鍵詞抽取技術(shù)可以在海量的文本中將人們最關(guān)心的問(wèn)題提取出來(lái)。關(guān)鍵詞通常為一個(gè)或多個(gè)能夠描述文檔主題信息的詞語(yǔ)或者詞組[1]。早期文章的關(guān)鍵詞主要靠的是人工標(biāo)注,這導(dǎo)致關(guān)鍵詞標(biāo)注工作既費(fèi)時(shí)又費(fèi)力。隨著計(jì)算機(jī)技術(shù)的發(fā)展,越來(lái)越多的機(jī)構(gòu)和個(gè)人開(kāi)始研究關(guān)鍵詞抽取技術(shù),已經(jīng)有不少方法在關(guān)鍵詞抽取領(lǐng)域取得了較好的效果。隨著在自然語(yǔ)言處理領(lǐng)域?qū)﹃P(guān)鍵詞抽取方法研究的逐步深入,在多項(xiàng)文本挖掘任務(wù)例如文本摘要、文本分類中都發(fā)揮了重要的作用。比如從最近一天所有用戶發(fā)表的微博中提取出關(guān)鍵詞,就可以知道當(dāng)天人們最關(guān)心的問(wèn)題。但是現(xiàn)有關(guān)鍵詞抽取方法的性能依然較差,距離實(shí)際應(yīng)用還有很長(zhǎng)一段路要走。
傳統(tǒng)的關(guān)鍵詞抽取方法通常只關(guān)注單詞出現(xiàn)的頻率,迭代計(jì)算過(guò)程給與高頻詞較高的權(quán)重。但在短文本中,一些關(guān)鍵詞低頻較低,這導(dǎo)致了關(guān)鍵詞的丟失。本文所采用的數(shù)據(jù)集為大量論文摘要,論文摘要符合一般短文本特征,并且對(duì)應(yīng)作者所標(biāo)注的關(guān)鍵詞基本都能準(zhǔn)確表達(dá)摘要以及文章的核心含義,因此本文以大量論文摘要作為數(shù)據(jù)集進(jìn)行關(guān)鍵詞抽取技術(shù)的研究。本文基于知網(wǎng)提供義原樹(shù)結(jié)合詞林知識(shí)構(gòu)建知識(shí)圖譜,并將知識(shí)融入到TextRank 方法所采用的詞圖模型中,使得構(gòu)建的詞圖不僅包含詞語(yǔ)之間的共現(xiàn)信息,還融入了語(yǔ)義知識(shí)。實(shí)驗(yàn)結(jié)果證明,本文所提出的方法相比傳統(tǒng)TextRank、TD-IDF、Word2Vec 方法有一定提升。
早期的關(guān)鍵詞抽取研究主要是基于統(tǒng)計(jì)的方法,對(duì)候選詞的一些特征進(jìn)行統(tǒng)計(jì),然后根據(jù)統(tǒng)計(jì)的結(jié)果對(duì)候選詞進(jìn)行排序。包括以N-gram、TF-IDF 等指標(biāo)來(lái)評(píng)價(jià)候選詞在文檔中的重要性。TextRank 是基于統(tǒng)計(jì)的圖模型中最為典型的代表,首先通過(guò)詞性標(biāo)簽篩選出文本中的候選詞,其次為在同個(gè)窗口中出現(xiàn)的候選詞之間建立邊,最后賦予每個(gè)節(jié)點(diǎn)相同的初始值并運(yùn)行PageRank 算法直至收斂[2]。SGRank使用單詞的首次出現(xiàn)位置、詞長(zhǎng)等統(tǒng)計(jì)指標(biāo)為候選詞的邊賦值[3]。
隨著關(guān)鍵詞抽取技術(shù)在文本挖掘等領(lǐng)域的深入應(yīng)用,越來(lái)越多的學(xué)者開(kāi)始從事研究相關(guān)工作。Zhang 等[4]利用“全局上下文信息”,提出基于支持向量機(jī)的任務(wù)執(zhí)行方法從文檔中提取關(guān)鍵詞。Beliga 等[5]提出了一種新的基于選擇性的關(guān)鍵字提取方法,該方法從源文本中提取以網(wǎng)絡(luò)表示的關(guān)鍵字。通過(guò)加權(quán)網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)選擇值,將其作為權(quán)重分布在單個(gè)節(jié)點(diǎn)鏈路上的平均值,用于關(guān)鍵詞候選排序和提取過(guò)程。Biswas 等[6]基于圖模型,提出一種無(wú)監(jiān)督關(guān)鍵詞抽取方法,該方法通過(guò)綜合各種影響參數(shù)來(lái)確定關(guān)鍵字的重要性。閆強(qiáng)等[7]將詞語(yǔ)的語(yǔ)義信息引入到TextRank 算法中,改進(jìn)了關(guān)鍵詞抽取效果。還有學(xué)者對(duì)經(jīng)典的TF-IDF 加權(quán)公式進(jìn)行改進(jìn),構(gòu)建一個(gè)綜合考慮多種影響因素的候選關(guān)鍵詞評(píng)分加權(quán)公式;對(duì)SharpICTCLAS分詞進(jìn)行改進(jìn),增加位置標(biāo)注;選擇評(píng)分較高的詞作為候選關(guān)鍵詞,利用詞的位置標(biāo)注進(jìn)行關(guān)鍵詞抽取優(yōu)化操作,將“切碎”的候選關(guān)鍵詞進(jìn)行組配,形成正式抽取的關(guān)鍵詞[8]。
回顧最近的工作,Zhang 等[9]提出了一個(gè)關(guān)鍵詞提取框架。該框架有 2 個(gè)模塊,分別是對(duì)話上下文編碼器和關(guān)鍵詞標(biāo)記器。對(duì)話上下文編碼器從他們的對(duì)話上下文中捕獲指示性表示并將該表示輸入關(guān)鍵詞標(biāo)記器,關(guān)鍵詞標(biāo)記器從目標(biāo)帖子中提取顯著詞。這兩個(gè)模塊經(jīng)過(guò)聯(lián)合訓(xùn)練,以優(yōu)化對(duì)話上下文編碼和關(guān)鍵詞提取過(guò)程。胡少虎等[10]通過(guò)對(duì)關(guān)鍵詞提取方法,尤其是關(guān)鍵詞生成方法進(jìn)行總結(jié),闡明了關(guān)鍵詞提取方法的研究重心從特征轉(zhuǎn)向數(shù)據(jù)的趨勢(shì)與原因,并指出現(xiàn)有關(guān)鍵詞提取評(píng)價(jià)體系所存在的缺陷。
近年來(lái),知識(shí)圖譜(Knowledge Graph,KG)作為一種新的知識(shí)表示方法,在問(wèn)題回答、信息檢索以及自然語(yǔ)言處理等領(lǐng)域有著重要的應(yīng)用。知識(shí)圖譜是結(jié)構(gòu)化的語(yǔ)義知識(shí)庫(kù),用于以符號(hào)形式描述物理世界中的概念及其相互關(guān)系;其基本組成單位是“實(shí)體—關(guān)系—實(shí)體”三元組,以及實(shí)體及其相關(guān)屬性鍵值對(duì),實(shí)體間通過(guò)關(guān)系相互聯(lián)結(jié),構(gòu)成網(wǎng)狀的知識(shí)結(jié)構(gòu)[11]。知識(shí)圖譜嵌入(Knowledge Graph Embedding,KGE)是一種新的研究方向,其基本思想是將包含實(shí)體和關(guān)系的KG 組件嵌入到連續(xù)的向量空間中,從而在保持KG 固有結(jié)構(gòu)的同時(shí)簡(jiǎn)化操作[12]。
Guo 等[13]首先提出了一個(gè)將由實(shí)體和關(guān)系構(gòu)成的知識(shí)圖譜嵌入到低緯稠密向量空間中的方法。后來(lái)他們又提出了一種新的知識(shí)圖譜分布式表示學(xué)習(xí)方法——規(guī)則引導(dǎo)嵌入(Rule-Guided Embedding,RUGE),其借助軟規(guī)則的迭代引導(dǎo)完成知識(shí)圖譜表示學(xué)習(xí)[14]。TransE[15]是一種經(jīng)典的知識(shí)表示學(xué)習(xí)方法,可以對(duì)知識(shí)圖譜進(jìn)行補(bǔ)全。其通過(guò)對(duì)頭實(shí)體、尾實(shí)體及對(duì)應(yīng)關(guān)系進(jìn)行建模,將實(shí)體和關(guān)系都表示為同一空間中的向量,能夠通過(guò)訓(xùn)練得到不錯(cuò)的低維嵌入向量。但是,它在處理一對(duì)多、多對(duì)多等關(guān)系方面存在缺陷。TransH[16]是對(duì)TransE 的改進(jìn),在一定程度上緩解了TransE 不能很好地處理一對(duì)多、多對(duì)一等關(guān)系屬性的問(wèn)題,在預(yù)測(cè)精度方面有了顯著的改進(jìn)。知識(shí)圖譜嵌入已經(jīng)可以有效處理各種下游任務(wù),例如鏈路預(yù)測(cè)(Link Prediction, LP)[17]、關(guān)系抽取[18]和推薦系統(tǒng)[19]。
董振東花費(fèi)數(shù)十年時(shí)間建立了一個(gè)漢語(yǔ)常識(shí)庫(kù)——知網(wǎng),一個(gè)可用于自然語(yǔ)言處理的知識(shí)系統(tǒng),能解釋詞語(yǔ)概念和屬性間關(guān)系的知識(shí)庫(kù)。義原是知識(shí)庫(kù)中不能再分割的最小的單位,在知網(wǎng)的知識(shí)庫(kù)中每一個(gè)詞語(yǔ)都可以使用若干個(gè)義原表示。
在知網(wǎng)中,并不是將每一個(gè)概念對(duì)應(yīng)于一個(gè)樹(shù)狀概念層次體系中的一個(gè)結(jié)點(diǎn),而是通過(guò)用一系列的義原,利用某種知識(shí)描述語(yǔ)言來(lái)描述一個(gè)概念。而這些義原通過(guò)上下位關(guān)系組織成一個(gè)樹(shù)狀義原層次體系。如圖1 所示,知網(wǎng)中詞語(yǔ)“聯(lián)想”有兩種意思,第一個(gè)“聯(lián)想”是由電腦(computer)、樣式值(PatternValue)、能(able)、攜帶(bring)、特定牌子(SpeBrand)組成;第二個(gè)“聯(lián)想”表示精神(Mental)。知網(wǎng)定義了約2000 個(gè)義原,并且用這些義原表示了約10 萬(wàn)個(gè)中文和英文單詞。
圖1 聯(lián)想在知網(wǎng)中的描述
同義詞詞林是由梅家駒等編撰的漢語(yǔ)詞庫(kù),里面歸類了漢語(yǔ)詞語(yǔ)的同義詞和同類詞。同義詞詞林經(jīng)過(guò)哈爾濱工業(yè)大學(xué)信息檢索研究室的擴(kuò)展后,共有100093 個(gè)詞語(yǔ)。如圖2 所示,同義詞詞林的擴(kuò)展板具有五層樹(shù)狀結(jié)構(gòu),上面四層的節(jié)點(diǎn)代表抽象的類別,最底層的葉子節(jié)點(diǎn)是具體的詞條,詞條的編碼不唯一,可能在不同的類別中同時(shí)存在。詞林根據(jù)漢語(yǔ)的特點(diǎn)和使用方式,將詞語(yǔ)分為十二個(gè)大類。其中第一類至第三大類大多數(shù)是名詞,數(shù)詞和量詞在第四大類中,第五類一般是形容詞,第六類至第十類一般是動(dòng)詞,第十類多數(shù)是虛詞,第十二類是其他類別詞語(yǔ)。大類和中類的排序遵守從具體概念到抽象概念的原則。
圖2 詞林結(jié)構(gòu)
關(guān)于詞條的編碼如表1 所示。前七位編碼可以唯一確定一條編碼,第八位編碼只有三種情況:“=”代表同義;“#”代表同類;“@”代表獨(dú)立,自我封閉,它在字典中既沒(méi)有同義詞,也沒(méi)有同類詞。本文所使用的詞林為《哈工大信息檢索研究同義詞詞林?jǐn)U展版》1.0 版本。
表1 詞林中詞語(yǔ)的編碼結(jié)構(gòu)
受知識(shí)表示學(xué)習(xí)方法的啟發(fā),本文基于知網(wǎng)提供的義原樹(shù)和詞林知識(shí),利用TransH模型[20]訓(xùn)練并建立了具有三種關(guān)系的知識(shí)圖譜(HowNet and CilinE Knowledge Graph,HCKG)。三種關(guān)系分別是“同義”“同類”“是義原”。前兩種關(guān)系是基于詞林的表示詞語(yǔ)和詞語(yǔ)之間的關(guān)系,第三種關(guān)系是基于知網(wǎng)的表示詞語(yǔ)和義原之間的關(guān)系。如圖3 所示,“眼光(look)”和“目光(eye)”是同義關(guān)系,它們有著相同的義原。“急性(acute)”和“慢性(chronic)”是同類關(guān)系,它們有一部分相同的義原。
圖3 知識(shí)圖譜內(nèi)的關(guān)系示例
HCKG 里面的所有關(guān)系為一個(gè)集合R={Rsym,Rsim,Rsem},Rsym和Rsim分別代表詞語(yǔ)之間的“同義”和“同類”關(guān)系,Rsem代表詞語(yǔ)和義原之間的“是義原”關(guān)系,例如在圖3 中,“醫(yī)(medical)”是詞語(yǔ)“慢性(chronic)”的義原。圖譜{Eword,Esem}里面的每個(gè)關(guān)系都由一個(gè)三元組(h,r,t)表示,h是屬于Eword的一個(gè)頭結(jié)點(diǎn),t是屬于Eword∪Esem的一個(gè)尾結(jié)點(diǎn),r代表關(guān)系。損失函數(shù)定義如下:
λL是超參數(shù),用來(lái)設(shè)置兩個(gè)損失函數(shù)的權(quán)重。
本文基于HCKG 提供的知識(shí)表示來(lái)計(jì)算詞語(yǔ)之間的語(yǔ)義信息。通過(guò)詞語(yǔ)之間的語(yǔ)義信息構(gòu)建語(yǔ)義詞圖,生成語(yǔ)義矩陣ωsim,結(jié)合詞語(yǔ)之間的共現(xiàn)信息生成的共現(xiàn)矩陣ωco,分別賦予兩者相應(yīng)權(quán)重,得到新的概率轉(zhuǎn)移矩陣P:
4.1.1 實(shí)驗(yàn)環(huán)境
本次實(shí)驗(yàn)是在windows11操作系統(tǒng)上進(jìn)行,處理器型號(hào)AMD Ryzen 7 5800H @3.20 GHz,內(nèi)存16G,Python 版本3.7.11。
4.1.2 參數(shù)設(shè)置
在HCKG 中,詞語(yǔ)、義原和關(guān)系的嵌入維度設(shè)置為800,采用Adam 作為優(yōu)化器,學(xué)習(xí)率設(shè)置為0.05。由于存在未登錄詞的現(xiàn)象,如果實(shí)驗(yàn)中存在未登錄詞,將它與其他詞語(yǔ)之間的相似度設(shè)為η。本次實(shí)驗(yàn)所取參數(shù)均在實(shí)驗(yàn)中取得了最好的效果。根據(jù)多次嘗試得到的經(jīng)驗(yàn),公式(5)的參數(shù)α設(shè)置為0.85,η=0.4。
4.2.1 基準(zhǔn)方法
實(shí)驗(yàn)所采用的基準(zhǔn)方法是TextRank,阻尼系數(shù)d 取0.85,當(dāng)候選詞權(quán)重迭代前后變化小于0.0001,停止迭代。
在上式中,In(Vi)代表指向節(jié)點(diǎn)i的節(jié)點(diǎn)集合,而Out(Vj)表示節(jié)點(diǎn)j指向的節(jié)點(diǎn)集合。d為阻尼系數(shù),阻尼系數(shù)使得每個(gè)節(jié)點(diǎn)都有跳轉(zhuǎn)至隨機(jī)頂點(diǎn)的概率,從而避免節(jié)點(diǎn)無(wú)法跳出的情況,取值范圍(0, 1)。
4.2.2 數(shù)據(jù)預(yù)處理
實(shí)驗(yàn)所使用的數(shù)據(jù)集為課題組搜集的33192篇期刊論文摘要,以及對(duì)應(yīng)作者所標(biāo)注的關(guān)鍵詞,摘要一般在120 字?jǐn)?shù)左右,關(guān)鍵詞個(gè)數(shù)一般在4 個(gè)左右。相關(guān)論文所屬領(lǐng)域主要為自然工程類,其中大部分屬于工程科技類,少部分屬于信息科技類和社會(huì)科學(xué)類。本文首先對(duì)期刊論文的標(biāo)題和摘要進(jìn)行拼接,組成一個(gè)新的短文本。拼接完成后,使用中文分詞庫(kù)jieba 對(duì)摘要進(jìn)行分詞。分詞完成后剔除不需要的詞,剩下的詞語(yǔ)就是候選詞。在研究了大量人工標(biāo)注的關(guān)鍵詞詞性后,本次實(shí)驗(yàn)留下來(lái)的候選詞類型有名詞、動(dòng)詞、名動(dòng)詞、人名、地名、機(jī)構(gòu)團(tuán)體和其他專名。
Word2Vec 方法是李躍鵬等[21]提出的一種基于深度學(xué)習(xí)工具Word2Vec 關(guān)鍵詞提取算法,該算法首先使用Word2Vec 模型將所有詞語(yǔ)映射到一個(gè)更抽象的詞向量空間中,其次基于詞向量計(jì)算詞語(yǔ)之間的相似度,最后通過(guò)詞語(yǔ)聚類得到文章關(guān)鍵詞。TD-IDF 算法[22]采用TF 值和文本逆頻率IDF 進(jìn)行加權(quán),根據(jù)候選詞權(quán)值大小提取關(guān)鍵詞。
本文使用準(zhǔn)確率P、召回率R 和F1 值作為指標(biāo)來(lái)評(píng)價(jià)各種方法的效果。設(shè)w1為自動(dòng)抽取的關(guān)鍵詞集合,w2為人工標(biāo)注的關(guān)鍵詞集合,則評(píng)價(jià)指標(biāo)如公式(9)、公式(10)和公式(11)所示。其中TP代表正類被判定為正類,F(xiàn)P代表負(fù)類被判定為正類,F(xiàn)N代表正類被判定為負(fù)類,Num代表個(gè)數(shù)。
本節(jié)主要展示使用各種方法進(jìn)行關(guān)鍵詞抽取時(shí)得到的結(jié)果。如表2 所示,在抽取4 個(gè)關(guān)鍵詞時(shí),本文所提出的方法相比TextRank 方法F1 值提升5.9%,比TD-IDF 方法F1 值提升14.2%,比Word2Vec 方法F1 值提升65.2%。
表2 詞林中詞語(yǔ)的編碼結(jié)構(gòu)
表2 抽取4 個(gè)關(guān)鍵詞時(shí)實(shí)驗(yàn)結(jié)果
如表3 所示,在抽取5 個(gè)關(guān)鍵詞時(shí),本文所提出的方法相比TextRank 方法F1 值提升2.9%,比TF-IDF 方法F1 值提升11.4%,比Word2Vec 方法F1 值提升52.9%。
表3 抽取5 個(gè)關(guān)鍵詞時(shí)實(shí)驗(yàn)結(jié)果
在抽取6 個(gè)關(guān)鍵詞時(shí),結(jié)果見(jiàn)表4,本文所提出的方法相比TextRank 方法F1 值提升2.2%,比TF-IDF 方法F1 值提升11.0%,比Word2Vec方法提升46.0%。
表4 抽取6 個(gè)關(guān)鍵詞時(shí)實(shí)驗(yàn)結(jié)果
本文所提出的方法在抽取不同數(shù)量的關(guān)鍵詞時(shí)效果均為最好。究其原因,論文摘要的關(guān)鍵詞不一定為高頻詞匯,如果只考慮詞語(yǔ)之間的共現(xiàn)信息,最終抽取結(jié)果會(huì)偏向高頻詞而忽略低頻詞。本文提出基于TextRank 算法的改進(jìn)方法,在概率轉(zhuǎn)移矩陣?yán)锩嫒谌朐~語(yǔ)語(yǔ)義知識(shí),賦予某些出現(xiàn)頻率較低,重要程度較高的詞語(yǔ)更高權(quán)重,實(shí)驗(yàn)證明該方法抽取效果更佳。Word2Vec 方法基于維基百科中文語(yǔ)料使用Word2Vec 模型訓(xùn)練生成詞向量模型,再?gòu)闹谐槿『蜻x關(guān)鍵詞的詞向量作為K-means 聚類模型的輸入,選擇聚類中心作為關(guān)鍵詞。但是維基百科中文語(yǔ)料可能未包含某些專業(yè)或者生僻的詞語(yǔ),加上選擇聚類中心作為文本的關(guān)鍵詞聚類方法時(shí),選擇聚類中心作為文本的關(guān)鍵詞本身就是不太準(zhǔn)確的,因此使用這種方法得到的效果不佳。TF-IDF 結(jié)構(gòu)比較簡(jiǎn)單,不能有效反映詞語(yǔ)的重要程度,對(duì)于專業(yè)性稍微強(qiáng)一點(diǎn)的文本例如論文摘要抽取效果較差,所以TF-IDF方法的效果也不是很理想。
為了更詳細(xì)地展現(xiàn)出本文所提出方法的關(guān)鍵詞抽取效果,表5 展示了一些示例在使用不同方法時(shí)的抽取結(jié)果示例。在例一中,本文所提出的TextRank+ HCKG 方法提取出了“試驗(yàn)臺(tái)”和“噴油泵”關(guān)鍵詞,其他方法只提取出了“試驗(yàn)臺(tái)”關(guān)鍵詞。例二同樣只有TextRank+HCKG 方法提取出了“柴油機(jī)”和“增壓”關(guān)鍵詞,其他方法只提取出了“柴油機(jī)”關(guān)鍵詞。這也證明本文所提出的方法相比其他方法,可以取得更好的論文摘要關(guān)鍵詞抽取效果。
表5 不同關(guān)鍵詞抽取方法效果對(duì)比
本文基于義原樹(shù)和詞林知識(shí),利用TransH模型訓(xùn)練并構(gòu)造了知識(shí)圖譜HCKG。利用知識(shí)圖譜提供的知識(shí)表示計(jì)算詞語(yǔ)的語(yǔ)義信息,構(gòu)建語(yǔ)義詞圖,結(jié)合詞語(yǔ)之間共現(xiàn)詞圖,生成新的概率轉(zhuǎn)移矩陣進(jìn)行迭代計(jì)算得到各候選詞權(quán)重,最終根據(jù)權(quán)重大小提取關(guān)鍵詞。實(shí)驗(yàn)證明,本文所提出的方法比傳統(tǒng)TextRank、TD-IDF 和Word2Vec 方法有一定提升。
觀察實(shí)驗(yàn)結(jié)果,有些常用詞也出現(xiàn)在了其中。例如基于摘要“柴油機(jī)噴油泵試驗(yàn)臺(tái)…在LabVIEW 環(huán)境下的實(shí)現(xiàn)”抽取出的關(guān)鍵詞中,詞語(yǔ)“采集”和“數(shù)據(jù)”被當(dāng)成關(guān)鍵詞抽取了出來(lái)。這也是課題組下一步要做的工作,根據(jù)研究目標(biāo)特點(diǎn)建立特定詞庫(kù),提高分詞效率和關(guān)鍵詞抽取效果。