姚夢輝,劉軍旗,封瑞雪,陳根深,趙劍雄
(中國地質(zhì)大學(xué)(武漢) 教育部長江三峽庫區(qū)地質(zhì)災(zāi)害研究中心,武漢 430074)
在長期的地質(zhì)災(zāi)害調(diào)查、勘查及防治等工作中,積累了大量的數(shù)據(jù),既有結(jié)構(gòu)化的,也有非結(jié)構(gòu)化的,通常呈碎片化狀態(tài)以文本、圖形和圖像方式堆積著[1],其中包含了大量有效信息,同時也摻雜了很多無效信息,如何從這些數(shù)據(jù)中剔除無效信息,提取有用信息,為分析、決策提供支持是當(dāng)前地質(zhì)災(zāi)害研究工作中遇到的一個難點,同時也是當(dāng)前研究的熱點.嚴(yán)光生等[2]對地質(zhì)調(diào)查大數(shù)據(jù)研究中的主要問題進(jìn)行了分析;李超嶺等[3]對地質(zhì)調(diào)查主流程信息化的方向和目標(biāo)進(jìn)行了討論;李靖等[4]討論了大數(shù)據(jù)環(huán)境下適合多源異構(gòu)地質(zhì)數(shù)據(jù)的存儲技術(shù);李超嶺等[5]利用Hadoop HDFS與HBASE等工具針對非結(jié)構(gòu)化數(shù)據(jù)的存儲、閱讀和搜索進(jìn)行了研究;呂鵬飛等[6]提出了基于文獻(xiàn)的知識發(fā)現(xiàn)應(yīng)用于成礦預(yù)測領(lǐng)域的研究思路,并進(jìn)行了實驗分析;張戈一等[7]針對地質(zhì)圖書館書籍多,數(shù)據(jù)資料龐大,數(shù)據(jù)資料增長快而無法發(fā)現(xiàn)興趣點的問題,提出了基于大數(shù)據(jù)分析挖掘的地質(zhì)文獻(xiàn)推薦方法.
在地質(zhì)災(zāi)害非結(jié)構(gòu)化數(shù)據(jù)中含有大量的具有專題性質(zhì)和總結(jié)性質(zhì)的報告文檔以及地質(zhì)文獻(xiàn)類文本數(shù)據(jù).作為一種常見的非結(jié)構(gòu)化數(shù)據(jù),這些文本數(shù)據(jù)大多散落在本地硬盤或者以大字段的形式存儲在結(jié)構(gòu)化數(shù)據(jù)庫中[8],導(dǎo)致了針對這些非結(jié)構(gòu)化數(shù)據(jù)的存儲、發(fā)現(xiàn)和挖掘效率十分低下.針對這一問題,本文基于MongoDB,采用分類、段落切分、中文分詞、關(guān)鍵字提取等文本預(yù)處理技術(shù)和關(guān)鍵字檢索技術(shù),實現(xiàn)了地質(zhì)災(zāi)害文本數(shù)據(jù)中任意有用信息的快速檢索,以及含有相關(guān)檢索信息的文件名及文件中相關(guān)段落的智能提取,為地質(zhì)災(zāi)害不良信息的數(shù)據(jù)挖掘提供技術(shù)支持.
文本預(yù)處理包括中文分詞、詞性標(biāo)注、去停留詞、關(guān)鍵詞提取等操作,是中文自然語言處理的基礎(chǔ).
本文面向的地質(zhì)災(zāi)害文本主要是中文文本.中文是以字為基本單位,字與字組合成詞,表達(dá)具體的含義,中文的詞與詞之間是沒有空格,在對中文文本進(jìn)行處理時,計算機(jī)無法直接識別中文詞語,需要進(jìn)行中文分詞操作.
本文使用“結(jié)巴”分詞對文本進(jìn)行中文分詞操作[9].“結(jié)巴”分詞是基于詞典的中分分詞工具,其基本原理是:(1)基于字典構(gòu)建Trie樹,即字典樹,以詞組集<地質(zhì)災(zāi)害,地質(zhì)數(shù)據(jù),地學(xué)信息>為例,構(gòu)成Trie的一棵子樹,如圖1所示,從該子樹的根節(jié)點到任一節(jié)點的路徑上所有節(jié)點按順序排列的字符串都是該節(jié)點對應(yīng)的詞組;(2)基于最大概率法分詞,通過搜索字典樹,列出所有字典中出現(xiàn)的詞組構(gòu)成有向無環(huán)圖,轉(zhuǎn)換成單源最短路徑問題,其中最短的路徑就是分詞結(jié)果.以“地學(xué)信息”為例,可以分成<地,地學(xué),學(xué),學(xué)信,信,信息,息>,其中每一個詞都是一個節(jié)點,如圖2所示,分詞結(jié)果為“地學(xué),信息”,其中數(shù)字表示兩個節(jié)點之間的權(quán)重.設(shè)w表示某詞的權(quán)重,n表示總詞頻,ni表示該詞的詞頻,計算公式:
詞的詞性包括名詞、動詞、形容詞等各種詞性,真正能夠表達(dá)具體含義的一般只有名詞或者動詞.因此,需要將沒有具體含義的詞過濾掉,即去停留詞,保留能夠表達(dá)具體含義的詞.以“地質(zhì)災(zāi)害數(shù)據(jù)中包含了大量的文本信息,其中蘊(yùn)含了豐富的信息”,分詞后詞性標(biāo)注的結(jié)果為:“地質(zhì)災(zāi)害/n,數(shù)據(jù)/n,中/f,包含/v,了/ul,大量/n,的/uj,文本/n,數(shù)據(jù)/n,,/x,其中/r,蘊(yùn)含/v,了/ul,豐富/a,的/uj,信息/n”;去停留詞之后的結(jié)果為:“地質(zhì)災(zāi)害/n,數(shù)據(jù)/n,大量/n,文本/n,數(shù)據(jù)/n,蘊(yùn)含/v,信息/n”.
圖1 Trie樹示例
圖2 “地學(xué)信息”構(gòu)成的有向無環(huán)圖
關(guān)鍵詞是指能夠表示一篇文檔的基本的特征的關(guān)鍵詞語,關(guān)鍵詞提取就是從文檔中抽取一些詞語作為這篇文檔的關(guān)鍵詞.本文采用TF-IDF算法提取關(guān)鍵詞.TF-IDF是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù),通過統(tǒng)計的方法來評估一個詞對一篇文檔的重要程度,具體來說就是如果一個詞在本篇文檔中出現(xiàn)的次數(shù)多,而在其他文檔中出現(xiàn)的次數(shù)小,則該詞更能代表該文檔的主題[10].TF-IDF計算公式如下:
其中,TF表示某個詞在文檔出現(xiàn)的頻率,IDF(Inverse Document Frequency)表示語料庫中包含該詞的文檔的數(shù)目的倒數(shù).dx表示在文檔d中詞x出現(xiàn)的次數(shù),d表示文檔d中詞的總數(shù),N表示語料庫中文檔的總數(shù),N(x)表示語料庫中包含詞x的文檔個數(shù).
使用TF-IDF算法提取關(guān)鍵詞,在中文分詞、詞性標(biāo)注和去停留詞的基礎(chǔ)上,計算每個詞的TF-IDF值,然后按照每個詞的TF-IDF值降序排列,輸出指定個數(shù)的詞作為關(guān)鍵詞.
對于非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)的傳統(tǒng)的存儲方式存在很多的弊端,而非關(guān)系型數(shù)據(jù)庫對于非結(jié)構(gòu)化數(shù)據(jù)存儲,則具有關(guān)系型數(shù)據(jù)庫所不能比擬的優(yōu)勢.當(dāng)前許多學(xué)者對于矢量數(shù)據(jù)[11,12]、時空數(shù)據(jù)[13-15]的非關(guān)系數(shù)據(jù)庫存儲方面的研究為我們對大量文本數(shù)據(jù)的存儲提供了借鑒.文本數(shù)據(jù)作為一種常見的非結(jié)構(gòu)化數(shù)據(jù),適合使用非關(guān)系型數(shù)據(jù)庫進(jìn)行存儲.
本選取MongoDB作為地質(zhì)災(zāi)害文本的存儲工具.MongoDB[16]是一種面向文檔的非關(guān)系型數(shù)據(jù)庫,以文檔(Document)作為最基本的存儲單位,文檔中以松散的“key/value”對形式表達(dá),數(shù)據(jù)結(jié)構(gòu)靈活,并內(nèi)置文件存儲規(guī)范GridFS.
GridFS的存儲機(jī)制是將文件分割成多個小的chunk(文件片段),片段大小一般為256 k,每個chunk是一個文檔,這些chunk存儲在chunks中構(gòu)成一個集合.因此GridFS在本質(zhì)上仍然是使用集合對文件進(jìn)行存儲.GridFS使用兩個集合存儲一個文件,即fs.files和fs.chunks.這樣每個子區(qū)域就包含了兩個集合,文件內(nèi)容存儲在chunks中,與文件相關(guān)的信息如文件名、文件類型、入庫時間等存儲在files中.
信息檢索是指用戶從大量包含各種信息的文檔集合中查找所需要的信息或知識的過程.常用的信息檢索模型有4種:布爾模型[17]、空間向量模型[18]、概率模型[19]以及語言模型[20].布爾模型即基于給定查詢詞的檢索,通過“and”、“or”、“not”3 種運(yùn)算符來連接,構(gòu)成一個布爾表達(dá)式.空間向量模型是將查詢和文檔作為兩個空間向量,查詢和文檔的相關(guān)度由向量的余弦值決定.概率模型則是根據(jù)文檔和給定查詢相似的概率大小判斷文檔的相關(guān)性.語言模型將給定的查詢看作是由文檔生成的,查詢是轉(zhuǎn)化為計算文檔生成查詢的概率.通過對比以上4種模型,布爾模型是最簡單、最直接的一種查詢方法.
如圖3所示,本文針對地質(zhì)災(zāi)害文本數(shù)據(jù)的挖掘包括兩個模塊:第一個模塊是數(shù)據(jù)上傳,包括數(shù)據(jù)的搜集整理、文件名解析,文件內(nèi)容讀取,中文分詞,詞性標(biāo)注、去停留詞、提取關(guān)鍵詞等操作;第二個模塊是信息的提取,包括文件段落切分,中文分詞,關(guān)鍵詞查詢等.通過以上兩個模塊實現(xiàn)了地質(zhì)災(zāi)害文本數(shù)據(jù)的分類存儲及有用信息的檢索與統(tǒng)計.
圖3 地質(zhì)災(zāi)害文本存儲、查詢實現(xiàn)流程
本文通過兩種方式判定文本的類型:文件名、文件內(nèi)容.(1)通常情況下,在地質(zhì)災(zāi)害類的文本名稱中都包括明顯的關(guān)鍵字,通過關(guān)鍵字,就可以確定文本的類型.(2)對于文本名稱不清晰或者含有多個關(guān)鍵字而無法區(qū)分的情況下,則不能通過文本名稱進(jìn)行判定.因此,本文在數(shù)據(jù)庫中劃分兩個文本的存儲區(qū)域,存儲區(qū)域和臨時存儲區(qū)域.每個區(qū)域又按照常見的地質(zhì)災(zāi)害類型劃分為崩塌、滑坡、泥石流、地裂縫、地面沉降、地面塌陷六個子區(qū)域,如表1所示.存儲區(qū)域存儲文件名稱特征明顯的文本文件,臨時存儲區(qū)域存儲文件名特征不明顯的文本.
表1 地質(zhì)災(zāi)害數(shù)據(jù)存儲區(qū)域劃分
如圖3所示,文本存儲部分說明了文件存儲的過程,對于文本文件名特征明顯的文本,根據(jù)其特征與分類列表對比,找到文本所屬分類,存入數(shù)據(jù)庫.對于文本文件名特征不明顯的文本,需要對文本內(nèi)容進(jìn)行解析.其大致過程為:1)讀取文件內(nèi)容;2)中文分詞、詞性標(biāo)注、去停留詞;3)提取關(guān)鍵詞.在提取關(guān)鍵詞之后,對文件類型進(jìn)行匹配.例如,關(guān)鍵詞中同時含有滑坡和泥石流兩個詞,那么,就將TF-IDF較大的那個詞作為文件的類型存入臨時區(qū)域中對應(yīng)的子區(qū)域內(nèi).
本文通過中國知網(wǎng)獲取地質(zhì)災(zāi)害類文獻(xiàn)169篇作為測試數(shù)據(jù),整理成word文檔后,按照文本的存儲規(guī)則存入數(shù)據(jù)庫,依據(jù)文件名中的關(guān)鍵詞和文件內(nèi)容關(guān)鍵詞進(jìn)行分類,169篇文獻(xiàn)的分類結(jié)果如圖4所示.其中滑坡類34篇,泥石流類30篇,崩塌類24篇,地裂縫13篇,地面沉降20篇,地面塌陷15篇.
圖4 分類后文本分布
本文使用布爾模型對文本進(jìn)行檢索,給定的查詢詞可以是單個詞也可以是多個詞,并通過“and”來連接布爾表達(dá)式,即檢索目標(biāo)中同時含有所有給定查詢詞時才會被記錄到查詢結(jié)果中.
通過布爾模型對文本內(nèi)容對文本內(nèi)容進(jìn)行檢索的大致過程是:文件段落劃分、中文分詞、查詢詞檢索.最后,將符合布爾表達(dá)式的文本名及段落寫入查詢結(jié)果,并統(tǒng)計文件和段落個數(shù).
1)文件段落切分.在文本檢索的過程中,我們關(guān)心的不僅僅是整個文件,而是深入到了文件內(nèi)部的具體段落,目標(biāo)是從大量的文本數(shù)據(jù)中快速的提取含有有用信息的段落.因此,在讀取文件內(nèi)容之后,對文件內(nèi)容按照段落進(jìn)行切分,以段落為基本單位查詢檢索.在word文檔中,以換行符為段落標(biāo)志,一個換行符代表一個段落.但是也可能出現(xiàn)的情況是空行,只有換行符,沒有內(nèi)容,對于這樣的段落將被排除在外.
2)中文分詞.中文分詞是對中文文本進(jìn)行檢索的基礎(chǔ).此處分詞,按照“結(jié)巴”分詞的搜索引擎模式進(jìn)行,這種模式將對文本進(jìn)行所有可能的切分,以避免歧義造成的無法檢索到結(jié)果的問題.以“地質(zhì)災(zāi)害數(shù)據(jù)中包含了大量的文本數(shù)據(jù),其中蘊(yùn)含了豐富的信息”為例,按照搜索引擎模式切分,切分結(jié)果為“地質(zhì)/災(zāi)害/地質(zhì)災(zāi)害/數(shù)據(jù)/中/包含/了/大量/的/文本/數(shù)據(jù)/,/其中/蘊(yùn)含/了/豐富/的/信息”,其中,“地質(zhì)災(zāi)害”被切分成了“地質(zhì)”、 “災(zāi)害”、 “地質(zhì)災(zāi)害”三個詞,包含了能夠切分的所有情況.
4)給定查詢檢索.在完成文件段落切分、中文分詞之后,通過“and”連接關(guān)鍵詞,構(gòu)建布爾表達(dá)式.將關(guān)鍵詞依次與分詞列表進(jìn)行對比,當(dāng)查詢目標(biāo)中含有所有的關(guān)鍵詞時,將段落記錄到查詢結(jié)果中,并將文件信息加入統(tǒng)計結(jié)果.
本文通過“汶川地震”、“降雨誘發(fā)”和“滑坡”三個關(guān)鍵詞對測試數(shù)據(jù)進(jìn)行檢索,檢索結(jié)果如圖5、圖6所示.圖5是檢索的統(tǒng)計結(jié)果,在測試數(shù)據(jù)中,符合查詢條件的有3個文件,26個段落.圖6是符合查詢條件的段落信息,可以看到段落的具體內(nèi)容,以及段落所在的文件.
通過上述處理,實現(xiàn)了地質(zhì)災(zāi)害文本數(shù)據(jù)中任意有用信息的快速檢索及統(tǒng)計,可以從一個含有大量文檔的混雜數(shù)據(jù)集中,快速得到含有任意檢索信息的文件名、該文件存儲位置、含有檢索信息的文件中的相關(guān)段落等有效信息.
本文針對當(dāng)前傳統(tǒng)關(guān)系型數(shù)據(jù)庫無法對大量文本數(shù)據(jù)進(jìn)行有效存儲的問題以及地質(zhì)文本數(shù)據(jù)中有用信息提取所面臨的困難,基于MongoDB,使用段落切分、中文分詞、關(guān)鍵字提取、信息檢索等技術(shù)實現(xiàn)了地質(zhì)災(zāi)害文本信息的快速檢索與統(tǒng)計.
(1)采用對文件名進(jìn)行關(guān)鍵字提取、對比識別等方法對混雜數(shù)據(jù)集中的文件進(jìn)行合理分類和提取;
圖5 基于關(guān)鍵詞檢索結(jié)果統(tǒng)計
圖6 基于關(guān)鍵詞檢索的部分檢索結(jié)果
(2)對文件名特征不明顯的文本,采用中文分詞、TF-IDF關(guān)鍵詞提取等方法對文件內(nèi)容進(jìn)行處理、分類,也可以通過這個方法對(1)中分類的合理性進(jìn)行驗證;
(3)通過任意檢索關(guān)鍵詞對混雜數(shù)據(jù)集進(jìn)行有用信息的快速檢索和統(tǒng)計,獲得含有檢索信息的文件及文件中具體的段落.
1 吳沖龍,劉剛,張夏林,等.地質(zhì)科學(xué)大數(shù)據(jù)及其利用的若干問題探討.科學(xué)通報,2016,61(16):1797-1807.
2 嚴(yán)光生,薛群威,肖克炎,等.地質(zhì)調(diào)查大數(shù)據(jù)研究的主要問題分析.地質(zhì)通報,2015,34(7):1273-1279.
3 李超嶺,李豐丹,李健強(qiáng),等.智能地質(zhì)調(diào)查體系與架構(gòu).中國地質(zhì),2015,42(4):828-838.
4 李婧,陳建平,王翔.地質(zhì)大數(shù)據(jù)存儲技術(shù).地質(zhì)通報,2015,34(8):1589-1594.
5 李超嶺,李健強(qiáng),張宏春,等.智能地質(zhì)調(diào)查大數(shù)據(jù)應(yīng)用體系架構(gòu)與關(guān)鍵技術(shù).地質(zhì)通報,2015,34(7):1288-1299.
6 呂鵬飛,王春寧,周峰,等.基于文獻(xiàn)的知識發(fā)現(xiàn)在成礦預(yù)測領(lǐng)域的應(yīng)用研究.中國礦業(yè),2017,26(9):85-91.
7 張戈一,胡博然,常力恒,等.基于大數(shù)據(jù)分析挖掘的地質(zhì)文獻(xiàn)推薦方法研究.中國礦業(yè),2017,26(9):92-97.
8 王存宇,李珂,許錦才,等.面向云存儲的非結(jié)構(gòu)化數(shù)據(jù)存儲研究.計算機(jī)時代,2015,(5):13-15,18.
9 FXSJY:Python 中文分詞組件 jieba.http://www.oschina.net/p/jieba/,2017-07-10.
10 牛萍,黃德根.TF-IDF與規(guī)則相結(jié)合的中文關(guān)鍵詞自動抽取研究.小型微型計算機(jī)系統(tǒng),2016,37(4):711-715.
11 雷德龍,郭殿升,陳崇成,等.基于MongoDB的矢量空間數(shù)據(jù)云存儲與處理系統(tǒng).地球信息科學(xué)學(xué)報,2014,16(4):507-516.
12 陳崇成,林劍峰,吳小竹,等.基于NoSQL的海量空間數(shù)據(jù)云存儲與服務(wù)方法.地球信息科學(xué)學(xué)報,2013,15(2):166-174.
13 閆瑋.基于MongoDB與Hadoop的地學(xué)遙感大數(shù)據(jù)管理系統(tǒng)的設(shè)計[碩士學(xué)位論文].蘭州:蘭州大學(xué),2016.
14 廖理.基于NoSQL的時空數(shù)據(jù)模型構(gòu)建和存儲方案研究[碩士學(xué)位論文].重慶:重慶大學(xué),2015.
15 闕翔.面向動態(tài)過程模擬和實時表達(dá)的地質(zhì)時空數(shù)據(jù)模型研究[博士學(xué)位論文].武漢:中國地質(zhì)大學(xué),2015.
16 MongoDB:What is MongoDB? https://www.mongodb.com/what-is-mongodb.[2017-07-09].
17 Dvorsky J,Pokorny J,Sná?el V.Word-based compression methods and indexing for text retrieval systems.Proceedings of the 3rd East European Conf.on Advances in Databases and Information Systems.Maribor,Slovenia.2009.76-84.
18 Salton G,Wong A,Yang CS.A vector space model for automatic indexing.Communications of the ACM,1975,18(11):613-620.[doi:10.1145/361219.361220]
19 Gudivada VN,Raghavan VV,Grosky WI,et al.Information retrieval on the world wide web.IEEE Internet Computing,1997,1(5):58-68.[doi:10.1109/4236.623969]
20 Ponte JM,Croft WB.A language modeling approach to information retrieval.Proceedings of the 21st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval.Melbourne,Australia.1998.275-281.