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