徐遠(yuǎn)威 李勁華
(青島大學(xué)數(shù)據(jù)科學(xué)與軟件工程學(xué)院 山東 青島 266071)
近年來互聯(lián)網(wǎng)的快速發(fā)展,使得新聞文章、互動(dòng)信息和學(xué)術(shù)論文等文本數(shù)據(jù)不斷增加,而關(guān)鍵短語有利于幫助我們快速理解文本并獲取文本關(guān)鍵信息[1]。關(guān)鍵短語是對文本的內(nèi)容進(jìn)行提煉和概括,相比于關(guān)鍵詞具有更豐富的語義信息。例如,“中國”“食品”“產(chǎn)業(yè)”和“分析師”四個(gè)詞各自所表達(dá)的含義與“中國食品”“產(chǎn)業(yè)分析師”作為一個(gè)整體所表達(dá)的含義有明顯的差異。中文關(guān)鍵短語提取是國內(nèi)文本挖掘[2]中一項(xiàng)基礎(chǔ)而又重要的工作,因此需要一種高效提取高質(zhì)量中文關(guān)鍵短語的技術(shù)。
關(guān)于關(guān)鍵短語提取的研究主要有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)這兩種機(jī)器學(xué)習(xí)方法。其中,監(jiān)督學(xué)習(xí)將關(guān)鍵短語提取看作是一項(xiàng)二值分類任務(wù)[3],把一些特征例如短語長度、位置和頻率等作為分類模型的輸入。監(jiān)督學(xué)習(xí)需要人工標(biāo)注短語,對于海量數(shù)據(jù)而言,是一項(xiàng)耗時(shí)費(fèi)力的工作,所以本文著重研究監(jiān)督學(xué)習(xí)[4]的方法。
現(xiàn)有的無監(jiān)督學(xué)習(xí)方法一般分為基于統(tǒng)計(jì)的方法和基于圖排序的方法?;诮y(tǒng)計(jì)的方法一般使用外部文本語料庫來輔助提取關(guān)鍵短語,如TF-IDF、TPR算法。TF-IDF是Salton等[5]提出的一種結(jié)合逆文檔頻率和詞頻來表現(xiàn)詞在文本中的關(guān)鍵程度算法,此算法缺點(diǎn)在于粗粒度地通過頻率來統(tǒng)計(jì)分析,沒有考慮到文本語義關(guān)系,而且需要大量的外部文本語料來實(shí)現(xiàn)。TPR算法[6]是一種主題PageRank算法,使用Wikipedia文章來訓(xùn)練LDA模型,在給定文檔主題分布的情況下統(tǒng)計(jì)排名得分來提取關(guān)鍵短語,依賴于外部語料庫?,F(xiàn)有研究者提出多種基于改進(jìn)TF-IDF的算法,牛萍[7]提出一種TF-IDF與規(guī)則相結(jié)合的方法,運(yùn)用一種結(jié)合連續(xù)單字詞和多詞表達(dá)式識(shí)別的方法來進(jìn)行候選詞識(shí)別,選取TF-IDF為主要特征來進(jìn)行關(guān)鍵短語提取。公冶小燕等[8]提出基于改進(jìn)TF-IDF和共現(xiàn)的主題詞抽取算法,對文檔的語義相似矩陣進(jìn)行聚類來提高準(zhǔn)確率。
基于圖排序的方法中,TextRank算法[9]通過詞的相鄰關(guān)系生成詞的共現(xiàn)圖,使用圖的中心性算法獲得每個(gè)節(jié)點(diǎn)的排名得分,降序排序得分選擇前K個(gè)作為關(guān)鍵詞,缺點(diǎn)在于太依賴于共現(xiàn)關(guān)系,沒有充分考慮到語義關(guān)系。之后多位學(xué)者對TextRank進(jìn)行改進(jìn),如ExpandRank[10]、CiteTextRank[11]和WeightedTextRank[12]算法等。近年來,Zuo等[13]利用單詞嵌入技術(shù)提出一種將Word2Vec與TextRank相結(jié)合的算法,通過利用文本之間的語義相似性來提高關(guān)鍵短語提取性能。Yan等[14]充分利用詞與句子之間的潛在關(guān)系,融合了它們之間的語義關(guān)系,并用話題模型提出一種基于圖排序的關(guān)鍵短語提取算法,較好地挖掘出文本中的語義關(guān)系。
綜上所述,基于統(tǒng)計(jì)的方法將一個(gè)詞映射到外部文本語料庫中具有相同表面形式的詞,由于中文詞歧義性較強(qiáng),相同的詞在不同語境中表達(dá)的含義可能不同,輸入文本中詞的真正含義可能因大量擴(kuò)展語料庫被淹沒?;趫D排序的方法需要構(gòu)建共現(xiàn)圖,依賴于兩個(gè)詞之間的共現(xiàn)關(guān)系,若兩個(gè)詞未出現(xiàn)在預(yù)設(shè)定的窗口范圍內(nèi),即使語義相關(guān)也不會(huì)將它們連在構(gòu)建的共現(xiàn)圖邊上,從而出現(xiàn)信息遺漏、涵蓋信息量少等問題。針對以上缺陷,本文提出一種基于知識(shí)圖譜的中文關(guān)鍵短語提取算法,主要貢獻(xiàn)包括以下三點(diǎn):
(1) 將詞向量化后進(jìn)行AP聚類加強(qiáng)文本中的主題覆蓋率。
(2) 運(yùn)用知識(shí)圖譜的語義網(wǎng)絡(luò)結(jié)構(gòu)挖掘詞之間的潛在關(guān)系,減少外部語料庫的噪聲引入。
(3) 結(jié)合量化潛在關(guān)系的邊權(quán)值和詞頻改進(jìn)PageRank。
圖1為本文算法框架,分為以下五個(gè)步驟。
圖1 APKGRank算法框架
(1) 預(yù)處理輸入文本獲得分詞結(jié)果,將分詞結(jié)果映射到由訓(xùn)練語料庫得到的詞向量中獲得每個(gè)詞的詞向量。
(2) 將基于語義的AP聚類算法應(yīng)用到文本中得到詞集群。
(3) 運(yùn)用知識(shí)圖譜將集群中的詞連接到知識(shí)圖譜中的實(shí)體,通過語義網(wǎng)絡(luò)結(jié)構(gòu)挖掘文本中詞之間的潛在關(guān)系,賦予邊權(quán)值量化潛在關(guān)系構(gòu)建關(guān)系詞圖。
(4) 對將所有集群提取的關(guān)系詞圖組合成一個(gè)完整的文本關(guān)系詞圖執(zhí)行改進(jìn)PageRank獲得每個(gè)詞的排名得分。
(5) 對輸入文本運(yùn)用短語生成規(guī)則生成候選短語,將短語特征與候選短語得分相結(jié)合計(jì)算得到最終短語得分,根據(jù)降序排序選擇前K個(gè)候選短語作為關(guān)鍵短語。本文將該算法簡稱為APKGRank。
一般來說,一個(gè)文本中包含多個(gè)主題,一個(gè)主題可以用文本中所包含的詞來表示,而且同一主題中的詞是密切相關(guān)的[15]。本文通過基于語義的方法對文本中詞進(jìn)行AP聚類,將文本分成若干個(gè)詞集群,其中每個(gè)集群中的詞傳遞一個(gè)主題,從而加強(qiáng)文本的主題覆蓋率。
對于輸入文本,首先進(jìn)行分詞操作得到候選詞集,并對候選詞完成詞性標(biāo)注,去除其中停用詞,過濾處理之后得到整個(gè)文本的分詞結(jié)果。
Word2vec是2013年Google的Mikolov等[16]發(fā)布的一種詞向量計(jì)算工具,分為Skip-gram和CBOW兩個(gè)模型。一般來說,雖然Skip-gram模型訓(xùn)練速度不如CBOW模型,但是Skip-gram模型對于不常見詞的訓(xùn)練效果更加良好。本文選用Skip-gram模型進(jìn)行詞向量訓(xùn)練。
Skip-gram模型是一個(gè)三層淺型神經(jīng)網(wǎng)絡(luò),如圖2所示。三層分別為輸入層、投影層和輸出層,輸入層為根據(jù)One-hot編碼得到的輸入詞向量,投影層用來放置一個(gè)學(xué)習(xí)權(quán)重矩陣,在輸出層使用結(jié)合哈夫曼樹的層次Softmax算法和負(fù)采樣算法來優(yōu)化計(jì)算輸入詞與輸出詞之間的概率分布。其主要思想為根據(jù)目標(biāo)詞來預(yù)測上下文詞,最后根據(jù)迭代次數(shù)來確定每個(gè)詞的詞向量。
圖2 Skip-gram模型
為了傳遞語義,使用中文維基百科語料庫作為輔助文本構(gòu)建Skip-gram模型。對中文維基百科語料庫進(jìn)行詞向量訓(xùn)練后,將預(yù)處理的分詞映射到訓(xùn)練結(jié)果中得到每個(gè)詞的詞向量。缺失值用隨機(jī)初始化相同維度的詞向量表示。
AP聚類算法是由Frey等[17]提出根據(jù)數(shù)據(jù)對象之間進(jìn)行“信息傳遞”的一種聚類算法。與普通的K-Means聚類和譜聚類不同,其優(yōu)勢在于當(dāng)文本長短的不一致時(shí),不用人為設(shè)定簇的個(gè)數(shù)從而減少人為引入主題個(gè)數(shù)帶來的誤差,并且具有明確的質(zhì)心,其性能和效率相比其他聚類算法都有較大的提高。
AP聚類定義一個(gè)相似矩陣來更新迭代歸屬度矩陣(availability)和吸引度矩陣(responsibility)。前者記為A,A(i,k)表示對象i以對象k作為聚類中心的適合程度,后者記為R,R(i,k)表示對象k相對于其他候選示例適合作為對象i的聚類中心程度。以對象i當(dāng)作聚類中心的參考度表示為p(i)。我們使用詞向量之間的歐氏距離來計(jì)算對象i和對象j之間的相似度,記為s(i,j),參考度設(shè)為所有相似度值的中位數(shù)。當(dāng)聚類中心穩(wěn)定或完成預(yù)設(shè)的迭代次數(shù)時(shí),吸引度矩陣和歸屬度矩陣更新迭代結(jié)束。R和A更新公式如式(1)、式(2)所示。
(1)
(2)
考慮到聚類過程中出現(xiàn)振蕩的情況,引進(jìn)阻尼系數(shù)λ來控制算法收斂。吸引度矩陣和歸屬度矩陣設(shè)定為本次更新值的(1-λ)倍加上前次迭代更新值的λ倍,通常λ設(shè)為0.5。具體公式如式(3)和式(4)所示。
rt+1(i,k)=(1-λ)×rt+1(i,k)+λ×rt(i,k)
(3)
at+1(i,k)=(1-λ)×at+1(i,k)+λ×at(i,k)
(4)
當(dāng)聚類中心穩(wěn)定或完成預(yù)設(shè)的迭代次數(shù)時(shí),我們把A(i,i)+R(i,i)>0的點(diǎn)當(dāng)作聚類的中心,將其余點(diǎn)分派給相距最短的聚類中心,以此完成詞向量聚類。
本節(jié)運(yùn)用知識(shí)圖譜進(jìn)一步來輔助提取關(guān)鍵短語。由于針對中文關(guān)鍵短語,選擇使用CN-DBpedia知識(shí)圖譜[18],表示為KG,通過將每個(gè)集群中的詞連接到知識(shí)圖譜中的實(shí)體并通過語義關(guān)系構(gòu)建文本關(guān)系詞圖,使用改進(jìn)PageRank獲得詞排名得分,最后結(jié)合短語生成規(guī)則、詞得分和短語特征提取關(guān)鍵短語。
給定一個(gè)知識(shí)圖譜KG,記為G,將詞連接到G,使每個(gè)詞對應(yīng)到G中的映射實(shí)體??紤]到中文詞歧義性較強(qiáng),一個(gè)表層形式的詞通常有多個(gè)映射實(shí)體,例如,“司機(jī)”可以指職業(yè)、電影或者歌曲?,F(xiàn)有的多數(shù)研究都集中在語義消歧上[19],大多數(shù)的方法需要G中的每個(gè)實(shí)體都有一個(gè)描述該實(shí)體的頁面p,然后計(jì)算p與輸入文檔d之間的語義關(guān)系[20],例如,計(jì)算它們之間的余弦相似度,選擇相似度最大的頁面對應(yīng)的實(shí)體作為映射實(shí)體。本文方法為歧義詞構(gòu)建了一個(gè)映射字典,每個(gè)可能的映射都有一個(gè)先驗(yàn)概率。為了計(jì)算先驗(yàn)概率,使用百度百科來進(jìn)行輔助,對于百度百科中歧義詞的每個(gè)鏈接,可以得到一對描述詞的內(nèi)容文本和實(shí)體,通過計(jì)算每個(gè)候選實(shí)體ce與詞t的共現(xiàn)數(shù)與t的詞頻的比例來獲得每個(gè)候選實(shí)體的先驗(yàn)概率。計(jì)算公式如式(5)所示,其中T(t,cei)表示詞與候選實(shí)體的共現(xiàn)次數(shù),T(t)表示詞頻。
(5)
給定一個(gè)詞t,如果知識(shí)圖譜中有描述節(jié)點(diǎn)信息且沒有出現(xiàn)歧義詞情況,則直接連接節(jié)點(diǎn)。如果出現(xiàn)歧義詞情況,我們利用構(gòu)建字典并通過結(jié)合實(shí)體內(nèi)容文本和輸入文檔之間的余弦相似度和先驗(yàn)概率來尋找它的正確映射,從而減少外部語料庫的噪聲引入。
詞連接后得到詞的映射實(shí)體(稱為錨節(jié)點(diǎn)),構(gòu)建一個(gè)S-ties關(guān)系詞圖來獲得每個(gè)集群中詞之間的語義關(guān)系。首先定義一個(gè)知識(shí)圖譜G=(V,E),其中:V表示實(shí)體對應(yīng)節(jié)點(diǎn)的集合;E表示實(shí)體之間邊的集合;任意一條邊對應(yīng)一個(gè)三元組Ek=(vi,vj,lable),其中:vi和vj分別表示始節(jié)點(diǎn)和終節(jié)點(diǎn);lable表示始節(jié)點(diǎn)與終節(jié)點(diǎn)的關(guān)系標(biāo)簽;An表示錨節(jié)點(diǎn)的集合,即An={v1,v2,…,vk}。
算法1為S-ties詞圖的構(gòu)建過程。結(jié)合知識(shí)圖譜G,根據(jù)錨節(jié)點(diǎn)An對應(yīng)到G中得到子圖,EV是An對應(yīng)子圖中的擴(kuò)展節(jié)點(diǎn)集,我們使用廣度優(yōu)先搜索來遍歷錨節(jié)點(diǎn)vi和其擴(kuò)展節(jié)點(diǎn)EVi之間不超過h的路徑。為了添加具有語義關(guān)系的路徑并挖掘出錨節(jié)點(diǎn)vi與其他節(jié)點(diǎn)的擴(kuò)展節(jié)點(diǎn)EVj的潛在關(guān)系,使用Word2vec計(jì)算兩節(jié)點(diǎn)之間的余弦相似度作為vi與EVj之間的語義相似度,記為μ(vi,EVj)??紤]到若擴(kuò)展節(jié)點(diǎn)對應(yīng)的是一個(gè)由多個(gè)詞組成的命名實(shí)體,根據(jù)其包含詞向量計(jì)算平均值來進(jìn)行此節(jié)點(diǎn)的詞向量表示。我們通過設(shè)定一個(gè)語義相似度閾值τ來添加具有潛在語義關(guān)系的邊,其中邊的權(quán)值表現(xiàn)了兩個(gè)錨節(jié)點(diǎn)之間的語義關(guān)系程度。
算法1S-ties詞圖構(gòu)建算法
輸入:G=(V,E),最長路徑h,錨點(diǎn)集An,語義相似度閾值τ。
輸出:S-ties詞圖。
vi,vj∈An,EVk∈EV
forviinAndo
forEVjinEVandi≠jdo
computeμ(vi,EVj);
ifμ(vi,EVj)>=τdo
ifvi指向vj之間不存在邊do
add Path
else do
邊的權(quán)值weight加1;
return 包含Path
為了合并每個(gè)詞集群構(gòu)建的關(guān)系詞圖,考慮到將輸入文本內(nèi)容的語義關(guān)系添加到關(guān)系詞圖中,對文本的詞序列進(jìn)行遍歷,如果兩個(gè)錨節(jié)點(diǎn)vi和vj對應(yīng)的詞ti和tj前后出現(xiàn)在設(shè)定的同一窗口λ內(nèi),若不存在vi到vj的邊,則增添一條權(quán)值為1的此方向邊。若存在vi到vj的邊,則邊的權(quán)值加1,從而得到了一個(gè)完整的帶權(quán)有向文本關(guān)系詞圖。一個(gè)關(guān)系詞圖示例如圖3所示。
圖3 關(guān)系詞圖示例
構(gòu)建文本關(guān)系詞圖之后,我們使用圖的中心性算法估量圖中節(jié)點(diǎn)的重要性來獲取詞的排名得分?,F(xiàn)有的詞圖排序方法采用了度中心性、間接中心性、緊密中心性、特征向量中心性和PageRank等多種圖的中心性算法[21]。由于關(guān)系詞圖是一個(gè)帶權(quán)有向圖,邊反映了詞之間的語義關(guān)系程度,并且已有的方法表明[22],詞頻是表現(xiàn)詞關(guān)鍵性的一個(gè)重要特征,因此需要一種通過結(jié)合關(guān)系詞圖的語義關(guān)系結(jié)構(gòu)和詞頻來對詞進(jìn)行排序的圖算法。考慮到PageRank使用圖結(jié)構(gòu)對節(jié)點(diǎn)進(jìn)行排序,但是PageRank的轉(zhuǎn)移概率是標(biāo)準(zhǔn)化的,它不能反映節(jié)點(diǎn)特征的差異。相比基于PageRank改進(jìn)的個(gè)性化PageRank算法為每個(gè)節(jié)點(diǎn)分配了一個(gè)有偏差的轉(zhuǎn)移概率?;诰C合考慮,結(jié)合邊權(quán)值和詞頻改進(jìn)PageRank迭代公式如式(6)所示。
(6)
式中:PR(vj)是vj的rank得分;p(vj)表示vj的隨機(jī)轉(zhuǎn)移概率;in(j)為朝向vj的全部節(jié)點(diǎn);p(Wij)表示vi到vj的跳轉(zhuǎn)概率;d是阻尼因子,通常設(shè)為0.85。隨機(jī)轉(zhuǎn)移概率p(vj)和跳轉(zhuǎn)概率p(Wij)計(jì)算公式如式(7)和式(8)所示。最后對文本的關(guān)系詞圖執(zhí)行改進(jìn)PageRank,得到每個(gè)錨節(jié)點(diǎn)對應(yīng)詞的排名得分。
(7)
(8)
式中:N是節(jié)點(diǎn)數(shù);tf(vj)是vj的詞頻;weight(vi→vj)表示vi指向vj邊的權(quán)值。
考慮到中文關(guān)鍵短語大多為名詞性短語,形容詞和副詞只是起到修飾作用,本文制定候選短語生成的語句規(guī)則:
(1) 由連續(xù)一個(gè)或者多個(gè)名詞組成。
(2) 由連續(xù)一個(gè)動(dòng)詞加一個(gè)或者多個(gè)名詞組成。
(3) 由連續(xù)一個(gè)名詞加一個(gè)動(dòng)詞組成。
例如,給定一句“達(dá)州市公安交警支隊(duì)對該路段臨時(shí)實(shí)施管制”,結(jié)合詞性標(biāo)注使用規(guī)則將生成候選短語“達(dá)州市公安交警支隊(duì)”“路段”和“實(shí)施管制”。若出現(xiàn)“達(dá)州市公安交警支隊(duì)”由三個(gè)以上詞組成的候選短語、表達(dá)語義粒度過大的情況,我們結(jié)合詞之間的凝聚度和自由度來優(yōu)化生成雙詞候選短語[23-24],凝聚度表示兩個(gè)詞構(gòu)成短語的內(nèi)部緊密性,自由度用來估量詞與左右相鄰詞的自由搭配能力。最后根據(jù)規(guī)則生成的候選短語得為其包含詞得分之和,公式如式(9)所示。
(9)
本文進(jìn)一步考慮短語首現(xiàn)位置和頻率兩個(gè)短語特征來提高關(guān)鍵短語提取的準(zhǔn)確率,在文本中短語首次出現(xiàn)位置越靠前并且出現(xiàn)頻率越高表明該短語的重要程度越高,首現(xiàn)位置和頻率分別用p(pi)和tf(pi)表示,最終候選短語排名得分計(jì)算式表示為:
(10)
計(jì)算全部候選短語得分后,根據(jù)降序排序選擇前K個(gè)候選短語作為輸入文本的關(guān)鍵短語。
為了驗(yàn)證本文算法性能,實(shí)驗(yàn)采用爬蟲在國內(nèi)新浪、搜狐和騰訊新聞網(wǎng)站上爬取了共1 046篇新聞文本,篩選出內(nèi)容字?jǐn)?shù)大于500的文本801篇,共計(jì)1 233 313字?jǐn)?shù),平均每篇約1 540字?jǐn)?shù),每篇文本的關(guān)鍵短語由人工手動(dòng)標(biāo)注。中文維基百科語料庫選用最近2020年8月發(fā)布的語料數(shù)據(jù)“zhwiki-latest-pages-articles.xml.bz2”,處理之后得到371 263篇文章。通過Neo4j圖數(shù)據(jù)庫構(gòu)建知識(shí)圖譜CN-DBpedia,其中包含16 341 239個(gè)節(jié)點(diǎn),54 173 197個(gè)關(guān)系。實(shí)驗(yàn)在配置為8 GB內(nèi)存、i5-8300H處理器、Windows 10系統(tǒng)的筆記本進(jìn)行,開發(fā)環(huán)境為PyCharm平臺(tái)、Neo4j數(shù)據(jù)庫。
在實(shí)驗(yàn)中,本文采用準(zhǔn)確率P、召回率R和F1值來評估關(guān)鍵短語提取的性能,其中:P指算法提取的正確關(guān)鍵短語個(gè)數(shù)占提取的所有關(guān)鍵短語個(gè)數(shù)的比例;R指算法提取的正確關(guān)鍵短語個(gè)數(shù)占人工標(biāo)注關(guān)鍵短語個(gè)數(shù)的比例。由于P和R指標(biāo)有時(shí)會(huì)出現(xiàn)相互矛盾的情況,使用對P和R的一個(gè)綜合考慮的評價(jià)指標(biāo)F1值來對算法性能進(jìn)行評判,下面是三個(gè)評判標(biāo)準(zhǔn)的定義:
式中:Ccorrect是算法提取的正確關(guān)鍵短語個(gè)數(shù);Ctotal是算法提取的所有關(guān)鍵短語個(gè)數(shù);Cmark是人工標(biāo)注關(guān)鍵短語個(gè)數(shù)。根據(jù)P、R和F1這三個(gè)評判指標(biāo)可以對實(shí)驗(yàn)結(jié)果得出相對客觀的評價(jià)。
APKGRank存在兩個(gè)參數(shù)可能影響著算法性能,分別為知識(shí)圖譜中的語義相似度閾值τ和合并關(guān)系詞圖中的遍歷窗口大小λ。因考慮到文本長短不一致導(dǎo)致平均標(biāo)注關(guān)鍵短語個(gè)數(shù)不同,在討論語義相似度閾值τ和遍歷窗口大小λ時(shí),將標(biāo)記關(guān)鍵短語個(gè)數(shù)固定為所有文本的平均標(biāo)注個(gè)數(shù),提取關(guān)鍵短語個(gè)數(shù)K為10。
4.2.1 語義相似度閾值
在運(yùn)用知識(shí)圖譜CN-DBpedia中,考慮到CN-DBpedia中節(jié)點(diǎn)的頂點(diǎn)度較大,在實(shí)驗(yàn)中確定錨節(jié)點(diǎn)和其擴(kuò)展節(jié)點(diǎn)最長路徑的長度為2,設(shè)定遍歷窗口大小λ為5,提取關(guān)鍵短語個(gè)數(shù)K為10。圖4顯示了τ對關(guān)鍵短語提取的影響,可以看出,賦予一個(gè)合適的語義相似度閾值可以提高算法性能,當(dāng)τ=0.4左右時(shí),F1值到達(dá)峰值,但是隨著τ繼續(xù)增大,由于較大的語義相似度閾值過濾了過多可能相關(guān)的語義關(guān)系從而降低了性能。從τ=0.6開始,由于基本過濾掉了全部的語義關(guān)系,算法性能不再變化。因此確定語義相似度閾值τ為0.4。
圖4 F1值隨語義相似度閾值τ的變化情況
4.2.2 窗口大小
為了分析合并關(guān)系詞圖的遍歷窗口大小λ對關(guān)鍵短語提取性能的影響,本文設(shè)定提取關(guān)鍵短語個(gè)數(shù)K為10,語義相似度閾值τ為0.4??紤]到如果設(shè)置的窗口大小過大,則添加的邊權(quán)值也會(huì)很大,從而影響到由挖掘語義關(guān)系得到的邊權(quán)值,所以在實(shí)驗(yàn)中分析窗口大小λ=3,4,5,6,7時(shí)的算法性能。實(shí)驗(yàn)結(jié)果如圖5所示,隨著窗口逐漸增大,算法性能小幅提高,當(dāng)λ等于5時(shí),算法性能最佳。這表明適當(dāng)?shù)卦黾哟翱诖笮】梢园迅嘞嚓P(guān)的詞包括在內(nèi)加強(qiáng)了語義關(guān)系,我們確定遍歷窗口大小為5。
圖5 P、R和F1值隨窗口大小λ的變化情況
本實(shí)驗(yàn)選用了三種經(jīng)典的中文關(guān)鍵短語算法TF-IDF、TextRank和LDA來對比本文算法的有效性。圖6為知識(shí)圖譜KG的局部示例,例如考慮文本中未出現(xiàn)在預(yù)設(shè)定窗口內(nèi)的“肺炎”和“鐘南山”兩個(gè)詞,在共現(xiàn)圖中不會(huì)引導(dǎo)任何邊來連接它們,表明兩者之間沒有高度相關(guān)性,而根據(jù)知識(shí)圖譜的語義網(wǎng)絡(luò)結(jié)構(gòu)計(jì)算“肺炎”與“鐘南山”擴(kuò)展節(jié)點(diǎn)之間的語義相似度得到邊權(quán)值可以表現(xiàn)出兩者有密切相關(guān)性,并且運(yùn)用詞連接方法得到詞的正確映射,避免了擴(kuò)展語料庫中的大量噪聲數(shù)據(jù)引入。從表1提取結(jié)果中可以看出,APKGRank算法提取到“新冠肺炎”和“鐘南山”這兩個(gè)關(guān)鍵短語正是需要的關(guān)鍵短語。表1顯示了四種算法在提取關(guān)鍵短語個(gè)數(shù)K=5時(shí)的具體結(jié)果。
表1 不同方法提取的關(guān)鍵短語
圖6 知識(shí)圖譜KG的局部示例
圖7、圖8和圖9分別顯示了四種算法在準(zhǔn)確性、召回率和F1值方面的性能情況,其中提取關(guān)鍵短語個(gè)數(shù)K=5,10,15,20??梢钥闯?隨著提取關(guān)鍵短語個(gè)數(shù)增加,提取到正確的關(guān)鍵短語個(gè)數(shù)相比提取關(guān)鍵短語個(gè)數(shù)的增長較慢導(dǎo)致各算法的準(zhǔn)確率逐漸下降,但召回率開始逐漸上升,原因是確定了標(biāo)記關(guān)鍵短語個(gè)數(shù),隨著提取關(guān)鍵短語個(gè)數(shù)增加獲取到正確的關(guān)鍵短語個(gè)數(shù)也逐漸增加。F1值是來綜合評判算法性能的指標(biāo),可以看出本文方法相比其他三種算法F1值有了明顯的提升。當(dāng)提取關(guān)鍵短語個(gè)數(shù)為10時(shí),算法性能最佳。這表明了相比于TextRank、TF-IDF和LDA,結(jié)合基于語義的AP聚類和知識(shí)圖譜中的語義網(wǎng)絡(luò)結(jié)構(gòu)可以更深層次地挖掘出詞之間的潛在語義關(guān)系,減少了外部語料庫的噪聲引入,從而提高了關(guān)鍵短語提取的性能。
圖7 不同算法在P上的性能
圖8 不同算法在R上的性能
圖9 不同算法在F1值上的性能
本文提出一種基于知識(shí)圖譜的中文關(guān)鍵短語提取算法,將基于語義的AP聚類與知識(shí)圖譜相結(jié)合的方法來發(fā)現(xiàn)隱藏在輸入文本中詞之間的語義關(guān)系?;谡Z義的AP聚類方法加強(qiáng)了文本中的主題覆蓋率,知識(shí)圖譜的語義網(wǎng)絡(luò)結(jié)構(gòu)挖掘出詞之間的潛在關(guān)系,并減少了外部語料庫的噪聲引入。最后使用改進(jìn)PageRank獲得每個(gè)詞的排名得分,將兩個(gè)短語特征與候選關(guān)鍵短語得分相結(jié)合得到最終短語得分。通過與經(jīng)典的中文關(guān)鍵短語提取算法相比,本文算法在精確率、召回率和F1值上有了顯著提升,表明本文算法在提取中文關(guān)鍵短語上性能更加良好。
我們下一步工作設(shè)想中,將加入更多的約束規(guī)則來優(yōu)化生成候選關(guān)鍵短語,并結(jié)合深度學(xué)習(xí)模型提高關(guān)鍵短語提取效率。