吳俊杰 秦晨
摘? ?要:“1331”工程依托大數(shù)據(jù)與智能技術(shù)山西生協(xié)同創(chuàng)新中心平臺(tái)建設(shè)山西省職業(yè)教育大數(shù)據(jù)分析與決策平臺(tái)。決策平臺(tái)要使用哪些數(shù)據(jù)進(jìn)行分析并決策出最終的結(jié)果。指標(biāo)數(shù)據(jù)是通過(guò)分析國(guó)家標(biāo)準(zhǔn)指標(biāo)庫(kù)和各個(gè)升級(jí)標(biāo)準(zhǔn)指標(biāo)庫(kù)來(lái)確定要分析的數(shù)據(jù)指標(biāo)項(xiàng)。決策平臺(tái)要使用的一部分?jǐn)?shù)據(jù)就來(lái)自各個(gè)中職學(xué)校的年報(bào)。人工梳理年報(bào)文檔中的數(shù)據(jù)會(huì)耗費(fèi)大量的人力和時(shí)間。本文提出基于文本處理的指標(biāo)數(shù)據(jù)自動(dòng)提取。本文使用jieba算法對(duì)文本數(shù)據(jù)進(jìn)行指標(biāo)數(shù)據(jù)處理。首先通過(guò)人工分析國(guó)標(biāo)與各個(gè)省級(jí)標(biāo)準(zhǔn)指標(biāo)庫(kù)確定指標(biāo)數(shù)據(jù)向,從而確定詞典庫(kù),再使用TextRank算法文本分詞并提取。由于年報(bào)文檔中的數(shù)據(jù)時(shí)按模塊進(jìn)行書(shū)寫(xiě)的并且希望提取的數(shù)據(jù)也按原穩(wěn)定的模塊順序進(jìn)行呈現(xiàn),TextRank是按整句進(jìn)行預(yù)處理,所以不會(huì)破壞文章的順序結(jié)構(gòu)。
關(guān)鍵詞:文本處理? 關(guān)鍵詞提取? jieba算法? TextRank算法
中圖分類(lèi)號(hào):TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1674-098X(2019)10(c)-0107-02
1? 基于jieba算法的關(guān)鍵字提取
使用jieba算法對(duì)年報(bào)文檔進(jìn)行文本處理,首先要構(gòu)建一個(gè)適合本文使用的自定義詞典庫(kù),因?yàn)閖ieba算法主要是構(gòu)建在統(tǒng)計(jì)詞典的基礎(chǔ)之上的。將整理出來(lái)的通用指標(biāo)項(xiàng)使用trie樹(shù)結(jié)構(gòu)構(gòu)造一個(gè)詞綴詞典。使用建好的詞綴詞典對(duì)待切分字符串進(jìn)行初次切分,會(huì)得到所有可能的切分組合。將得到的切分組合構(gòu)造出一個(gè)有向無(wú)環(huán)圖,然后使用動(dòng)態(tài)規(guī)劃算法,計(jì)算該有向無(wú)環(huán)圖的最大概率路徑,進(jìn)而尋找出該字符串的最大切分組合。雖然算法自帶有自定義詞典庫(kù),但也會(huì)有未登錄詞的出現(xiàn)。對(duì)于這些情況,算法基于HMM模型使用Viterbi算法將詞典中未出現(xiàn)的詞進(jìn)行切分。最后,將文章中組合的候選關(guān)鍵詞使用TextRank算法構(gòu)建有向有權(quán)圖,最后基于距離值將關(guān)聯(lián)詞對(duì)組合。
1.1 jieba詞庫(kù)
Jieba算法有一個(gè)自帶的詞典庫(kù)叫dict.txt,詞典庫(kù)中有2萬(wàn)多條詞,是作者訓(xùn)練得到的,詞典庫(kù)中包含詞出現(xiàn)的次數(shù)以及詞的詞性。詞典庫(kù)中的詞使用trie樹(shù)存儲(chǔ),trie數(shù)是一棵前綴樹(shù),如果兩項(xiàng)指標(biāo)的前幾個(gè)字一樣,就表示它們有相同的前綴。使用Trie樹(shù)結(jié)構(gòu)存儲(chǔ)可以實(shí)現(xiàn)快速的詞圖掃描并實(shí)現(xiàn)快速的查找,可以減少無(wú)謂字符串的比較。
1.2 新詞識(shí)別
雖然我們建有自定義詞庫(kù),對(duì)之后出現(xiàn)的新文章中的未登錄詞語(yǔ),我們采用新詞識(shí)別的方法。新詞識(shí)別基于HMM模型使用Viterbi算法將單字成詞表示為S、詞組開(kāi)頭表示B、詞組中間表示M、詞組結(jié)尾表示E??梢缘玫紿MM的各個(gè)參數(shù),然后使用Viterbi算法來(lái)解釋測(cè)試機(jī),得到分詞效果。
通過(guò)把連續(xù)的B,E湊到一起得到一個(gè)詞,單獨(dú)S放單,就得到一個(gè)詞。
1.3 關(guān)鍵詞提取
自定義的詞典確定了之后,對(duì)文本進(jìn)行關(guān)鍵字提取,提取出詞典中的通用指標(biāo)、數(shù)字和數(shù)字的單位。本文將指標(biāo)、數(shù)據(jù)和數(shù)據(jù)的單位作為一個(gè)整體進(jìn)行提取,通用指標(biāo)、數(shù)字和數(shù)字的單位在文章的句子上就具有一定的關(guān)聯(lián)性。關(guān)聯(lián)性體現(xiàn)在這三部分是在一句話(huà)中出現(xiàn),并且在一句話(huà)中這三部分的距離比較近。本文的關(guān)鍵詞是在原有文章結(jié)構(gòu)的基礎(chǔ)上提取,并且是在整句話(huà)上對(duì)關(guān)鍵詞劃分。所以本文重點(diǎn)介紹基于TextRank算法關(guān)鍵詞提取方法并根據(jù)此文本處理的實(shí)際情況對(duì)該算法進(jìn)行的改進(jìn)。
TextRank 用一個(gè)有向有權(quán)圖G=(V,E)表示,有向有權(quán)圖由點(diǎn)集合V和邊集合E組成。圖中兩個(gè)點(diǎn)Vi,Vj之間邊的權(quán)重Wij,對(duì)于一個(gè)給定的點(diǎn)Vi,In(Vi)為指向該點(diǎn)的集合,Out(Vi)為Vi指向的點(diǎn)集合。點(diǎn)Vi的得分定義如下:
其中d為阻尼系數(shù),取值范圍為0-1,表示從圖中某一點(diǎn)指向其他任一點(diǎn)的概率,一般取值為0.85。使用TextRank算法計(jì)算圖中各點(diǎn)的得分時(shí),需要給圖中的點(diǎn)指定任意的初值,遞歸計(jì)算直到收斂,即圖中任意一點(diǎn)的誤差率小于給定的極限值時(shí)就可以達(dá)到收斂,一般該極限值取0.0001。關(guān)鍵詞抽取的任務(wù)就是從一段給定的文本中自動(dòng)抽取我們想要獲取的詞語(yǔ)或詞組。TextRank算法直接從文本中利用局部詞匯之間關(guān)系(共現(xiàn)窗口)對(duì)后續(xù)關(guān)鍵詞進(jìn)行排序,將滿(mǎn)足條件約束關(guān)系的詞組抽取。由于本處關(guān)鍵詞為之的特殊性,我們不再使用貢獻(xiàn)窗口這個(gè)約束關(guān)系,而是詞匯之間的距離D,即有向有權(quán)圖邊上的權(quán)值。主要步驟如下:(1)將給定的年報(bào)文檔按完整的句子進(jìn)行分割,即 T=[S1,S2,…,Sm]。(2)對(duì)于每個(gè)句子Si∈T,使用我們的自定義詞庫(kù)將句子進(jìn)行切分,過(guò)濾掉停用詞,只保留指定的自定義詞庫(kù)中出現(xiàn)的詞語(yǔ)或詞組,即Si=[ti,1,ti,2,…,ti,m],其中ti,j∈Si是保留后的候選關(guān)鍵詞。(3)構(gòu)建候選關(guān)鍵詞的有向有權(quán)圖G=(V,E),其中V為節(jié)點(diǎn)集,由(2)生成的候選關(guān)鍵詞組成,然后采用距離關(guān)系構(gòu)造任兩點(diǎn)之間邊的權(quán)重,兩個(gè)節(jié)點(diǎn)之間存在邊僅當(dāng)它們對(duì)應(yīng)的詞匯在長(zhǎng)度為k,即關(guān)鍵詞之間字的個(gè)數(shù),通過(guò)訓(xùn)練得出k的閾值。
2? 基于距離的TextRank算法的優(yōu)點(diǎn)
TextRank算法是按整句對(duì)文章進(jìn)行劃分的,不會(huì)破壞文章句子的順序結(jié)構(gòu),這樣在將提取出的數(shù)據(jù)進(jìn)行整合時(shí),數(shù)據(jù)的結(jié)構(gòu)順序與文章是一致的。本文在進(jìn)行文本分詞時(shí),建立了針對(duì)中職院校年報(bào)數(shù)據(jù)的詞典庫(kù)。所以在對(duì)句子記性且分詞時(shí)能更快速準(zhǔn)確,也不會(huì)對(duì)文章中不含數(shù)據(jù)的句子做多余切分與處理。關(guān)聯(lián)性詞組的提取更有針對(duì)性。
3? 實(shí)驗(yàn)與結(jié)果分析
為了確定jieba分詞算法在中文分詞中的效果,本文提出了相對(duì)準(zhǔn)確率作為評(píng)價(jià)指標(biāo):
相對(duì)準(zhǔn)確率按照如下方法計(jì)算:
相聯(lián)詞對(duì)的勢(shì)必具有較高的識(shí)別率,但仍不能完全準(zhǔn)確100%的對(duì)文章中的數(shù)據(jù)進(jìn)行提取,所以方法還有待改進(jìn)、提升。
4? 結(jié)語(yǔ)
在進(jìn)行中文文本分詞的研究工作中,本文提出了基于距離的關(guān)聯(lián)詞對(duì)提取。首先建立自定義詞典庫(kù),將自定義詞典庫(kù)使用前綴數(shù)結(jié)構(gòu)進(jìn)行存儲(chǔ),以便之后高效的查找與搜索。為了不破壞句子的順序結(jié)構(gòu),使用基于TextRank的算法將文章按整句進(jìn)行切分。再使用分詞方案按自定義詞庫(kù)進(jìn)行詞語(yǔ)切分,將候選關(guān)鍵詞基于距離建立有向有權(quán)圖,最后提取關(guān)聯(lián)詞對(duì)。
由于該分詞算法是根據(jù)自定義詞典庫(kù)來(lái)對(duì)文章中的句子進(jìn)行針對(duì)性的詞語(yǔ)切分,所以算法能識(shí)別的關(guān)聯(lián)詞是按指標(biāo)項(xiàng)、數(shù)據(jù)、數(shù)據(jù)的單位這樣的順序來(lái)對(duì)提取完整的指標(biāo)項(xiàng)數(shù)據(jù),如“學(xué)校的占地面積為43561m2”,這樣的數(shù)據(jù)會(huì)準(zhǔn)確無(wú)誤的提取。如果指標(biāo)項(xiàng)、數(shù)據(jù)和數(shù)據(jù)的單位順序在文檔描述是出現(xiàn)調(diào)換,可能會(huì)給文本分析和數(shù)據(jù)提取帶來(lái)一定的誤差,如“學(xué)?,F(xiàn)有281名雙師型教師”,因?yàn)殛P(guān)聯(lián)詞提取是一三元組為結(jié)構(gòu)提取的,如果一開(kāi)始沒(méi)有找到指標(biāo)項(xiàng),可能就會(huì)造成數(shù)據(jù)與指標(biāo)項(xiàng)匹配造成混亂。
參考文獻(xiàn)
[1] 楊濤.中文信息處理中的自動(dòng)分詞方法研究[J].現(xiàn)代交際,2019(7):93-95.
[2] 嵩天,禮欣,黃天羽.Python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)[M].北京:高等教育出版社,2017.
[3] 趙華,鄧攀,張建偉.基于關(guān)聯(lián)詞對(duì)動(dòng)態(tài)抽取的報(bào)道關(guān)系檢測(cè)技術(shù)研究[J].計(jì)算機(jī)科學(xué),2010,37(6):237-239.