祖 弦,謝 飛+,劉嘯劍
1.合肥師范學(xué)院計(jì)算機(jī)學(xué)院,合肥 230061
2.合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,合肥 230009
隨著文本數(shù)據(jù)的日益增多,如何快速、高效、全面地分析及挖掘文本,從中獲取用戶(hù)所需信息是當(dāng)前自然語(yǔ)言處理領(lǐng)域面臨的一大挑戰(zhàn)。關(guān)鍵詞是最能反映文檔主旨的詞匯詞組,簡(jiǎn)明扼要地概括并表達(dá)文檔核心內(nèi)容。因此關(guān)鍵詞自動(dòng)抽取技術(shù)能幫助人們迅速?gòu)暮A繑?shù)據(jù)中篩選出有用信息,從而有效提高文檔檢索效率。目前,關(guān)鍵詞自動(dòng)抽取技術(shù)已廣泛應(yīng)用于推薦系統(tǒng)、自動(dòng)文摘[1]、文本分類(lèi)[2]、信息檢索[3]等領(lǐng)域。然而Web 中絕大多數(shù)文檔都沒(méi)有提供相應(yīng)關(guān)鍵詞,人工標(biāo)注、手動(dòng)編輯不僅繁瑣費(fèi)力,還極具主觀性,因此需要研究出高效有用的關(guān)鍵詞自動(dòng)抽取方法。
目前,主流的關(guān)鍵詞自動(dòng)抽取方法分為有監(jiān)督和無(wú)監(jiān)督兩類(lèi),有監(jiān)督算法需要大量人工標(biāo)注語(yǔ)料庫(kù),并預(yù)先訓(xùn)練好抽取模型,不僅耗費(fèi)人力時(shí)間,同時(shí)標(biāo)注的主觀性也將直接影響抽取模型的效果。無(wú)監(jiān)督算法主要基于以下幾種思想:依賴(lài)統(tǒng)計(jì)特征信息(如詞頻特征、長(zhǎng)度特征、位置特征等)的方法、依賴(lài)詞圖模型的方法、依賴(lài)Topic Model(主題模型)的方法,其中基于統(tǒng)計(jì)的方法忽略了文檔中詞語(yǔ)之間的相互聯(lián)系,局限于僅通過(guò)統(tǒng)計(jì)相關(guān)特征來(lái)抽取關(guān)鍵詞,導(dǎo)致抽取效果不好?;谠~圖模型的方法雖然充分考慮了詞語(yǔ)間的相互關(guān)聯(lián),但缺乏語(yǔ)義層面的支持。而基于主題模型的抽取方法試圖通過(guò)對(duì)文本潛在主題信息的挖掘來(lái)提高抽取效率,但實(shí)際應(yīng)用中發(fā)現(xiàn)自動(dòng)抽取的關(guān)鍵詞主題分布較為廣泛,并不能較好反映單篇文檔本身的主題,另外主題模型需要事先構(gòu)建,也增加了計(jì)算成本及問(wèn)題復(fù)雜性。無(wú)論上述哪一種算法,都忽略了候選詞語(yǔ)和文檔本身的語(yǔ)義關(guān)聯(lián)性,從而導(dǎo)致自動(dòng)抽取的關(guān)鍵詞準(zhǔn)確度不高。
為了提高算法抽取效率,考慮融入語(yǔ)義信息,傳統(tǒng)的如利用詞共現(xiàn)特征、WordNet 知識(shí)庫(kù)、wiki 語(yǔ)料庫(kù)等語(yǔ)義知識(shí),均可表示詞語(yǔ)和文檔的語(yǔ)義信息。近年來(lái),隨著深度學(xué)習(xí)技術(shù)的迅速發(fā)展,利用深度學(xué)習(xí)模型表示語(yǔ)義信息的思想已被大量運(yùn)用到自然語(yǔ)言處理中,如BERT 語(yǔ)言模型、長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、嵌入(embedding)技術(shù)等。這些模型可以準(zhǔn)確地獲取文檔語(yǔ)法和語(yǔ)義信息,較好表現(xiàn)處理對(duì)象的語(yǔ)義特征,避免了數(shù)據(jù)離散稀疏、語(yǔ)義鴻溝等問(wèn)題。
本文提出一種新的關(guān)鍵詞抽取方法,綜合考慮了以下兩點(diǎn)核心思想:首先,從單篇文檔中抽取的關(guān)鍵詞理應(yīng)與文檔本身有著密切的語(yǔ)義聯(lián)系,因此與文檔本身語(yǔ)義更接近的詞語(yǔ)更有可能成為關(guān)鍵詞。其次,傳統(tǒng)的PageRank 算法認(rèn)為圖中所有的單詞都有機(jī)會(huì)成為關(guān)鍵詞,因此給每個(gè)節(jié)點(diǎn)具有相同的初始權(quán)重,但考慮不同的單詞應(yīng)該分配不同的起始權(quán)重,重要的詞語(yǔ)理應(yīng)獲得更高的初始值。因此,較傳統(tǒng)方法而言,本文方法能更好地反映文檔中不同詞語(yǔ)的重要程度。
本文的主要貢獻(xiàn)有如下三點(diǎn):
(1)在抽取算法中融合了深度學(xué)習(xí)模型,準(zhǔn)確獲取單詞和文檔語(yǔ)義層面的關(guān)聯(lián)信息,通過(guò)集成語(yǔ)義信息和圖模型,設(shè)計(jì)出一種關(guān)鍵詞抽取的新算法。
(2)提出了一種有偏向的隨機(jī)游走策略,利用單詞與文檔的語(yǔ)義相似度信息改變圖中各節(jié)點(diǎn)分值計(jì)算的初始權(quán)重。從而解決了在傳統(tǒng)的基于詞圖模型方法中,由于忽略單詞語(yǔ)義信息導(dǎo)致抽取效率差的難題。
(3)通過(guò)兩個(gè)通用的公開(kāi)數(shù)據(jù)集,驗(yàn)證了該關(guān)鍵詞抽取算法的準(zhǔn)確性和有效性。
在關(guān)鍵詞自動(dòng)抽取方法中,通常根據(jù)算法是否需要人工預(yù)先標(biāo)注語(yǔ)料庫(kù)進(jìn)行判斷類(lèi)別,主要?jiǎng)澐譃橛斜O(jiān)督提取方法和無(wú)監(jiān)督提取方法。有監(jiān)督方法將抽取過(guò)程看成一個(gè)二分類(lèi)問(wèn)題,通過(guò)預(yù)先標(biāo)注好的語(yǔ)料庫(kù),利用不同的單詞特征選擇,選取相應(yīng)的分類(lèi)器進(jìn)行關(guān)鍵詞抽取。例如經(jīng)典的有監(jiān)督KEA(keyphrase extraction algorithm)抽取算法采用的是樸素貝葉斯分類(lèi)器,其他如決策樹(shù)、遺傳算法、支持向量機(jī)等分類(lèi)器,均被應(yīng)用于有監(jiān)督方法中。2014 年,Haddoud 等人[4]采用邏輯回歸分類(lèi)器進(jìn)行關(guān)鍵詞抽取工作,通過(guò)定義文檔詞語(yǔ)極大性指數(shù),來(lái)區(qū)別相互重疊的候選關(guān)鍵詞,實(shí)驗(yàn)結(jié)果證明該算法要優(yōu)于其他分類(lèi)器抽取效果。2016 年,Sterckx 等人[5]基于決策樹(shù)分類(lèi)器提出一種有效且適用性強(qiáng)的有監(jiān)督抽取算法,適用于從多用戶(hù)標(biāo)注的語(yǔ)料庫(kù)中進(jìn)行關(guān)鍵詞抽取工作,該方法解決了在傳統(tǒng)有監(jiān)督抽取方法中,人工預(yù)先標(biāo)注的訓(xùn)練集語(yǔ)料庫(kù)具有主觀性較強(qiáng)、含有較多噪音和錯(cuò)亂數(shù)據(jù)的問(wèn)題。Gollapalli 等人[6]通過(guò)融合文檔標(biāo)簽特征、結(jié)構(gòu)信息等專(zhuān)家知識(shí)特征,基于條件隨機(jī)場(chǎng)(conditional random field,CRF)策略提高關(guān)鍵詞抽取效果。2017 年,Xie 等人[7]提出基于序列模式及不同間隙約束條件的有監(jiān)督抽取算法,通過(guò)靈活通配符約束和one-off 條件來(lái)提高序列模式挖掘效率,從而提升關(guān)鍵詞抽取性能。2019 年,Alzaidy 等人[8]提出融合LSTM 技術(shù)和條件隨機(jī)場(chǎng)策略,使用序列標(biāo)記方法進(jìn)行關(guān)鍵詞抽取工作。Santosh等人[9]提出在使用Bi-LSTM(bi-directional long short-term memory)和CRF 策略時(shí),融合文檔級(jí)的注意力增加機(jī)制,更好地捕捉同一篇文章中上下文相關(guān)信息,從而提高關(guān)鍵詞抽取效果。
總體來(lái)說(shuō),有監(jiān)督方法的抽取效率要優(yōu)于無(wú)監(jiān)督方法,但其抽取成本較高,需要預(yù)先人工標(biāo)注并訓(xùn)練大量語(yǔ)料庫(kù),因此應(yīng)用范圍存在局限性。
較早的無(wú)監(jiān)督方法是基于統(tǒng)計(jì)的關(guān)鍵詞抽取方法,如TF-IDF(term frequency-inverse document frequency)方法,利用統(tǒng)計(jì)詞頻來(lái)計(jì)算單詞的重要性,2010 年,El-Beltagy 等人[10]提出KP-Miner 系統(tǒng)模型,通過(guò)提高統(tǒng)計(jì)單詞的TF(詞頻)值和IDF(逆向文檔頻率)值要求,并融入了單詞出現(xiàn)的位置等信息提高抽取質(zhì)量。2017 年,Emu 等人[11]在抽取算法中融入了更多的統(tǒng)計(jì)信息,如單詞在整個(gè)語(yǔ)料庫(kù)中出現(xiàn)的頻次、語(yǔ)料庫(kù)中包括候選詞的文檔個(gè)數(shù)等?;诮y(tǒng)計(jì)的算法較為簡(jiǎn)單,普適性強(qiáng),但忽略了單詞間的共現(xiàn)關(guān)系、文檔及詞語(yǔ)的基本語(yǔ)義關(guān)系,因此存在抽取單詞的局限性,容易忽略詞頻低卻較為重要的單詞。
因此,自從2004年Mihalcea等人提出TextRank[12]后,開(kāi)始涌出大批學(xué)者研究基于圖的方法進(jìn)行關(guān)鍵詞抽取工作,并在抽取效果上得到了大幅度提升。TextRank 方法通過(guò)構(gòu)建圖模型,將文檔中每個(gè)單詞作為圖頂點(diǎn),根據(jù)詞共現(xiàn)窗口添加邊,借助Google 傳統(tǒng)的PageRank 隨機(jī)游走算法,計(jì)算每個(gè)頂點(diǎn)分值并進(jìn)行排序。Wan 和Xiao[13]在此工作基礎(chǔ)上進(jìn)行了優(yōu)化及改進(jìn),對(duì)于一篇文檔,不僅借助文檔本身的信息,還需要從與該文檔相似的幾篇文檔中獲取信息,繼而從這些文檔中算出詞共現(xiàn)總數(shù)作為邊的權(quán)重。Bellaachia 等人[14]針對(duì)推特文章的非正式及噪音多等特點(diǎn),提出一種基于圖的無(wú)監(jiān)督關(guān)鍵詞排序方法,認(rèn)為在計(jì)算圖中節(jié)點(diǎn)排序權(quán)重時(shí)應(yīng)該同時(shí)考慮本節(jié)點(diǎn)權(quán)重和邊的權(quán)重。2017 年,F(xiàn)lorescu 等人[15]則通過(guò)加入單詞在文檔中出現(xiàn)的位置信息,改進(jìn)了PageRank算法,使出現(xiàn)位置越靠前,且出現(xiàn)次數(shù)較多的詞語(yǔ),更有可能成為關(guān)鍵詞。Yan 等人[16]認(rèn)為已有的基于圖算法僅僅考慮文檔中單詞間聯(lián)系,忽略了句子的作用,而實(shí)際上如果一個(gè)單詞出現(xiàn)在重要的句子中,則該單詞也更重要。因此作者提出一種充分利用詞和句子關(guān)系的算法,在構(gòu)造圖模型時(shí),由單獨(dú)的詞圖擴(kuò)充為單詞-單詞圖模型、句子-句子圖模型和句子-單詞圖模型,融合三種圖模型同時(shí)計(jì)算單詞分值,并采用聚類(lèi)方法,最終選擇簇中心位置的詞作為關(guān)鍵詞。Biswas 等人[17]提出一種融合多方面節(jié)點(diǎn)權(quán)重的方法,認(rèn)為關(guān)鍵詞的重要性是由若干不同的影響因素決定,如:詞頻、離中心節(jié)點(diǎn)的距離、詞語(yǔ)位置、鄰居節(jié)點(diǎn)重要性程度等。實(shí)驗(yàn)結(jié)果表明,節(jié)點(diǎn)的每一種特征都對(duì)抽取效果有影響。
另外,除上述抽取方法以外,隨著主題模型的出現(xiàn),很多學(xué)者嘗試通過(guò)對(duì)文檔中融入主題信息,來(lái)提高關(guān)鍵詞抽取效率。Liu 等人[18]提出TPR(topical PageRank)關(guān)鍵詞抽取算法,通過(guò)LDA(latent Dirichlet allocation)主題模型對(duì)文檔進(jìn)行主題建模,首先根據(jù)詞共現(xiàn)窗口構(gòu)建詞圖,該圖在不同主題下邊的權(quán)重值不一樣,每個(gè)主題分別利用PageRank 算法計(jì)算單詞的重要性,最終融合文檔的主題分布信息計(jì)算每個(gè)單詞的最終得分。但上述方法的運(yùn)行復(fù)雜度較高,為改進(jìn)該算法,2015 年,Sterckx 等人[19]提出單詞分值計(jì)算依賴(lài)于單篇文檔本身的單詞-主題概率向量和文檔-主題概率向量的余弦相似度,從而僅運(yùn)行一次PageRank 算法,以達(dá)到提高性能的目的,但該算法僅僅考慮了主題特異性,卻忽略了主題模型的語(yǔ)料庫(kù)特異性。2017 年,Teneva 等人[20]為上述問(wèn)題提出了新算法,使得主題和語(yǔ)料庫(kù)兩方面特異性達(dá)到平衡,且同樣只需要運(yùn)行一次PageRank 算法。另外,Bougouin 等人[21]提出一種依賴(lài)于文檔主題表示的無(wú)監(jiān)督抽取方法TopicRank,其利用HAC(hierarchical agglomerative clustering)聚類(lèi)算法將候選詞分成主題簇,每個(gè)簇包含了相同主題的候選詞,利用主題簇構(gòu)建圖模型,其中圖頂點(diǎn)是單個(gè)主題簇,而兩個(gè)簇中所有候選詞的距離之和作為邊的權(quán)重,使用PageRank算法計(jì)算每個(gè)主題簇的分值,并從每個(gè)簇中選取唯一的候選詞作為代表,從而取出前N個(gè)分值較高的關(guān)鍵詞。2018 年,Boudin[22]對(duì)上述TopicRank 方法進(jìn)行了改進(jìn),在圖模型中同時(shí)表示候選詞和主題,只有不同主題的候選詞才會(huì)連接一條邊,作者利用兩者互相增強(qiáng)的關(guān)系來(lái)提高候選詞排名,性能上獲得了較大的提升。2018 年,Li等人[23]對(duì)微博帖子這類(lèi)短文本提出一種無(wú)監(jiān)督的關(guān)鍵詞抽取方法,將話(huà)題標(biāo)簽作為主題的計(jì)算指標(biāo)進(jìn)行處理,認(rèn)為主題分布應(yīng)該更偏向于帖子相關(guān)的標(biāo)簽,該算法不僅能發(fā)現(xiàn)較為準(zhǔn)確的主題,還能抽取與標(biāo)簽相關(guān)的關(guān)鍵字。Mahata等人[24]在對(duì)科技文章提取關(guān)鍵詞時(shí),同時(shí)計(jì)算主題詞和候選詞的向量表示,利用候選短語(yǔ)之間的語(yǔ)義相似性及共現(xiàn)頻率計(jì)算圖中邊的權(quán)重,算法通過(guò)融合詞語(yǔ)Embedding 技術(shù)和主題加權(quán)的PageRank 算法,提高對(duì)科技文章關(guān)鍵詞抽取的效率。
近年來(lái),隨著Embedding 技術(shù)如Word2Vec[25]、Glove[26]廣泛應(yīng)用于自然語(yǔ)言處理領(lǐng)域,越來(lái)越多的學(xué)者開(kāi)始采用深度學(xué)習(xí)技術(shù)提高關(guān)鍵詞抽取效率,基于降維思想,利用詞嵌入技術(shù)在同一個(gè)低維連續(xù)的向量空間上,將文檔中所有單詞表示成詞向量,充分挖掘單詞間的語(yǔ)義關(guān)系。詞嵌入向量可以有效表達(dá)詞語(yǔ)特征,每一維都代表單詞的一個(gè)語(yǔ)義或語(yǔ)法上的潛在特征表示,Word2Vec[25]在利用神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練詞向量的過(guò)程中包含連續(xù)詞袋(continuous bag of words model,CBOW)和Skip-gram 兩種模型。前者通過(guò)中心詞周?chē)乃性~來(lái)預(yù)測(cè)中心詞的出現(xiàn)概率,后者則通過(guò)中心詞來(lái)預(yù)測(cè)周?chē)~的出現(xiàn)概率,通過(guò)訓(xùn)練得出神經(jīng)網(wǎng)絡(luò)隱藏層的權(quán)重參數(shù)。不論上述哪一種訓(xùn)練模型,訓(xùn)練時(shí)都是考慮詞語(yǔ)間的共現(xiàn)信息,因此訓(xùn)練出的詞向量保留了詞語(yǔ)間特別是同義詞之間較強(qiáng)的相關(guān)性。相較于傳統(tǒng)的one-hot 等詞向量表示,Word2Vec 能較好地獲取自然語(yǔ)言中單詞語(yǔ)義特征,重點(diǎn)反映了兩個(gè)詞語(yǔ)間的語(yǔ)義相關(guān)性。但詞向量的使用存在局限性,主要用來(lái)計(jì)算單詞之間的語(yǔ)義相似度。此時(shí)利用Word2Vec 技術(shù)計(jì)算句子的向量表示時(shí),一般是對(duì)句子中每個(gè)單詞的向量表示取平均所得,但該方法忽略了整個(gè)文檔的有序性,易丟失上下文相關(guān)信息。因此,隨著學(xué)者對(duì)句子表示學(xué)習(xí)的深入研究,開(kāi)始出現(xiàn)對(duì)段落或句子的嵌入技術(shù),常見(jiàn)的有Sen2Vec模型[27]和Doc2Vec[28]模型。Sen2Vec模型[27]可看成是詞向量Word2Vec中CBOW 模型的擴(kuò)展,該算法充分考慮了詞序信息,訓(xùn)練時(shí)采用FastText模型對(duì)輸入的文本序列加入n-gram 特征信息處理,利用CBOW 訓(xùn)練得到單詞嵌入向量和n-gram 嵌入向量。具體來(lái)說(shuō),將句子看成一個(gè)完整窗口,同時(shí)結(jié)合窗口中的詞和窗口中所有的n-gram 來(lái)預(yù)測(cè)中心詞,句子向量就是對(duì)所有n-gram 向量表示求平均。因此,Sen2Vec 模型可同時(shí)融合單個(gè)詞語(yǔ)和其上下文相關(guān)信息,能同時(shí)對(duì)單詞和句子進(jìn)行有效的向量表示。文獻(xiàn)[29]中使用Sentence Embedding 技術(shù)融入語(yǔ)義信息提高了關(guān)鍵詞抽取效果。2019年,Wang等人[30]將Sentence Embedding 方法應(yīng)用于對(duì)專(zhuān)利文檔的關(guān)鍵詞抽取中,獲得了較好的抽取效果。其算法順利解決在傳統(tǒng)專(zhuān)利文本的關(guān)鍵詞抽取過(guò)程中,由于專(zhuān)利文檔的專(zhuān)用詞匯術(shù)語(yǔ)僅出現(xiàn)于對(duì)特定領(lǐng)域的描述中,因此依靠統(tǒng)計(jì)詞頻等特征,或是借助詞語(yǔ)間相關(guān)性進(jìn)行關(guān)鍵詞抽取時(shí),效率都不理想的問(wèn)題。
本文提出的關(guān)鍵詞自動(dòng)抽取算法,屬于一種基于圖的無(wú)監(jiān)督方法,首先利用Sentence Embedding 思想將詞語(yǔ)和文檔同時(shí)映射成同一高維向量空間上的向量,通過(guò)計(jì)算向量間語(yǔ)義相似度,利用圖排序思想,借助隨機(jī)游走策略,獲取候選詞在同一篇文檔中的重要性分值,通過(guò)排序計(jì)算獲得關(guān)鍵詞。本文算法通過(guò)在圖排序中加入語(yǔ)義相關(guān)信息,能使抽取的關(guān)鍵詞從語(yǔ)義層面上較好地體現(xiàn)文檔主旨信息。
本文提出的基于詞和文檔嵌入的關(guān)鍵詞抽取算法,主要包括以下幾個(gè)步驟:(1)文檔預(yù)處理,選取滿(mǎn)足規(guī)定詞性和構(gòu)詞規(guī)則的候選詞;(2)單詞和文檔的語(yǔ)義向量化,即在同一個(gè)高維向量空間上,將單詞和文檔映射成向量表示,并計(jì)算兩者的語(yǔ)義相似度;(3)抽取關(guān)鍵詞,首先對(duì)文檔構(gòu)造圖模型,在該圖上使用帶語(yǔ)義偏好的PageRank 算法,進(jìn)而計(jì)算候選詞得分,篩選出得分最高的前N個(gè)作為關(guān)鍵詞?;谠~和文檔向量的關(guān)鍵詞抽取算法的詳細(xì)流程如圖1所示。
Fig.1 Flow chart of algorithm圖1 算法流程圖
文檔預(yù)處理階段的主要目的是從文檔中選出符合條件的候選詞。首先,本文選擇斯坦福大學(xué)提供的自然語(yǔ)言處理工具Stanford CoreNLP(https://nlp.stanford.edu/software/stanford-corenlp-full-2018-02-27.zip),對(duì)文檔進(jìn)行分句,以句子為單位進(jìn)行分詞,并對(duì)每個(gè)單詞進(jìn)行詞性標(biāo)注。接著對(duì)文檔刪掉停用詞后,參照文獻(xiàn)[13]中Wan 和Xiao 的選詞方法,篩選出只有形容詞和名詞組合的最大長(zhǎng)度詞組,即0 個(gè)或n個(gè)形容詞加上1 個(gè)或m個(gè)名詞的詞組,作為文檔的關(guān)鍵詞候選詞組。本階段的另一個(gè)任務(wù)是選出符合規(guī)定詞性的單詞,即選擇具有名詞詞性及形容詞詞性的所有單詞,作為后續(xù)構(gòu)建詞圖模型時(shí)的單詞圖節(jié)點(diǎn)。
本階段的主要任務(wù)是在算法中導(dǎo)入語(yǔ)義信息,即同時(shí)獲取單詞和文檔本身的語(yǔ)義向量表示,并計(jì)算兩者的語(yǔ)義相關(guān)性。首先,將上一階段篩選的符合詞性的單詞映射成高維向量空間上的向量表示;接著,在同一維度空間,將文檔也映射成相應(yīng)的語(yǔ)義向量表示;最后,計(jì)算單詞向量和文檔向量的語(yǔ)義相關(guān)性。
為了在同一維度的向量空間同時(shí)表示單詞和文檔,本文采用了Sentence Embedding 中公開(kāi)可用的語(yǔ)言模型工具——Sent2Vec 預(yù)訓(xùn)練模型(https://github.com/epfml/sent2vec)。該模型利用英文維基百科語(yǔ)料庫(kù),基于詞向量和n-grams 向量,生成600 維的高維向量表示空間,可同時(shí)在該600 維向量空間上將單詞、句子、文檔訓(xùn)練生成語(yǔ)義向量。因此,通過(guò)Sent2Vec模型,本文算法可同時(shí)計(jì)算出單詞和文檔在600 維空間的向量表示。最后,利用式(1)計(jì)算每一個(gè)單詞wi同文檔d的余弦相似度。
其中,wi表示某一個(gè)單詞i的向量表示,d表示該文檔本身的向量表示,m表示語(yǔ)義向量空間的維度,此處為600 維。通過(guò)式(1)計(jì)算出的某一個(gè)單詞向量和文檔向量的余弦相似度越高,說(shuō)明兩個(gè)向量越相似,即該單詞同文檔的語(yǔ)義相似度越高。
2.3.1 構(gòu)造圖模型
根據(jù)文獻(xiàn)[12]中所述,構(gòu)造詞圖模型時(shí),有向圖和無(wú)向圖兩種類(lèi)型不會(huì)顯著影響關(guān)鍵詞抽取的效果,因此本文構(gòu)造帶權(quán)無(wú)向圖G=(V,E),V表示圖的頂點(diǎn)集合{v1,v2,…,vn},其中n代表圖中單詞頂點(diǎn)的個(gè)數(shù),在預(yù)處理階段中詞性標(biāo)注為名詞或者形容詞詞性的單詞可作為圖的頂點(diǎn)。E代表圖中邊的集合,同一個(gè)共現(xiàn)窗口下出現(xiàn)的兩個(gè)單詞之間連一條邊,邊的權(quán)重是指兩個(gè)頂點(diǎn)單詞在同一個(gè)共現(xiàn)窗口下的共現(xiàn)次數(shù),如單詞i和單詞j在同一個(gè)共現(xiàn)窗口下出現(xiàn)時(shí),就給圖中代表單詞i的頂點(diǎn)vi和代表單詞j的頂點(diǎn)vj連一條無(wú)向邊。
2.3.2 帶語(yǔ)義偏好的PageRank 算法
以往需要在圖模型中計(jì)算各單詞節(jié)點(diǎn)分值的時(shí)候,會(huì)采用隨機(jī)游走策略即PageRank 算法,在傳統(tǒng)的PageRank 算法中,默認(rèn)每個(gè)單詞在文檔中是處于同等地位,都有機(jī)會(huì)成為最終的關(guān)鍵詞,因此賦予了每個(gè)單詞相同的歸一化初始權(quán)重。然而在本文算法中,與文檔有更高語(yǔ)義聯(lián)系的詞語(yǔ),更有可能成為文檔的主旨關(guān)鍵詞,因此提出一種帶語(yǔ)義偏好的Page-Rank 算法。具體來(lái)說(shuō),就是給每個(gè)單詞賦予了不同的初始權(quán)重,該初始權(quán)重即為2.2 節(jié)計(jì)算出的單詞與文檔之間語(yǔ)義相似度大小,與文檔語(yǔ)義更接近的詞語(yǔ),語(yǔ)義相似度的值越高,因此分配給該候選詞中單詞的初始權(quán)重也越大。在計(jì)算過(guò)程中,首先需要對(duì)初始權(quán)重進(jìn)行歸一化處理,由式(2)所示,從而獲得每個(gè)單詞頂點(diǎn)vi的初始權(quán)重值mi。
接下來(lái),利用上述帶語(yǔ)義偏好的PageRank 算法,來(lái)計(jì)算圖中每個(gè)單詞節(jié)點(diǎn)vi的分值,如式(3)所示:
其中,S(vi)表示單詞i的得分,α是阻尼系數(shù),大小一般設(shè)為0.85,vj是無(wú)向圖中與頂點(diǎn)vi相連的所有頂點(diǎn),wvj,vi是頂點(diǎn)vj和vi間邊的權(quán)重值,out(vj)是與頂點(diǎn)vj相連的所有邊的權(quán)重之和,由式(4)計(jì)算所得,vk是無(wú)向圖中與頂點(diǎn)vj相連的所有頂點(diǎn),wvj,vk表示頂點(diǎn)vk和vj間邊的權(quán)重值。
在下文具體的實(shí)驗(yàn)中,利用式(3)遞歸計(jì)算單詞節(jié)點(diǎn)分值的時(shí)候,終止條件是兩次迭代計(jì)算的誤差不超過(guò)0.000 1 或者最大迭代次數(shù)為100 次。
2.3.3 抽取關(guān)鍵詞
對(duì)于每一個(gè)在2.1 節(jié)生成的候選詞,需判斷有無(wú)冗余,若兩個(gè)候選詞相同,則只留下一個(gè)。接著,累計(jì)每個(gè)候選詞中包含的所有單詞在2.3.2 小節(jié)計(jì)算的得分S(vi)總和,即作為該候選詞的最終得分,排序后,選擇分值最高的前N個(gè)候選詞作為最終的關(guān)鍵詞。
為了保證本文算法實(shí)驗(yàn)結(jié)果的有效性和公正性,采用了公開(kāi)數(shù)據(jù)集Hulth2003 和DUC2001(https://github.com/snkim/AutomaticKeyphraseExtraction/)作為測(cè)試數(shù)據(jù)集。Hulth2003 由2 000 篇科技論文文獻(xiàn)的摘要文檔組成,分成了包含500 篇文檔的測(cè)試集語(yǔ)料庫(kù)和包含1 500 篇文檔的訓(xùn)練集語(yǔ)料庫(kù),因本文算法屬于無(wú)監(jiān)督方法,無(wú)需預(yù)先訓(xùn)練語(yǔ)料庫(kù),因此選擇了測(cè)試集中的500 篇文檔作為本文的測(cè)試數(shù)據(jù),人工標(biāo)注的正確關(guān)鍵詞結(jié)果在后綴為“.uncontr”的文檔中列出,在實(shí)驗(yàn)中作為本文結(jié)果比對(duì)的依據(jù)。DUC2001語(yǔ)料庫(kù)由308 篇報(bào)紙文章組成,共分為30 個(gè)主題,由Wan 和Xiao[13]創(chuàng)建并手動(dòng)標(biāo)注,直接選擇該語(yǔ)料庫(kù)的所有文檔作為本次實(shí)驗(yàn)測(cè)試數(shù)據(jù)。
為了評(píng)價(jià)該關(guān)鍵詞抽取算法的有效性,本文選擇了在機(jī)器學(xué)習(xí)、信息檢索、數(shù)據(jù)挖掘領(lǐng)域中常用的評(píng)測(cè)指標(biāo):準(zhǔn)確率P(Precision)、召回率R(Recall)和綜合評(píng)價(jià)指標(biāo)F值(F-measure)。具體計(jì)算如式(5)~式(7)所示。
實(shí)驗(yàn)在對(duì)算法自動(dòng)抽取的關(guān)鍵詞和人工標(biāo)注的關(guān)鍵詞進(jìn)行比對(duì)前,將兩集合中的關(guān)鍵詞都提取了詞干以及轉(zhuǎn)換大小寫(xiě),采用的是Python自然語(yǔ)言處理工具NLTK(natural language toolkit)提供的詞干提取算法LancasterStemmer,比對(duì)時(shí)采用了完全匹配的原則,例如在文件名為“26.abstr”的文檔中,人工標(biāo)注的單詞為“quasi-weighted means”,如果算法抽取的關(guān)鍵詞為“Quasi-weighted means”,則匹配對(duì)比正確,但如果抽取的關(guān)鍵詞為“weighted means”或“means quasiweighted”,均匹配對(duì)比失敗。
實(shí)驗(yàn)過(guò)程中,參數(shù)和變量的不同取值,可能會(huì)產(chǎn)生不同的關(guān)鍵詞抽取結(jié)果。因此對(duì)本文算法在構(gòu)造詞圖模型時(shí)的詞共現(xiàn)窗口(window)大小、隨機(jī)游走算法中的阻尼系數(shù)α、抽取的關(guān)鍵詞個(gè)數(shù)N,在兩個(gè)數(shù)據(jù)集上分別進(jìn)行了對(duì)比實(shí)驗(yàn)。
3.3.1 詞共現(xiàn)窗口
在構(gòu)造詞圖模型時(shí),詞共現(xiàn)窗口的大小,決定了圖中每個(gè)單詞節(jié)點(diǎn)間的邊權(quán)重,因此通過(guò)調(diào)節(jié)詞共現(xiàn)窗口大小,觀察實(shí)驗(yàn)抽取結(jié)果。在實(shí)驗(yàn)過(guò)程中,統(tǒng)一選擇抽取的關(guān)鍵詞個(gè)數(shù)N為10,阻尼系數(shù)α為0.85,詞共現(xiàn)窗口大小分別取值為1、2、3、4、5、6、7、8、9、10,得出不同詞共現(xiàn)窗口下,關(guān)鍵詞抽取結(jié)果P值、R值和F值的對(duì)比情況,圖2和圖3是實(shí)驗(yàn)結(jié)果的折線(xiàn)圖。通過(guò)觀察,在Hulth2003 和DUC2001 兩個(gè)語(yǔ)料庫(kù)中,隨著詞共現(xiàn)窗口大小的增加,算法抽取性能總體都呈下降趨勢(shì),這說(shuō)明詞共現(xiàn)窗口的參數(shù)調(diào)節(jié)對(duì)實(shí)驗(yàn)結(jié)果有著一定的影響。但是,當(dāng)詞共現(xiàn)窗口大小取4 到10 之間的值時(shí),衡量性能的F值變化幅度不大,這意味著此時(shí)詞共現(xiàn)窗口的大小取值對(duì)算法抽取結(jié)果并沒(méi)有產(chǎn)生決定性的影響,原因在于利用本文算法提高關(guān)鍵詞抽取效率的初衷,主要源自融合語(yǔ)義信息以及圖排序算法的思想,因此詞共現(xiàn)窗口的大小對(duì)結(jié)果的影響遠(yuǎn)沒(méi)有語(yǔ)義信息及圖排序策略對(duì)結(jié)果的影響高。
Fig.2 Experimental results under different window sizes in Hulth2003圖2 Hulth2003 中不同窗口大小下的實(shí)驗(yàn)結(jié)果
Fig.3 Experimental results under different window sizes in DUC2001圖3 DUC2001 中不同窗口大小下的實(shí)驗(yàn)結(jié)果
3.3.2 阻尼系數(shù)α
利用隨機(jī)游走策略計(jì)算圖中每個(gè)單詞節(jié)點(diǎn)的分值時(shí),為了確保PageRank 算法不會(huì)陷入圖循環(huán)的誤區(qū),因此增加阻尼系數(shù)α。在傳統(tǒng)的TextRank 中,按照經(jīng)驗(yàn)值將阻尼系數(shù)α設(shè)為0.85,但在本文算法中,計(jì)算單詞節(jié)點(diǎn)分值時(shí),對(duì)傳統(tǒng)的TextRank 分值計(jì)算公式進(jìn)行了修改,因此需要通過(guò)調(diào)節(jié)阻尼系數(shù)α的值來(lái)查看實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)中,選擇抽取的關(guān)鍵詞個(gè)數(shù)N為10,詞共現(xiàn)窗口為10 的情況下,α分別取0.2、0.4、0.6、0.8、1.0,觀察所得到的抽取結(jié)果P值、R值和F值,具體對(duì)比情況如圖4 和圖5 的折線(xiàn)圖所示。從兩個(gè)語(yǔ)料庫(kù)的實(shí)驗(yàn)結(jié)果中發(fā)現(xiàn),隨著阻尼系數(shù)α的增大,算法抽取效果呈下降趨勢(shì),當(dāng)α取0.2時(shí),本文算法效果最好。實(shí)際上,在傳統(tǒng)PageRank 圖計(jì)算算法中,賦予圖中所有節(jié)點(diǎn)的初始權(quán)重均一致。而阻尼系數(shù)的作用是用于折衷考慮某節(jié)點(diǎn)的初始權(quán)重和相鄰節(jié)點(diǎn)對(duì)該節(jié)點(diǎn)的貢獻(xiàn),阻尼系數(shù)越大,初始權(quán)重對(duì)某節(jié)點(diǎn)分值計(jì)算的作用越小。本文算法中,當(dāng)阻尼系數(shù)為1.0 時(shí),忽略式(3)中賦予單詞的初始權(quán)重值,此時(shí)算法效果最差,而當(dāng)阻尼系數(shù)設(shè)為0.2時(shí),充分考慮了單詞的初始語(yǔ)義信息,與文檔語(yǔ)義更接近的詞語(yǔ),初始權(quán)重越大,分值計(jì)算過(guò)程中更占優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果證明,此時(shí)的算法效果最好,提升了關(guān)鍵詞抽取性能。這也進(jìn)一步證實(shí)了引入單詞向量語(yǔ)義信息的重要性。
Fig.4 Experimental results under different damping factors in Hulth2003圖4 Hulth2003 中不同阻尼系數(shù)下的實(shí)驗(yàn)結(jié)果
Fig.5 Experimental results under different damping factors in DUC2001圖5 DUC2001 中不同阻尼系數(shù)下的實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中在遞歸計(jì)算圖中每個(gè)節(jié)點(diǎn)分值的時(shí)候,參考了文獻(xiàn)[12]和文獻(xiàn)[15]中對(duì)迭代終止條件的設(shè)置,前者將終止條件設(shè)為兩次連續(xù)迭代計(jì)算結(jié)果不超過(guò)給定閾值0.000 1,而后者對(duì)終止條件的設(shè)置是最大迭代次數(shù)不超過(guò)100 次,因此在實(shí)驗(yàn)過(guò)程中分別對(duì)這兩個(gè)條件進(jìn)行了測(cè)試,當(dāng)閾值設(shè)為0.000 1 時(shí),算法F值為0.276 2,當(dāng)最大迭代次數(shù)為100 次時(shí),算法F值為0.276 6,可以發(fā)現(xiàn)兩者性能差別不大。因此綜合考慮,實(shí)驗(yàn)中將終止條件設(shè)定為兩次迭代計(jì)算的誤差不超過(guò)0.000 1 或者最大迭代次數(shù)為100 次,當(dāng)計(jì)算時(shí)滿(mǎn)足以上任一種條件時(shí)即終止迭代。
3.3.3 關(guān)鍵詞抽取個(gè)數(shù)N
本文算法將語(yǔ)義信息融入圖排序算法中,從理論上來(lái)說(shuō),跟文檔語(yǔ)義關(guān)聯(lián)越接近的詞語(yǔ)排名越靠前,盡管這種從語(yǔ)義角度出發(fā)的思想確實(shí)提高了關(guān)鍵詞抽取效果,但可能會(huì)帶來(lái)一定程度上的語(yǔ)義相近的相似單詞,如在Hulth2003 語(yǔ)料庫(kù)中,文件名為“26.abstr”的文檔中,人工正確標(biāo)注的詞語(yǔ)有“quasiweighted means”,而利用本文算法抽取的前10個(gè)關(guān)鍵詞中,有如下3 個(gè)相似結(jié)構(gòu)的詞語(yǔ)“quasi-weighted means”“weighted means”“guasi-weighted mean”,明顯看出此處存在了語(yǔ)義冗余的關(guān)鍵詞,導(dǎo)致理應(yīng)被抽取出來(lái)的候選詞反而排名靠后。因此在實(shí)驗(yàn)中,通過(guò)設(shè)置不同的關(guān)鍵詞抽取個(gè)數(shù)N,來(lái)觀察實(shí)驗(yàn)結(jié)果,N分別取值為1 到20 范圍內(nèi)的所有正整數(shù),實(shí)驗(yàn)得到不同N值下的抽取結(jié)果P值、R值和F值,如圖6 和圖7 所示。在圖6 中綜合評(píng)價(jià)指標(biāo)F值在關(guān)鍵詞個(gè)數(shù)N取17 的時(shí)候最高,在圖7 中F值在關(guān)鍵詞個(gè)數(shù)N取13 的時(shí)候最高,這也證實(shí)了對(duì)數(shù)據(jù)冗余的猜想。
Fig.6 Experimental results under different keyphrase extraction numbers in Hulth2003圖6 Hulth2003 中不同關(guān)鍵詞抽取個(gè)數(shù)的實(shí)驗(yàn)結(jié)果
Fig.7 Experimental results under different keyphrase extraction numbers in DUC2001圖7 DUC2001 中不同關(guān)鍵詞抽取個(gè)數(shù)的實(shí)驗(yàn)結(jié)果
為了證明本文算法的有效性,在兩個(gè)公開(kāi)數(shù)據(jù)集Hulth2003 和DUC2001 上,與目前主流關(guān)鍵詞抽取算法進(jìn)行了對(duì)比實(shí)驗(yàn)。由于本文算法是一種基于圖的無(wú)監(jiān)督方法,因此選取了3 個(gè)基于圖的經(jīng)典抽取算法TextRank[12]、TopicRank[21]、SingleRank[13]。另外,還選取了一個(gè)基于統(tǒng)計(jì)的經(jīng)典算法TF-IDF,以及一個(gè)基于Embedding 思想的EmbedRank 算法[29],實(shí)驗(yàn)中TextRank、SingleRank 以及本文算法中圖的節(jié)點(diǎn)均為名詞或形容詞,TopicRank 的圖中節(jié)點(diǎn)為主題簇,實(shí)驗(yàn)中選擇每個(gè)簇中最中心的詞語(yǔ)作為關(guān)鍵詞,本文算法的阻尼系數(shù)α取0.2,詞共現(xiàn)窗口設(shè)置為1,詳細(xì)的實(shí)驗(yàn)結(jié)果如表1 和表2 所示,詳細(xì)列出了抽取的關(guān)鍵詞個(gè)數(shù)分別為5、10、15 時(shí),各算法的抽取結(jié)果。
根據(jù)表1 和表2 在兩個(gè)公開(kāi)數(shù)據(jù)集中的對(duì)比實(shí)驗(yàn)結(jié)果,不難看出,在抽取的關(guān)鍵詞個(gè)數(shù)不同的各類(lèi)情況下,本文算法的關(guān)鍵詞抽取效果均優(yōu)于其他典型算法。
實(shí)驗(yàn)中TF-IDF 算法屬于經(jīng)典的基于統(tǒng)計(jì)的方法,僅靠詞頻特征提取關(guān)鍵詞,忽略了文檔中詞語(yǔ)之間的相互聯(lián)系,導(dǎo)致實(shí)驗(yàn)中抽取效果最差,而本文算法充分考慮了詞與詞、詞與文檔間的相互聯(lián)系,以Hulth2003 語(yǔ)料庫(kù)上的實(shí)驗(yàn)結(jié)果為例,在表1 中,當(dāng)抽取的關(guān)鍵詞個(gè)數(shù)為10 時(shí),本文算法較TF-IDF 而言,綜合評(píng)價(jià)指標(biāo)F值提高了26.13 個(gè)百分點(diǎn)。實(shí)驗(yàn)中TextRank、TopicRank、SingleRank 均屬于基于圖的方法,其中TextRank 利用詞共現(xiàn)窗口計(jì)算邊的權(quán)重,SingleRank 在此基礎(chǔ)上加入了文檔關(guān)聯(lián)信息,而TopicRank 在圖方法基礎(chǔ)上加入詞語(yǔ)主題信息。盡管這3 種方法都充分考慮了詞語(yǔ)間的相互關(guān)聯(lián),但都缺乏語(yǔ)義層面的支持,而本文算法利用詞嵌入技術(shù)充分考慮了單詞和文檔語(yǔ)義層面的關(guān)聯(lián)信息,從而大幅度提高了抽取效率。在表1 中,當(dāng)關(guān)鍵詞抽取個(gè)數(shù)為10 時(shí),本文算法的F值較TextRank 而言提高了20 個(gè)百分點(diǎn),較TopicRank 而言提高了13.63 個(gè)百分點(diǎn),較SingleRank 而言提高了10.76 個(gè)百分點(diǎn)。實(shí)驗(yàn)中EmbedRank 雖然基于Embedding 技術(shù)獲取詞語(yǔ)與文檔的語(yǔ)義信息,卻忽略了兩個(gè)詞語(yǔ)之間的語(yǔ)義關(guān)聯(lián),而本文算法不僅考慮了詞語(yǔ)與文檔的語(yǔ)義信息,還充分利用圖模型融入了詞語(yǔ)間的語(yǔ)義關(guān)聯(lián),因此提高了抽取效果。在表1 中,當(dāng)關(guān)鍵詞抽取個(gè)數(shù)為10時(shí),本文算法的F值較EmbedRank 而言提高了2.95個(gè)百分點(diǎn)。
Table 1 Experimental results comparison in Hulth2003表1 Hulth2003 中對(duì)比實(shí)驗(yàn)結(jié)果
Table 2 Experimental results comparison in DUC2001表2 DUC2001 中對(duì)比實(shí)驗(yàn)結(jié)果
本文提出了一種基于詞和文檔嵌入的關(guān)鍵詞抽取算法,將詞語(yǔ)和文檔本身同時(shí)映射成同一空間維度的高維向量,并計(jì)算詞語(yǔ)與文檔間的語(yǔ)義相似度,從而對(duì)圖排序算法的初始權(quán)重進(jìn)行賦值,通過(guò)帶偏向的隨機(jī)游走策略,計(jì)算圖中每個(gè)節(jié)點(diǎn)的分值,候選詞的最終分值通過(guò)圖中各節(jié)點(diǎn)分值計(jì)算得出,并選擇排名較高的前N個(gè)候選詞作為最能代表文檔主旨的關(guān)鍵詞。該關(guān)鍵詞自動(dòng)抽取算法通過(guò)在圖排序中加入語(yǔ)義信息,改善了關(guān)鍵詞抽取效率。實(shí)驗(yàn)結(jié)果表示,本文算法效果大大優(yōu)于目前其他主流關(guān)鍵詞抽取算法。
下一步的工作主要考慮以下兩點(diǎn):(1)在利用Sentence Embedding 思想構(gòu)建向量模型時(shí),易造成抽取的候選詞冗余情況發(fā)生,如何通過(guò)消除語(yǔ)義相近的冗余單詞來(lái)提高效率,是未來(lái)重點(diǎn)研究方向;(2)在圖排序中考慮能否結(jié)合更多的候選詞特征,以提高圖排序效率。