王 芳,劉嘉恩,李 晶
(北京石油化工學(xué)院信息工程學(xué)院,北京 102617)
關(guān)鍵詞是由單個詞或詞組構(gòu)成的一個具有重要意義的詞語表達[1],反應(yīng)文檔的主題思想和主要內(nèi)容。除學(xué)術(shù)論文包含關(guān)鍵詞外,網(wǎng)絡(luò)中的海量文檔并沒有關(guān)鍵詞。提取關(guān)鍵詞能幫助讀者快速地掌握一篇文本的主題;高效、準確、快速地提取關(guān)鍵詞,有助于滿足人們對信息質(zhì)量的核心要求;要進行海量文檔的信息檢索,首先需要解決的就是文檔關(guān)鍵字的自動提取。因此,關(guān)鍵詞提取是文本挖掘領(lǐng)域一個重要分支,廣泛應(yīng)用于文檔索引、摘要生成、文本分類和信息檢索等領(lǐng)域。
關(guān)鍵詞提取技術(shù)的研究起步較早,至今已經(jīng)歷50多年的發(fā)展歷程,國內(nèi)外學(xué)者已經(jīng)進行了很多頗有價值和成效的研究[2-3]。根據(jù)是否需要有標注的訓(xùn)練數(shù)據(jù),將已有方法分為有監(jiān)督和無監(jiān)督2類:有監(jiān)督的關(guān)鍵詞提取技術(shù)需要有標注數(shù)據(jù),將關(guān)鍵詞提取轉(zhuǎn)化為是否為關(guān)鍵詞的分類問題,采用機器學(xué)習(xí)的方法構(gòu)建分類模型,包括基于統(tǒng)計機器學(xué)習(xí)和基于深度學(xué)習(xí)的方法[4-6];無監(jiān)督的關(guān)鍵詞提取方法無需標注數(shù)據(jù),基于圖和話題等技術(shù)對候選詞進行排序[7-9],提取排序靠前的詞作為關(guān)鍵詞。
已有研究大多關(guān)注于關(guān)鍵詞特征及提取模型設(shè)計,針對特定領(lǐng)域的關(guān)鍵詞提取研究較少。諸多領(lǐng)域內(nèi)的文本數(shù)據(jù)通常都呈現(xiàn)出詞語專業(yè)性強、缺乏文本標注(無監(jiān)督)的特點,導(dǎo)致這些領(lǐng)域內(nèi)的關(guān)鍵詞提取較為困難。韋婷婷等[6]針對中文專利關(guān)鍵詞,設(shè)計了一種融合長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)和邏輯回歸模型的關(guān)鍵詞抽取方法,解決了傳統(tǒng)方法難以發(fā)現(xiàn)低頻、長尾關(guān)鍵詞的問題;毛立琦等[10]針對風(fēng)險領(lǐng)域文本,提出基于領(lǐng)域自適應(yīng)的領(lǐng)域文本關(guān)鍵詞提取模型。相關(guān)研究忽略了領(lǐng)域知識對關(guān)鍵詞提取的作用。
因此,筆者基于圖的無監(jiān)督關(guān)鍵詞提取技術(shù),以影視領(lǐng)域文本(如影訊、影評等)為例,研究如何結(jié)合領(lǐng)域知識輔助關(guān)鍵詞提取。針對其詞匯領(lǐng)域性強、影視名稱較長等特點,構(gòu)建影視領(lǐng)域詞表用作分詞詞表,避免分詞錯誤造成的關(guān)鍵詞誤判;利用影視知識庫中影視名、演員、導(dǎo)演等豐富的語義知識,結(jié)合候選詞共現(xiàn)信息構(gòu)建候選詞關(guān)系圖;基于影視知識庫計算候選詞語義相似性,與經(jīng)典的圖排序算法PageRank[11]、TextRank[12]和PositionRank[13]相結(jié)合,優(yōu)化候選詞排序,從而更有效地實現(xiàn)無監(jiān)督影視領(lǐng)域文本關(guān)鍵詞的自動提取任務(wù)。
研究領(lǐng)域知識對關(guān)鍵詞提取的作用,首先需要構(gòu)建領(lǐng)域知識。采用知識圖譜的方法構(gòu)建影視領(lǐng)域知識圖譜MKG=(V,E)[14],其中V是影視知識圖譜的節(jié)點集合,由影視名稱、角色、導(dǎo)演、演員等影視領(lǐng)域?qū)嶓w構(gòu)成;E={(vi,rk,vj)│vi,vj∈V,rk∈R}為影視實體關(guān)系集合,每一個實體關(guān)系是一個三元組(vi,rk,vj)表示vi和vj之間存在關(guān)系rk,其中R為實體關(guān)系類型集合,如演員“吳京”和“長津湖”電影存在主演關(guān)系,形式化地表示為三元組(“吳京”,主演,“長津湖”)。影視領(lǐng)域知識圖譜MKG的構(gòu)建主要包括3部分:影視領(lǐng)域關(guān)系類型定義、影視領(lǐng)域?qū)嶓w抽取和影視領(lǐng)域關(guān)系抽取。
以豆瓣影視網(wǎng)站為數(shù)據(jù)源,首先定義實體關(guān)系類型為R={“影視劇”,“明星”,“角色”,“導(dǎo)演”,“編劇”,“主演”,“類型”,“別名”,“飾演”};其次采用結(jié)構(gòu)化信息抽取的方式提取影視領(lǐng)域?qū)嶓w和實體關(guān)系,如圖1所示。
圖1 影視領(lǐng)域知識抽取網(wǎng)頁信息示意圖Fig.1 Web page information extraction for domain knowledge of film and television
基于Python語言利用Scrapy網(wǎng)絡(luò)爬蟲框架提取豆瓣影視網(wǎng)站的結(jié)構(gòu)化網(wǎng)頁信息,所有提取的三元組構(gòu)成關(guān)系集合,所有三元組中的實體構(gòu)成實體集合,所構(gòu)建影視領(lǐng)域知識圖譜示意圖如圖2所示。
圖2 影視領(lǐng)域知識圖譜MKG中的實體-關(guān)系示意圖Fig.2 Samples of entity-relationships in MKG
針對影視文本設(shè)計關(guān)鍵詞提取的模型框架如圖3所示。模型主要包含候選詞生成、詞網(wǎng)絡(luò)構(gòu)建和關(guān)鍵詞排序3個模塊。
圖3 結(jié)合領(lǐng)域知識的影視文本關(guān)鍵詞提取模型框架Fig.3 The framework of the keyword extraction model based on domain knowledge
對于給定影視文本,生成候選關(guān)鍵詞通常是關(guān)鍵詞提取的第1步。由于中文字與字之間沒有明細的分割標志,詞長也各有不同,對中文文本進行有效分詞是生成候選詞的關(guān)鍵。影視領(lǐng)域文本包含大量影視領(lǐng)域?qū)I(yè)詞匯,如影視名、影視角色、演員及導(dǎo)演等名稱詞匯,特別是影視名稱長短不一,現(xiàn)有分詞器往往會對影視名稱錯誤分詞,間接造成候選關(guān)鍵詞生成錯誤。如電影名稱“肖申克的救贖”會被分成三個詞“肖申克”、“的”、“救贖”。
針對這一問題,提取影視領(lǐng)域知識圖譜MKG中的實體集作為影視領(lǐng)域?qū)I(yè)詞表,用作分詞器的用戶詞典導(dǎo)入分詞器,可很大程度上避免上述錯誤分詞。選用張華平博士的ICTCLAS中分詞系統(tǒng)來對影視文本進行分詞處理,分詞后的詞匯首先經(jīng)過詞性過濾,去掉詞性標注中不含“n”和“v”的詞,如“d”代詞,隨后再經(jīng)過停用詞過濾,生成候選詞集。
為了將基于圖的排序算法應(yīng)用于自然語言文本,需要構(gòu)建表示文本的圖。當前主流的文本圖構(gòu)建方法以詞為網(wǎng)絡(luò)節(jié)點[12-13],利用詞共現(xiàn)(word co-occurance)構(gòu)建圖上節(jié)點的連接邊。對于給定文本d構(gòu)建圖G=(V,E),其中V是文本d經(jīng)分詞處理后的候選詞集,每一個候選詞是圖上的1個節(jié)點;圖上2個節(jié)點vi和vj由邊(vi,vj)∈E連接。節(jié)點vi和vj存在1條邊,當且僅當2個節(jié)點在d中指定的詞共現(xiàn)窗口W中同時出現(xiàn)。邊(vi,vj)∈E的權(quán)重為節(jié)點vi和vj的共現(xiàn)次數(shù)。文本詞網(wǎng)絡(luò)圖G可以是有向圖也可以是無向圖,Mihalcea等[12]的實驗表明,用來表示文本的圖類型對關(guān)鍵詞提取結(jié)果沒有顯著影響。
上述方法在正規(guī)長文本的關(guān)鍵詞提取中取得了不錯的效果,但僅通過詞共現(xiàn)建立圖上節(jié)點的連接,忽略了詞匯之間的語義關(guān)聯(lián)。如在文本“以易烊千璽扮演的伍萬里這個孩子的視角,重新觀察戰(zhàn)爭,進入戰(zhàn)爭,學(xué)習(xí)戰(zhàn)爭。他在戰(zhàn)爭中成長起來的故事線,就是拎起《長津湖》整篇故事的主線?!敝校輪T“易烊千璽”和電影“長津湖”存在語義關(guān)系,但在文本中相隔較遠,TextRank算法的詞共現(xiàn)窗口N最大取值為10,無法為詞“易烊千璽”和“長津湖”建立連接邊。
基于上述思考,提出結(jié)合影視知識庫改進詞網(wǎng)絡(luò)構(gòu)建,在構(gòu)建連接邊時遵循如下2條規(guī)則:
(1)候選詞vi和vj在影視文本d中指定的詞共現(xiàn)窗口W中同時出現(xiàn);
(2)候選詞vi和vj在影視領(lǐng)域知識圖譜MKG中存在語義關(guān)系,即存在三元組(vi,rk,vj)∈Emk。
具體實現(xiàn)中,首先基于詞共現(xiàn)關(guān)系建立候選詞圖Gco,利用關(guān)聯(lián)矩陣Mco=(Mcoi,j)|V|×|V|表示Gco,其中|V|表示文本d中的候選詞個數(shù),w(vi,vj)為2個節(jié)點在文本d中的共現(xiàn)次數(shù):
(1)
(2)
(3)
圖模型可以有效表示各節(jié)點間的關(guān)系和結(jié)構(gòu)信息,在計算節(jié)點權(quán)重的過程中可以結(jié)合圖的全局做出判斷而不是依賴某幾個特定節(jié)點的信息。以TextRank[12]和Positionrank[13]2種經(jīng)典的基于圖的關(guān)鍵詞提取方法為例,介紹如何結(jié)合領(lǐng)域知識輔助關(guān)鍵詞提取。
TextRank基本思想來源于谷歌的網(wǎng)頁排序算法PageRank[11]。PageRank通過網(wǎng)頁鏈接關(guān)系構(gòu)建圖模型,排序核心思想為:如果1個網(wǎng)頁被很多其他網(wǎng)頁鏈接到,說明這個網(wǎng)頁很重要,其PageRank值也會相應(yīng)較高;如果1個PageRank值很高的網(wǎng)頁鏈接到另外某個網(wǎng)頁,那么那個網(wǎng)頁的PageRank值也會相應(yīng)地提高?;谏鲜鏊枷?,設(shè)計了如下PageRank值計算公式:
(4)
式中:S(vi)表示網(wǎng)頁vi的PageRank值,vi∈V={v1,v2,…,vn},網(wǎng)頁之間存在鏈接關(guān)系;d為跳轉(zhuǎn)因子(通常設(shè)置為0.85);In(vi)為鏈向vi的網(wǎng)頁個數(shù),即有向圖中節(jié)點的入度;Out(vj)為節(jié)點vj鏈向網(wǎng)頁的個數(shù),即有向圖中節(jié)點的出度。
在關(guān)鍵詞提取算法中,網(wǎng)頁被換成了關(guān)鍵詞。TextRank把文本分割成若干組成單元(詞語)并建立圖模型,在PageRank基礎(chǔ)上考慮邊的權(quán)重,利用投票機制對文本中的重要成分進行排序,具體方法為:
S(vi)=(1-d)+
(5)
TextRank利用詞共現(xiàn)信息計算邊的權(quán)重,Adj(vi)表示節(jié)點vi的鄰接節(jié)點集合,TextRank實驗表明在關(guān)鍵詞提取任務(wù)中圖中的邊是否有向?qū)μ崛〗Y(jié)果沒有顯著影響,wj,i表示vi和vj的詞共現(xiàn)次數(shù),即式(1)中的w(vi,vj)。
PositionRank在上述2種排序方法基礎(chǔ)上,進一步考慮了詞在文檔中出現(xiàn)的位置和出現(xiàn)次數(shù),認為在文檔中出現(xiàn)位置靠前、出現(xiàn)頻次較多的詞更為重要?;谶@一思想,優(yōu)化排序公式如下:
(6)
(7)
上述方法僅基于單篇文檔的詞共現(xiàn)信息和詞位置信息進行排序,忽略了詞匯之間存在的語義關(guān)系。利用影視領(lǐng)域知識圖譜MKG中的語義關(guān)系,進一步優(yōu)化圖排序方法,在式(3)圖節(jié)點相似度wi,j基礎(chǔ)上,引入語義相似度smi,j,計算式如下:
smi,j=Jaccard(Adj(vi),Adj(vj))=
(8)
語義相似度計算方法可以根據(jù)實際應(yīng)用調(diào)整。選取計算簡單、實際應(yīng)用效果較好的Jaccard相似度計算方法,根據(jù)2個節(jié)點的共同鄰居度量節(jié)點相似度,共同鄰居越多,節(jié)點越相似。將smi,j引入TextRank和PositionRank算法中,分別得到式(9)和式(10),用以計算結(jié)合語義相似度的關(guān)鍵詞排序。
S(vi)=(1-d)+
(9)
(10)
為驗證所提方法的有效性,基于影視領(lǐng)域知識圖譜MKG,設(shè)計爬蟲爬取豆瓣影視近2萬篇影視文檔,提取影視領(lǐng)域?qū)嶓w近1.7萬,提取實體關(guān)系近3百萬。為對所提方法進行有效評價,采用人工標注的方法構(gòu)建實驗數(shù)據(jù)集。利用八爪魚、beautifulSoup等工具包在豆瓣影視討論社區(qū)爬取影視評論,經(jīng)過簡單清洗格式后將原網(wǎng)頁的各標簽信息存儲為JSON文件。選取200篇影視評論進行人工標注,為每篇文檔標注5個關(guān)鍵詞,標注好的關(guān)鍵詞以“tag”為鍵添加到原有JSON文件以供后續(xù)處理,如圖4所示。
圖4 影視評論關(guān)鍵詞標注數(shù)據(jù)截圖Fig.4 Data screenshot of keywords annotation for film and television commentary
采用準確率(Precision)、召回率(Recall)和F1值(F-Measure)衡量各算法的關(guān)鍵詞提取效果。在關(guān)鍵詞提取任務(wù)中,準確率即提取結(jié)果與答案的匹配度;召回率表示提取結(jié)果對于正確答案的覆蓋程度;F1值則是考慮前兩者的綜合指標。3種評價標準的定義如下:
(11)
其中:S為算法提取的關(guān)鍵詞集合;K為人工標注的關(guān)鍵詞集合。
對于每一篇標注的影視文本,分別計算P、R和F1,最后分別加和求平均得到整體的準確率、召回率和F1值。
將所選方法應(yīng)用于影視文本關(guān)鍵詞提取任務(wù),與原始的TextRank和PositionRank方法進行對比,結(jié)合影視領(lǐng)域知識圖譜MKG改進后的算法分別標記為TextRank+MKG和PositionRank+MKG。針對每一篇影視文本,經(jīng)分詞及與處理后,基于式(1)構(gòu)建傳統(tǒng)的候選詞圖,基于式(3)構(gòu)建MKG改進后的候選詞圖;基于式(9)和式(10)計算改進后的候選詞排序;基于式(5)和式(6)計算傳統(tǒng)的詞排序;最后取排序靠前的K個關(guān)鍵詞作為關(guān)鍵詞提取結(jié)果。實驗數(shù)據(jù)中每篇文本有5個關(guān)鍵詞,為此K分別取值1、2、3、4、5。實驗結(jié)果如圖5所示。
從圖5中可以看出,將MKG引入圖排序TextRank和PositionRank算法中,在準確率、召回率和F1各項評價指標中都有明顯提升作用,說明領(lǐng)域知識對于關(guān)鍵詞提取任務(wù)具有積極輔助作用。具體來看,TextRank方法在影視文本中效果明顯優(yōu)于PositionRank。分析原因,PositionRank是針對正規(guī)的學(xué)術(shù)論文設(shè)計的關(guān)鍵詞提取方法,論述語句描述和位置信息作用明顯。但影視評論文本較多為發(fā)表感想、看法類文字,不符合標準的論文寫作順序和結(jié)構(gòu),導(dǎo)致位置偏好在影視評論關(guān)鍵詞排序中不起作用甚至可能造成干擾。
為進一步分析MKG在引入詞表、構(gòu)建詞圖和詞排序方面的細分作用,基于TextRank進行實驗分析,設(shè)置對比實驗:
(1)TextRank:不引入詞表、基于式(1)構(gòu)建傳統(tǒng)的候選詞圖、基于式(5)進行關(guān)鍵詞排序;
(2)TextRank+W:引入詞表、基于式(1)構(gòu)建傳統(tǒng)的候選詞圖、基于式(5)進行關(guān)鍵詞排序;
(3)TextRank+W+G:引入詞表、基于式(3)構(gòu)建傳統(tǒng)的候選詞圖、基于式(5)進行關(guān)鍵詞排序;
(4)TextRank+W+G+R:引入詞表、基于式(3)構(gòu)建傳統(tǒng)的候選詞圖、基于式(9)進行關(guān)鍵詞排序。
影視領(lǐng)域知識MKG在關(guān)鍵詞提取中的作用分析結(jié)果如圖6所示。從圖6中可以看出,2~4三個階段引入MKG相關(guān)知識均對關(guān)鍵詞提取任務(wù)有積極作用;其次,領(lǐng)域詞表的作用最為明顯,引入影視領(lǐng)域詞表的TextRank+W顯著優(yōu)于TextRank,準確率提升近10%;最后,在召回率指標中,TextRank+W+G提升效果明顯,說明通過MKG引入影視語義關(guān)系,為詞圖節(jié)點增加語義邊,有助于提升關(guān)鍵詞提取召回率。
圖5 影視文本關(guān)鍵詞提取效果對比Fig.5 Keyword extraction effect comparison for film and television text
圖6 影視領(lǐng)域知識MKG在關(guān)鍵詞提取中的作用分析Fig.6 Analysis of the role of MKG in keyword extraction
圍繞影視領(lǐng)域文本展開結(jié)合領(lǐng)域知識的關(guān)鍵詞提取算法研究。構(gòu)建影視領(lǐng)域知識庫,基于圖排序算法,從改進分詞、完善詞圖構(gòu)建、優(yōu)化詞排序三方面提升影視文本關(guān)鍵詞提取效果,實驗結(jié)果表明所提方面有效。當前僅基于影視詞匯在知識圖譜中的共近鄰關(guān)系計算語義相似度,沒有考慮知識庫全局網(wǎng)絡(luò)結(jié)構(gòu)信息,也沒有區(qū)分不同關(guān)系類型,未來在語義相似度計算方面可做進一步優(yōu)化研究。