王 玲,劉曉清,何震瀛,奚軍慶,項(xiàng) 焱
(1 復(fù)旦大學(xué) 軟件學(xué)院,上海 200438;2 復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200438;3 司法部信息中心,北京 100020;4 武漢大學(xué) 法學(xué)院,武漢 430000)
隨著新興技術(shù)的發(fā)展,數(shù)據(jù)流量增長速率不斷加快,大數(shù)據(jù)成為各行各業(yè)的研究熱點(diǎn)。司法大數(shù)據(jù)的運(yùn)用正成為提高司法業(yè)務(wù)效率、推進(jìn)審判體系和審判能力的現(xiàn)代化重要手段。絕大部分的司法數(shù)據(jù),如:法律文書、法律新聞等法律類文章都是非結(jié)構(gòu)化數(shù)據(jù),其中蘊(yùn)含著案件類別、案件發(fā)生時(shí)間、案件發(fā)生地點(diǎn)等重要信息。如何處理這些非結(jié)構(gòu)化數(shù)據(jù),挖掘其中的重要信息亟待解決。
法律文書或法律類新聞中,往往包含地理位置信息,提取文本中的地理信息并精準(zhǔn)定位,對案件地域分布研究具有重要意義。因此,需要設(shè)計(jì)一個(gè)能自動判別法律文章的行政區(qū)劃方法,以滿足用戶希望根據(jù)法律文章的地點(diǎn)維度做數(shù)據(jù)分析的需求。
對于文本數(shù)據(jù)關(guān)鍵信息的獲取,常見的是通過主題建模方式抽取文章的潛在主題。文本主題即文本的主旨思想,表現(xiàn)為一系列相關(guān)的詞語。如:一篇法律文章中涉及到“離婚”這個(gè)主題,那么出現(xiàn)“婚姻”、“子女撫養(yǎng)權(quán)”、“財(cái)產(chǎn)糾紛”等詞語的可能性會比較高。從數(shù)學(xué)角度來看,主題就是語料庫中詞語的條件概率分布。一個(gè)詞語和主題關(guān)系越緊密,其在文章中出現(xiàn)的條件概率越大。主題模型是對文字中隱含主題的一種建模方法。LDA(Latent Dirichlet Allocation)[1]是一種經(jīng)典的文檔主題生成模型,通過對文本進(jìn)行統(tǒng)計(jì)分析,學(xué)習(xí)出主題的分布,可實(shí)現(xiàn)關(guān)鍵詞提取及文章聚類。LDA假設(shè)在一個(gè)文本集合中存在多個(gè)主題,每個(gè)主題下又都包含一系列的詞匯。那么對集合中任意一篇文章,可看作是按照一定概率選擇主題及詞匯構(gòu)造而成。集合中的單詞構(gòu)成的概率分布,組成了一個(gè)主題。不同的主題再構(gòu)成一個(gè)概率分布,最終組成文章。LDA首先按照一定概率選擇某個(gè)主題,接著在此主題下以一定的概率選出某個(gè)詞,作為該文章的第一個(gè)詞。通過不斷迭代上述步驟模擬文章生成的過程,最終得到一篇完整的文章。目前針對文章主題,各方學(xué)者展開了許多研究工作。比較常見的有主題檢測與跟蹤[2]、主題生命周期以及突發(fā)性[3]等。但是,這些研究都將重點(diǎn)放在了給定范圍內(nèi)文檔主題的變化狀態(tài),并未考慮該主題在全局范圍的地位。因此,文獻(xiàn)[4]中提出了獨(dú)特主題這一概念,用來尋找只在小范圍內(nèi)頻繁出現(xiàn)而不在全部文檔中出現(xiàn)的主題。
常見的大數(shù)據(jù)處理技術(shù)有HBase[5]、Spark[6]等。HBase是一個(gè)開源的非關(guān)系型分布式數(shù)據(jù)庫,其參考了谷歌的BigTable[7]建模,可以容錯地存儲海量稀疏的數(shù)據(jù)。Spark是一種快速、通用、可擴(kuò)展的大數(shù)據(jù)分析引擎,為分布式數(shù)據(jù)集的處理提供了一個(gè)有效的框架,并以高效的方式處理分布式數(shù)據(jù)集。Spark實(shí)現(xiàn)了一種分布式的內(nèi)存抽象,稱為彈性分布式數(shù)據(jù)集[8]。其能夠廣泛適用于數(shù)據(jù)并行類應(yīng)用。其中包括:批處理、結(jié)構(gòu)化查詢、實(shí)時(shí)流處理、機(jī)器學(xué)習(xí)與圖計(jì)算等。
數(shù)據(jù)倉庫技術(shù)常應(yīng)用于大規(guī)模數(shù)據(jù)分析工作。OLAP(Online Analytical Processing)[9]是數(shù)據(jù)倉庫[10]提供的一種對儲存在數(shù)據(jù)庫中的多維數(shù)據(jù)進(jìn)行搜索和分析的技術(shù),其能在不同維度上對數(shù)據(jù)進(jìn)行搜索和分析。常規(guī)的OLAP實(shí)現(xiàn)方式,是用數(shù)據(jù)庫中的多維數(shù)據(jù),構(gòu)建數(shù)據(jù)立方體[11],多維數(shù)據(jù)的每一維都對應(yīng)到數(shù)據(jù)立方體的每一條軸上。通過對數(shù)據(jù)立方體各個(gè)維度的組合,實(shí)現(xiàn)OLAP分析。此外,OLAP還提供了諸如上卷、下鉆、切片等操作,使用戶可以更深入的分析數(shù)據(jù)。然而OLAP的這些操作大都只支持關(guān)系型數(shù)據(jù)。
針對上述提到的種種現(xiàn)象和問題,本文設(shè)計(jì)了一個(gè)面向司法大數(shù)據(jù)的文本主題OLAP系統(tǒng)。通過對文本進(jìn)行預(yù)處理及分析,來實(shí)現(xiàn)法律文章數(shù)據(jù)行政區(qū)劃歸類、主題建模、獨(dú)特主題查找以及基于此的OLAP,具有重要的實(shí)際意義。本文從3方面對此進(jìn)行了研究:
(1)針對司法數(shù)據(jù)量龐大且多以非關(guān)系型數(shù)據(jù)為主的特點(diǎn),設(shè)計(jì)了一個(gè)數(shù)據(jù)模型以及基于此基礎(chǔ)的操作符,通過各種操作符的組合達(dá)到數(shù)據(jù)處理的目的。底層使用了Spark分布式處理系統(tǒng)來實(shí)現(xiàn),以此達(dá)到高效地處理大規(guī)模非關(guān)系型數(shù)據(jù)的目的。
(2)針對法律文章數(shù)據(jù)中的主題、時(shí)間、地理位置等多維度信息挖掘,設(shè)計(jì)并實(shí)現(xiàn)了一系列數(shù)據(jù)處理方法,使數(shù)據(jù)可以最終變?yōu)橹黝}立方體形式,供OLAP查詢使用。
(3)設(shè)計(jì)了基于OLAP的線上查詢模塊以獲取司法數(shù)據(jù)關(guān)鍵信息。
本文設(shè)計(jì)了基于Span數(shù)據(jù)模型的文本主題OLAP系統(tǒng)。系統(tǒng)由線上查詢和離線處理兩部分組成,整體流程如圖1所示。
圖1 系統(tǒng)整體流程
系統(tǒng)使用Scrapy分布式爬蟲框架,爬取網(wǎng)絡(luò)上的法律文章[12],利用Spark對文本進(jìn)行清洗、去重以及分詞處理[13]。本文設(shè)計(jì)了Span數(shù)據(jù)模型,將處理后的文本以Span形式存入HBase中。隨后,使用Span的操作符進(jìn)行關(guān)鍵詞提取、行政區(qū)劃歸類以及主LDA模型訓(xùn)練,最終得到具有時(shí)間維度和地理維度的主題模型立方體。當(dāng)用戶發(fā)起OLAP查詢時(shí),系統(tǒng)根據(jù)用戶的查詢操作,結(jié)合之前保存在HBase中的數(shù)據(jù)以及主題立方體,進(jìn)行關(guān)鍵詞相關(guān)主題匹配和最大獨(dú)立主題范圍查詢。用戶可以對返回的結(jié)果執(zhí)行上卷、下鉆等OLAP操作來獲取感興趣的信息。
在傳統(tǒng)的數(shù)據(jù)模型基礎(chǔ)上,本文提出了Span關(guān)系模型,來描述原本非關(guān)系型的文本數(shù)據(jù),并在此基礎(chǔ)上設(shè)計(jì)了適用于此關(guān)系模型的操作符和任務(wù)。
系統(tǒng)將每篇法律文章表示為關(guān)系模型的一行,其中包含的屬性見表1。如:id為文章的編號、title為文章的標(biāo)題、text為文章的正文、text_spans為文章正文經(jīng)過切詞和詞性標(biāo)注后的結(jié)果。
表1 數(shù)據(jù)模型
其中,“text_spans”和“title_spans”兩列的類型為List。Span的定義見表2。
每一個(gè)Span都是文章在分詞之后的一塊內(nèi)容,每個(gè)Span包含表2所示的4個(gè)屬性。
表2 Span定義
其中,word是Span的詞語;pos是Span的詞性;start是Span在文章中的起始位置;end是Span在文章中的結(jié)束位置。
本文將每篇文章的text_spans字段看作一張表,表中的每一行都為一個(gè)span。這樣的表示方式對于理解之后定義的諸多基于span之上的操作是有幫助的。具體表示方式如圖2所示。
圖2 Spans示例
在將每篇法律文章轉(zhuǎn)換為Span的集合之后,本文在這些Span上執(zhí)行統(tǒng)一的操作來實(shí)現(xiàn)信息抽取。在定義完操作符后,用戶可以將一系列操作符進(jìn)行組合,形成一個(gè)任務(wù),每一個(gè)任務(wù)都是對文章信息的一次抽取,可以通過一系列操作符,組合出LDA模型的構(gòu)建過程。表3中列出了本文設(shè)計(jì)的主要文章級別的操作符及其作用。
表3 文章級別的操作符列表
基于上述操作符,可構(gòu)建相應(yīng)的信息抽取任務(wù)。給定主題數(shù)K=100、alpha=0.5、beta=0.01、N=100,利用本文設(shè)計(jì)的操作符,實(shí)現(xiàn)LDA模型訓(xùn)練的過程如下:
第一步:用Exclude去除Corpus中的停用詞;使用Project將不用的列刪除;使用AddColumn和Update添加“topic”屬性并且賦初值。
第二步:進(jìn)行吉布斯采樣,根據(jù)其采樣結(jié)果,以服從多項(xiàng)式分布的方式,重新隨機(jī)分配每個(gè)詞對應(yīng)的主題。為了讓模型收斂,此步驟需要執(zhí)行N次循環(huán)。
第三步:使用Aggregate統(tǒng)計(jì)每個(gè)主題的詞分布。
1.2.1 基于規(guī)則的行政區(qū)劃歸類方法
目前,多數(shù)采用機(jī)器學(xué)習(xí)或者深度學(xué)習(xí)的方法,對文章主題進(jìn)行分類。基于學(xué)習(xí)的文本分類方法,不適用于本文期望實(shí)現(xiàn)的行政區(qū)劃歸類功能。由于基于學(xué)習(xí)的文本分類方法,需要大量的人工標(biāo)注數(shù)據(jù)集,而本文為OLAP系統(tǒng),要求能實(shí)現(xiàn)上卷、下鉆等用戶需求。單一粒度的地理維度顯然很難滿足OLAP用戶的需求,當(dāng)用戶對某一主題感興趣的時(shí)候,往往希望可以獲得更細(xì)粒度的信息。
綜上,本文設(shè)計(jì)了一個(gè)基于規(guī)則的行政區(qū)劃歸類方法。該方法首先對文本分詞后的結(jié)果進(jìn)行地名實(shí)體提取,再通過與三級行政區(qū)劃表的比較,結(jié)合多條規(guī)則,求出最符合文章的行政區(qū)劃,對于無法通過前述方法求出行政區(qū)劃的文章,再利用百度地圖API進(jìn)行二次歸類,最終達(dá)到一個(gè)較高的準(zhǔn)確率。
基礎(chǔ)算法通過比較詞頻的方式來決定行政區(qū)劃的可信度。具體方法如下:
(1)將分詞結(jié)果中詞性為“ns”(地名)的詞匯取出,將該詞與出現(xiàn)次數(shù)保存進(jìn)P。
(2)遍歷P中的地名詞匯w,將w與一、二、三級行政區(qū)劃表中的地名進(jìn)行匹配。將匹配到的行政區(qū)劃a和w的加權(quán)詞頻存入U(xiǎn)中。
(3)將U中每個(gè)行政區(qū)劃的詞頻進(jìn)行開根號處理(目的是降低詞頻飽和度),獲取初步的可信度分?jǐn)?shù)。
(4)對U中二、三級行政區(qū)劃的分?jǐn)?shù)加到上級行政區(qū)劃上。
(5)在U中尋找分值最大的一級行政區(qū)劃,然后在該區(qū)劃中尋找分值最大的二級行政區(qū)劃。
當(dāng)一篇法律文章中同時(shí)出現(xiàn)上下兩級行政區(qū)劃(如:同時(shí)出現(xiàn)“上海市”“浦東新區(qū)”)時(shí),這篇文章可能比只出現(xiàn)“上?!钡奈恼赂锌赡軐儆谏虾J校础吧虾J小焙汀捌謻|新區(qū)”兩級行政區(qū)劃在相互印證。因此,本文對同時(shí)出現(xiàn)上下兩級行政區(qū)劃的情況做出加分處理,在上面基礎(chǔ)方法的第(3)步之后,“上海市”的分?jǐn)?shù)將乘以(1+γ),γ為獎勵系數(shù)。另外,法律文章標(biāo)題中也蘊(yùn)含地理位置信息。例如 “湖南衡陽女子,5年第5次離婚案宣判”,就能明顯辨別出這篇法律文章的歸屬地為湖南省衡陽縣。因此,本文對文章標(biāo)題也進(jìn)行了分詞與詞性標(biāo)注,以同樣的辦法應(yīng)用了上一節(jié)的(1)~(4)步,獲取了標(biāo)題的U,進(jìn)行加權(quán)求和。然而,部分文章雖然包含了許多行政區(qū)劃,但實(shí)際上是一篇綜合性的文章,無法進(jìn)行明確的行政區(qū)劃歸類。本文將出現(xiàn)大于等于4個(gè)省的文章,當(dāng)做綜合性文章;將某省內(nèi)大于等于4個(gè)市的文章當(dāng)做該省內(nèi)的綜合性文章。綜合這3條優(yōu)化規(guī)則后,最終算法流程如算法1所示。
算法1行政區(qū)劃歸類算法
輸入Ptext,PtopicAdministrativeDivisionDictionary as dic
輸出location,child_location
for(w,tf)inPtext,Ptopic:
locationList = findAdministrativeDivisionInDic(w, dic)
if locationList != null:
for loc inlocationList:
U.put(loc,U.getOrDefault(loc, 0)+ tf/locationList.size())
end for
for(loc,score)inUtext,Utopic:
if haschildLoc inU:
score = score *(1+γ)
childLoc.score = childloc.score *(1+γ)
for(loc,score)in Utext,Utopic:
if loc is childLoc:
parentLoc.score += loc.score
for(loc,score)in Utext,Utopic:
if loc inUtext = loc in Utopic :
score =scoretext +scoretopic
Uall.put(loc,score)
find the loc with biggest score inUall
find thechildLoc of loc with biggest socre in Uall
returnloc,childLoc
最后,本文對于行政區(qū)劃歸類方法進(jìn)行了再度的優(yōu)化,對那些無法進(jìn)行歸類的文章,利用百度地圖API的地點(diǎn)檢索服務(wù)。
1.2.2 主題立方體構(gòu)建方法
通過對法律文章預(yù)處理和行政區(qū)劃歸類,法律文章?lián)碛辛藭r(shí)間和地點(diǎn)兩個(gè)維度,因此主題立方體[14]可以表示為如圖3的形式。其中橫坐標(biāo)為地點(diǎn),縱坐標(biāo)為時(shí)間,每個(gè)小方塊中的內(nèi)容即主題立方體的度量,即某一時(shí)間某一地點(diǎn)的主題分布。對于擁有時(shí)間和地點(diǎn)信息的法律文章數(shù)據(jù),用戶通過數(shù)據(jù)立方體,可以從時(shí)間和地域兩個(gè)維度對這批數(shù)據(jù)進(jìn)行OLAP操作。當(dāng)用戶想獲取2月份上海市的法律文章時(shí),只需要數(shù)據(jù)立方體中時(shí)間維從2月1日~2月29日以及地域維為上海的數(shù)據(jù)即可。
圖3 主題立方體表示方式一
由于圖3所示的定義中缺失城市地理位置信息這一重要信息,從圖中無法知悉上海市和江蘇省是否相鄰,這種相鄰關(guān)系在計(jì)算最大獨(dú)特主題范圍時(shí)非常重要。因此,本文將主題立方體表示為圖4所示的形式,更能反映主題立方體真實(shí)的狀態(tài)。圖4是一張三維的中國地圖,其厚度代表時(shí)間維度,時(shí)間沿著z軸的方向延伸。這樣的表示方式保留了各省份之間的地理位置相對關(guān)系,可以承載更多的地理位置信息,同時(shí)也更加直觀,便于理解。
圖4 主題立方體表示方式二
因此,本文提出了一種在多維文本集的主題立方體度量計(jì)算方法。其計(jì)算流程如下:
(2)對Cube中的每個(gè)中等大小單元進(jìn)行訓(xùn)練:中等大小單元為一個(gè)二維的范圍。例如“上海市1月份”的所有法律文章,粒度選擇為某省某一個(gè)月份的所有法律文章。對于每個(gè)子單元ci,指定主題數(shù)量為Kl,利用吉布斯采樣的方法訓(xùn)練出Kl個(gè)子主題。所以,總的子主題數(shù)|cell|*Kl,|cell|為全部子單元個(gè)數(shù)。
(4)經(jīng)過第(3)步之后,全局主題得到了擴(kuò)展,這其中的每個(gè)主題之間的Kl散度都超過閾值τ,則將這些主題做為最終的主題模型φ。最后,使用該主題模型φ,通過吉布斯采樣的方式,計(jì)算每篇文章的主題分布θ,這一步被稱為推導(dǎo)。
(5)獲得了每篇文章的主題分布θ后,可以簡單的聚合出每個(gè)最小單元的主題分布。此外,在時(shí)間維和地點(diǎn)維的不同粒度上進(jìn)行聚合,以此來滿足OLAP的上卷、下鉆、切片等要求。
此后,將每篇文章的主題分布、一些單元的主題分布以及主題模型中每個(gè)主題的詞概率分布存入HBase中,供OLAP模塊使用。
1.3.1 基于倒排索引的關(guān)鍵詞搜索法
由于關(guān)鍵詞搜索是線上模塊,對于線上模塊來說一個(gè)非常重要的指標(biāo)就是時(shí)間效率。因此,OLAP系統(tǒng)對線上查詢的性能要求較高,找到一種提升運(yùn)行效率的算法尤為關(guān)鍵。
本文關(guān)鍵詞搜索算法基于倒排索引的思想,將詞匯表中的所有詞作為關(guān)鍵,將包含這個(gè)詞的所有主題以及這個(gè)詞在這些主題中的概率作為值,存入HBase中。當(dāng)用戶輸入某幾個(gè)關(guān)鍵詞時(shí),只需在HBase中找到相應(yīng)的條目,統(tǒng)計(jì)value中存在的主題分?jǐn)?shù)即可。例如:表4展示了HBase中有“交通肇事”、“駕駛”、“離婚”、“財(cái)產(chǎn)分割”等關(guān)鍵詞,其中關(guān)鍵詞“交通肇事”在主題1、5、7中出現(xiàn),概率分別是0.032 3、0.012 3、0.020 4。輸入關(guān)鍵詞“交通肇事 駕駛”進(jìn)行搜索,通過倒排索引可以快速查詢到包含“交通肇事”和“駕駛”關(guān)鍵詞的主題及對應(yīng)的概率,對主題進(jìn)行分值計(jì)算就能獲得最終結(jié)果。此例中,最符合這兩個(gè)關(guān)鍵詞的主題是主題1,其分值為0.032 3+0.024 5=0.056 8。通過倒排索引的方式,在主題數(shù)量十分龐大的情況下,搜索引擎可以在極短的時(shí)間內(nèi)返回包含關(guān)鍵詞的文章。
表4 關(guān)鍵詞搜索的倒排索引
1.3.2 基于剪枝的最大獨(dú)特主題范圍查找法
獨(dú)特主題是指經(jīng)常出現(xiàn)在文檔某一范圍內(nèi)的主題。本文用獨(dú)特主題分?jǐn)?shù)(Uscore)來評價(jià)該主題屬于某一范圍的獨(dú)特程度。
(1)
其中:θrk表示主題k在范圍r上的概率,θgk表示主題k在全局范圍上的概率。當(dāng)某個(gè)主題的獨(dú)特主題分?jǐn)?shù)大于閾值λ時(shí),說明該主題是范圍r上的獨(dú)特主題。公式為:
UT(r)={k|UScore(r,k)>λ,k∈{1,...,K}}
(2)
其中,λ用來衡量一個(gè)主題在全局上的的獨(dú)特程度。λ設(shè)置得越高,則被認(rèn)定為獨(dú)特主題的門檻就越高。這個(gè)參數(shù)可以由用戶自行設(shè)定,默認(rèn)值為0.007。
對于主題集合T中某個(gè)主題k來說,所有滿足?k∈T,k∈UT(r)和?r'∈S,?k∈T:r∈r',k?UT(r')條件范圍的r,都是該主題的最大獨(dú)特主題范圍。
其中,S為全部范圍集合。當(dāng)k是范圍r上的獨(dú)特主題,而且k不是任何包含r的范圍的獨(dú)特主題,那么r就是一個(gè)k的最大獨(dú)特主題范圍。
求最大獨(dú)特主題范圍的基本思路是:求出所有范圍的獨(dú)特主題,在其中找到包含主題k的范圍,然后篩選出最大范圍。具體流程如下:
(1)計(jì)算每個(gè)范圍r的UScore(r,k)。
(2)找到UScore大于閾值的主題,作為范圍r的獨(dú)特主題。
(3)對于某個(gè)特定的主題,找到把其作為獨(dú)特主題的所有范圍。
(4)對步驟(3)中求出的范圍進(jìn)行篩選,得到最大范圍集。
在地理維度上,“上海市”是一個(gè)范圍,“上海市 浙江省”是一個(gè)范圍,“江浙滬”也是一個(gè)范圍,只要省份相鄰就會形成新的范圍。由于需要計(jì)算所有范圍的獨(dú)特主題,范圍的個(gè)數(shù)非常多。因此,文獻(xiàn)[15]中提出了在時(shí)間維度上找最大獨(dú)特主題范圍的剪枝算法。對于任意r和r',如果r和r'的Uscore(r,k)和UScore(r',k)都小于閾值λ,即主題k既不是r上的獨(dú)特主題也不是r'上的獨(dú)特主題,那么k也不可能是r∪r'上的獨(dú)特主題?;谏鲜鍪聦?shí),本文設(shè)計(jì)了在地理維度上的剪枝方法。對于固定的主題k,剪枝算法先計(jì)算每個(gè)最小粒度范圍的獨(dú)特主題分?jǐn)?shù),然后再將相鄰的范圍組合,再次計(jì)算獨(dú)特主題分?jǐn)?shù)。如果兩個(gè)子范圍的獨(dú)特主題分?jǐn)?shù)都不滿足條件,則其并集必定不滿足條件。當(dāng)計(jì)算出湖北省的獨(dú)特主題分?jǐn)?shù)之后,要找到其所有的鄰居省份,分別計(jì)算取并集之后的獨(dú)特主題分?jǐn)?shù)。如果滿足最大獨(dú)特主題范圍,則保留該省份。
為了驗(yàn)證系統(tǒng)的準(zhǔn)確性以及線上即時(shí)交互的效率,對系統(tǒng)整體進(jìn)行了測試。測試內(nèi)容包括對行政區(qū)劃歸類模塊的準(zhǔn)確性測試和線上查詢響應(yīng)時(shí)間測試。
系統(tǒng)數(shù)據(jù)爬取自中國新聞網(wǎng)2019年1月~2020年5月發(fā)布的法律新聞數(shù)據(jù),共347 635篇,去重后為273 029篇。系統(tǒng)使用Java語言開發(fā),硬件環(huán)境見表5。
表5 硬件環(huán)境
通過人工標(biāo)注方式,對530篇文章進(jìn)行了手工標(biāo)注,標(biāo)注形式為<一級行政區(qū)劃,二級行政區(qū)劃>。如,法律新聞《張家界通報(bào)導(dǎo)游怒罵游客騙吃騙喝調(diào)查處理:對旅行社罰20萬》被標(biāo)注為<湖南省,張家界市>。實(shí)驗(yàn)對基礎(chǔ)方法、優(yōu)化方法,以及使用百度地圖API輔助方法進(jìn)行測試,測試結(jié)果,見表6。
表6 行政區(qū)劃歸類準(zhǔn)確性測試
由此可見,無論是否使用地圖API,優(yōu)化方法的準(zhǔn)確率都超過了93%,使用地圖API輔助的方法準(zhǔn)確率達(dá)到了95.6%,但在時(shí)間上的劣勢比較明顯。主要原因是每次使用地圖API都需要進(jìn)行一次遠(yuǎn)程調(diào)用,在這次實(shí)驗(yàn)當(dāng)中,共有11篇文章未在行政區(qū)劃識別詞典中找到相關(guān)的行政區(qū)劃,這部分文章都需要使用地圖API進(jìn)一步搜索。可以看出,調(diào)用地圖API的成本比較大,但是總體的時(shí)間復(fù)雜度以及準(zhǔn)確率均尚可。
在線上查詢響應(yīng)時(shí)間的測試中,經(jīng)反復(fù)調(diào)整輸入的時(shí)間區(qū)間以及關(guān)鍵詞,最后得到每個(gè)小模塊的響應(yīng)時(shí)間,結(jié)果如圖5所示??梢钥吹剑P(guān)鍵詞搜索的平均響應(yīng)時(shí)間在0.02 s左右。最大獨(dú)特主題范圍在1.2 s左右,下鉆操作本身也是一個(gè)最大獨(dú)立范圍查詢的過程,但是因?yàn)榈貓D的范圍比較小,所以查詢時(shí)間比較短。相關(guān)新聞查詢的平均響應(yīng)時(shí)間為70 ms,雖然每個(gè)主題在任意空間和時(shí)間范圍內(nèi)的相關(guān)文章已經(jīng)預(yù)先存儲在posting list中。但因posting list空間占用過大,在增量壓縮之后依然無法放入內(nèi)存中,其時(shí)間主要消耗在讀盤以及解壓縮中。
圖5 平均響應(yīng)時(shí)間
本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)面向司法大數(shù)據(jù)的文本主題OLAP系統(tǒng),設(shè)計(jì)了新的數(shù)據(jù)模型Span保存數(shù)據(jù),并針對這種新的數(shù)據(jù)模型設(shè)計(jì)了多個(gè)操作符,后續(xù)的數(shù)據(jù)處理均由這些操作符組合實(shí)現(xiàn)。
針對文章無地理位置維度問題,提出了基于規(guī)則的二級行政區(qū)劃歸類,對提取出的地名詞匯進(jìn)行了可信度排序,從而得到最符合文章條件的行政區(qū)劃。對于無法匹配的地名,通過調(diào)用百度地圖API的方式進(jìn)行識別,識別準(zhǔn)確率高達(dá)95%以上。
在關(guān)鍵詞相關(guān)主題匹配問題上,采用倒排索引的方式,將一個(gè)詞語對應(yīng)多個(gè)與之相關(guān)的主題,從而將單個(gè)關(guān)鍵詞匹配主題的時(shí)間復(fù)雜度降低到常數(shù)級別。對于最大獨(dú)特主題范圍查詢問題,本文提出一種在地理維度上快速尋找最大獨(dú)特主題范圍的方法。平均線上查詢時(shí)間在優(yōu)化過后保持在1 s以內(nèi)。