邸小康, 張 輝, 秦曉婧, 齊世杰, 王彩虹, 程 旭
(1.北京市數(shù)字農(nóng)業(yè)農(nóng)村促進中心,北京 100101; 2.北京市農(nóng)林科學院數(shù)據(jù)科學與農(nóng)業(yè)經(jīng)濟研究所,北京 100097)
隨著自然語言處理技術(shù)的快速發(fā)展,關(guān)鍵詞的提取方法也在不斷突破與創(chuàng)新,使得關(guān)鍵詞提取技術(shù)更加成熟[1]?,F(xiàn)有關(guān)鍵詞提取方法主要分為有監(jiān)督提取、半監(jiān)督提取和無監(jiān)督提取3 類,目前較多采用的是無須過多人工干預的無監(jiān)督關(guān)鍵詞提取算法。相關(guān)研究算法有基于統(tǒng)計特征、基于主題模型和基于圖模型3種關(guān)鍵詞提取方法[2]。
基于統(tǒng)計特征的提取方法,代表是TF-IDF 算法,主要通過計算詞語在文章中出現(xiàn)頻率進行關(guān)鍵詞提取,但由于對詞頻的過度依賴,而未考慮文本特征項的影響,導致降低了關(guān)鍵詞的提取效果[3]。研究人員在傳統(tǒng)的TF-IDF 算法基礎(chǔ)上進行一定改進,如牛永潔等[4]綜合考慮詞語的位置、詞性、詞語關(guān)聯(lián)性、詞長和詞跨度等詞語權(quán)重影響因素,結(jié)合TFIDF 提取關(guān)鍵詞;姜永清等[5]通過把詞頻比設(shè)計成去噪音的權(quán)值,以及引入詞語相似度,有效降低文本同類語料庫對提取關(guān)鍵詞權(quán)重的影響。
基于主題模型的提取方法,代表是LDA 主題模型,主要將候選關(guān)鍵詞依照主題進行區(qū)分,選取主題中的中心詞匯作為一類文本的關(guān)鍵詞[6-7]。但是基于主題模型的關(guān)鍵詞提取方法只關(guān)注了主題信息,缺少對候選關(guān)鍵詞的特征信息統(tǒng)計。因此,研究人員基于LDA 模型進行了改進,如韋強申[8]將LDA 與word2 vec 模型相融合,將詞匯向量化表示,并計算相似度,擴展關(guān)鍵詞集;李湘東等[9]將詞性、詞語位置等權(quán)重擴展到LDA,增強了特征的表意性等。
基于圖模型的提取方法,是時下分析文本比較流行和實用的數(shù)據(jù)模型,代表是TextRank 算法,它是將文檔看作一個詞的網(wǎng)絡(luò),該網(wǎng)絡(luò)中的節(jié)點是文本中詞語,鏈接表示詞與詞之間的語義關(guān)系,通過不斷迭代排序,抽取前N個詞語作為關(guān)鍵詞[10]。但是,該算法針對低頻關(guān)鍵詞提取效果較差,同時,當信息十分匱乏時,圖模型的效果也會大打折扣。因此,陳芬[11]利用Word2 Vec 將文檔詞集訓練成詞向量,并計算余弦相似度,同時結(jié)合文檔標題、上下文信息等影響因素改變TextRank 抽取算法。余本功等[1]通過線性加權(quán)的方式,綜合度量詞語語義關(guān)系、詞語節(jié)點出度、詞語節(jié)點位置和詞語節(jié)點頻次4 個特征,改進詞圖構(gòu)建過程中的概率轉(zhuǎn)移矩陣,得到詞語節(jié)點的權(quán)值,提升算法的準確率。BORDOLOI M 等[12]結(jié)合向量空間模型SVM 改進TextRank 圖模型,以文本類別標簽信息和詞語間互信息,建立有監(jiān)督權(quán)重的關(guān)鍵詞提取算法。
各類關(guān)鍵詞提取算法的準確度在一定程度上有所提升。但是,面對特定領(lǐng)域的文本時,由于存在大量領(lǐng)域術(shù)語或短語,導致使用常規(guī)分詞工具無法準確切分詞語組合。當領(lǐng)域中出現(xiàn)新詞時,無法進行新詞識別。上述問題是提取關(guān)鍵詞的重要過程。當前急需提出一種結(jié)合新詞發(fā)現(xiàn)的專業(yè)領(lǐng)域關(guān)鍵詞提取算法,以提高關(guān)鍵詞提取的準確率。
在已有研究基礎(chǔ)上,本研究利用信息熵原理,通過計算詞語與詞語之間的關(guān)系,確定成為新詞概率,篩選領(lǐng)域術(shù)語、短語及縮略語,以此構(gòu)建農(nóng)業(yè)領(lǐng)域詞典用于文本分詞。同時,改進TextRank 算法,綜合考慮詞語位置和詞性特征,調(diào)整候選關(guān)鍵詞最優(yōu)詞語權(quán)重,進而建立詞圖模型,實現(xiàn)文本關(guān)鍵詞提取。通過新詞發(fā)現(xiàn)與改進TextRank 算法的綜合運用,可進一步提高農(nóng)業(yè)領(lǐng)域文本關(guān)鍵詞提取的準確率。
本研究提出一種融合新詞發(fā)現(xiàn)和改進TextRank 的農(nóng)業(yè)領(lǐng)域關(guān)鍵詞提取算法,該算法首先利用信息熵對農(nóng)業(yè)領(lǐng)域文本語料進行新詞發(fā)現(xiàn),以新詞發(fā)現(xiàn)結(jié)果作為自定義詞典進行文本分詞,以此提高分詞準確率。其次,改進TextRank 算法在詞圖構(gòu)建中節(jié)點值的計算方法,結(jié)合詞語位置和詞性特征因素,從而提高關(guān)鍵詞提取準確率。該算法的基本框架如圖1 所示。
圖1 算法框架Fig.1 Algorithm framework
采用基于信息熵的無監(jiān)督算法,作為衡量詞語是否為新詞的標準,通過計算文本片段的互信息和左、右信息熵,設(shè)定閾值,逐步計算成詞概率,抽取高頻詞語,以此發(fā)現(xiàn)文本中的新詞。同時,將新詞與現(xiàn)有通用詞典去重過濾后,加入專業(yè)領(lǐng)域詞典,通過調(diào)用自定義詞典,應(yīng)用到文本分詞過程中,提高分詞準確率。
1.1.1 互信息
在文本處理過程中,互信息常用在計算詞語之間的語義相關(guān)度,如果兩個詞語在文本中同時出現(xiàn)的概率越大,其相關(guān)性就越緊密,即組合成新詞的概率越大[13]。兩個詞語的互信息值可以按式(1)計算。
式中MI(x,y)——詞語x、y互信息值
p(x)、p(y)——詞語x、y單獨出現(xiàn)在文本語料中的概率
p(xy)——詞語x、y共同出現(xiàn)在語料中的概率
MI(x,y)值越大,x,y越可能成為新詞。
1.1.2 左右信息熵
左右信息熵用于衡量候選詞語左右兩側(cè)字之間的不確定性,通過計算一個文本片段左邊和右邊的信息熵值來反映一個詞與左右兩側(cè)詞語可以搭配成新詞的概率,超過一定閾值則可認為兩個片段可以成為一個新詞[14]。左右邊界信息熵按式(2)和式(3)計算。
式中El(W)——左邊界信息熵
Er(W)——右邊界信息熵
W——候選詞
a——W左側(cè)字集合
aW——左側(cè)字a與W構(gòu)成的字符串
p(W) ——詞語W出現(xiàn)概率
b——W右側(cè)字集合
Wb——右側(cè)字b與W構(gòu)成的字符串
分別計算候選詞兩側(cè)的信息熵。El(W)和Er(W)數(shù)值越大,即候選詞W左右出現(xiàn)的詞語越多,W表示成詞的概率越大。
TextRank 算法是一種基于圖的關(guān)鍵詞抽取算法,根據(jù)文本中的候選關(guān)鍵詞和詞間語義關(guān)系構(gòu)建詞圖,可以表示為帶權(quán)重的圖模型G=(V,E),其中,V表示所有節(jié)點集合、E表示所有邊集合。圖中任兩點Vi和Vj之間邊的權(quán)重為wji,對于任意給定的點Vi,In(Vi)為指向該點的入度點集合,Out(Vi)為點Vi指向的點集合,即節(jié)點Vi的出度點集合[10]。詞語節(jié)點Vi按式(4)計算。
式中WS(Vi)——改進算法詞語i重要度得分
WS(Vj)——改進算法詞語j重要度得分
d——阻尼系數(shù)
d代表從圖中某一特定點指向其他任意點的概率,取值0~1,如果取值過大或過小都會造成算法迭代效果,根據(jù)前人的經(jīng)驗,d的取值為0.85[10]。
在原始TextRank 算法中,只考慮詞間的共現(xiàn)關(guān)系對詞語重要度的影響,而忽略了詞語位置、詞性等因素對詞的影響。但在實際應(yīng)用中,除了詞間共現(xiàn)關(guān)系外,詞語出現(xiàn)在文章中的位置和詞語的詞性兩個因素,同樣對詞語的重要度有影響。因此,本研究對上述影響因素進行量化,改進現(xiàn)有TextRank 算法,計算關(guān)鍵詞候選詞重要度得分。
式中W(Vi)——詞語 i 的最優(yōu)權(quán)重系數(shù),通過詞語位置和詞性兩個影響因素得到
式中A(Vi)、B(Vi)——詞語i的位置和詞性權(quán)重
a、β——詞語位置、詞性的權(quán)重系數(shù),a+β=1
(1)詞語位置。對于一篇文本,詞語出現(xiàn)在不同位置,體現(xiàn)詞語的重要度,其中標題是出現(xiàn)關(guān)鍵詞概率最大的位置,其次,還包括摘要、首段、尾端和其他位置等,出現(xiàn)上述的概率依次減小。因此,可以為A(Vi)分別賦值為1.0、0.8、0.5、0.4 和0.2。
(2)詞性。參考文獻[15]中對某文本集關(guān)鍵詞的詞性分布進行統(tǒng)計,如表1 所示。
表1 詞性分布Tab.1 Distribution of parts of speech
由表1 可知,關(guān)鍵詞中,名詞、動詞和形容詞的總占比超過90%。借鑒文獻中的研究成果,將表中的統(tǒng)計占比當成詞性權(quán)重值B(Vi)。
以中國國家自然科學基金涉及農(nóng)業(yè)領(lǐng)域1 000 條申報項目數(shù)據(jù)作為試驗數(shù)據(jù),選取項目標題和摘要數(shù)據(jù)作為提取關(guān)鍵詞的文本,將項目中申請人標注的關(guān)鍵詞為評價標準,通過與其他提取算法進行比較,評價本研究算法的有效性。選用Python 語言,并利用jieba、pandas、math 等自然語言處理工具包實現(xiàn)。
選用準確率P、召回率R和F值3 個指標,進行關(guān)鍵詞標引效果的評價。定義如下
為保證數(shù)據(jù)的質(zhì)量,首先對數(shù)據(jù)進行預處理,去除噪音數(shù)據(jù),如中文編碼問題、標點符號等。采用jieba 分詞工具進行文本分詞、詞性標注,導入農(nóng)業(yè)領(lǐng)域本體詞表作為初始分詞字典,分詞后去除停用詞、詞頻較低的詞語等,保留有意義的詞語序列。在常規(guī)操作外,針對分詞策略和縮略語提取進行了調(diào)整和補充,進一步準確識別詞語,提高候選關(guān)鍵詞的質(zhì)量。
2.3.1 jieba 分詞策略調(diào)整
在預處理樣本數(shù)據(jù)過程中,采用jieba 分詞算法,存在復合形容詞無法被準確切分成詞的問題,如文本“基于THz-TDS 多維矢量場圖的……”“項目擬采用CRISPR/Cas9 基因編輯和功能互補……”,在分詞過程中,使用“-”或“/”符號連接的“THz-TDS”和“CRISPR/Cas9”兩個詞會被切分開,變成“THz”“TDS”“CRISPR”和“Cas9” 4 個詞語,導致無法準確表達含義。因此,本研究在原有算法基礎(chǔ)上,增加針對復合形容詞連接符號的過濾,以此改進分詞策略,建立正則表達式,提高詞語切分的準確度。
2.3.2 縮略語提取
在科技資源中縮略語大量出現(xiàn),縮略語和全稱若不統(tǒng)一對應(yīng),會導致關(guān)鍵詞的候選詞中同時出現(xiàn)全稱和縮略語,對于關(guān)鍵詞的重要度判斷存在一定影響,同時提取出縮略語形式的候選關(guān)鍵詞不易理解??s略語在文章中通常采用如下格式出現(xiàn):中文名稱(英文全稱,英文縮寫詞)或中文名稱(英文縮寫),后面再出現(xiàn)相同的詞組時以英文縮寫詞代替。因此,本文研究在文本分詞時,對出現(xiàn)括號“()”內(nèi)的大小寫英文字符串進行識別判斷,并與括號前的分詞詞語組合成縮略詞。通過人工判讀,確定提取準確的全稱和縮略詞,并建立縮略詞對應(yīng)表。依據(jù)詞表,對分詞后的縮略語進行匹配替換,使用全稱代替,確保候選詞的統(tǒng)一規(guī)范。
2.4.1 新詞發(fā)現(xiàn)與分詞結(jié)果
選擇試驗數(shù)據(jù)進行新詞發(fā)現(xiàn)和分詞處理,對比分析,結(jié)果如表2 所示。
表2 試驗結(jié)果對比Tab.2 Comparative examples of experimental result
由表2 可知,未加入新詞發(fā)現(xiàn)的分詞共切分出59個詞語,加入新詞發(fā)現(xiàn)的分詞共切分出52 個詞語,從分詞數(shù)量上看,一些詞語被組合成新詞。從實際切分結(jié)果看,“沼澤濕地”“水位變化”“固氮生物群落”“氮元素”和“氮循環(huán)”等詞語切分合理,
試驗結(jié)果評估,將新詞發(fā)現(xiàn)結(jié)果作為jieba 分詞自定義詞典進行試驗數(shù)據(jù)分詞,與原始jieba 分詞器和北京大學開源的pkuseg 分詞器進行試驗對比,結(jié)果如表3 所示。
表3 試驗結(jié)果評估Tab.3 Evaluation of experimental result
從試驗結(jié)果中看出,經(jīng)過加入新詞的分詞器效果優(yōu)于jieba 和pkuseg 分詞器,進一步證明加入新詞發(fā)現(xiàn)算法后,提升了分詞效果。
2.4.2 關(guān)鍵詞結(jié)果
為了驗證算法的有效性,采用TF-IDF 算法、TextRank 算法與改進TextRank 算法進行對比分析。試驗數(shù)據(jù)中,TextRank 滑動窗口大小設(shè)定為5,提取4~8 個關(guān)鍵詞進行對比分析,試驗結(jié)果如表4 所示。改進后的TextRank 算法準確率均高于其他兩種算法,隨著關(guān)鍵詞個數(shù)的增加,3 種算法的準確率均逐步降低,表明高概率關(guān)鍵詞已被提取出來;召回率逐步上升,表明關(guān)鍵詞個數(shù)增加,正確結(jié)果被預測的比例增高;在F值方面,由圖2 可知,改進后的TextRank 算法優(yōu)勢明顯,比TF-IDF 算法平均提高7.5%,比未改進的TextRank 算法平均提高9.8%。
表4 試驗結(jié)果對比Tab.4 Comparison of experimental result
圖2 算法F 值結(jié)果對比Fig.2 Comparison of algorithm F value result
為了更直觀地展示改進后的算法提取效果,針對不同算法的關(guān)鍵詞抽取結(jié)果進行對比(以5 個關(guān)鍵詞數(shù)為例),如表5 所示。
表5 試驗結(jié)果對比示例Tab.5 Comparative examples of experimental result
文本關(guān)鍵詞的提取是文本分析過程中的基礎(chǔ)工作,而文本分詞則是關(guān)鍵詞提取的首要處理過程,分詞精準度的高低直接影響后續(xù)關(guān)鍵詞的提取。本研究提出融合新詞發(fā)現(xiàn)和改進TextRank 算法相融合的關(guān)鍵詞抽取方法,利用詞語間互信息和左右信息熵進行新詞發(fā)現(xiàn),通過新詞補充農(nóng)業(yè)領(lǐng)域分詞詞典,同時,結(jié)合詞語特征,增加詞語位置和詞性判斷,改進TextRank 算法中詞語重要度計算方法,以此進行關(guān)鍵詞抽取。經(jīng)過試驗驗證,新詞的發(fā)現(xiàn)效果較好,關(guān)鍵詞提取相比其他方法,準確率更高,對于農(nóng)業(yè)領(lǐng)域文本關(guān)鍵詞提取具有實際應(yīng)用價值。