陳國(guó)良 馮琦峰 周遠(yuǎn)
本文作者在實(shí)施“智慧檔案”項(xiàng)目的過(guò)程中,發(fā)現(xiàn)隨著檔案數(shù)據(jù)資源的激增以及檔案信息化手平的提高,檢索的方式會(huì)逐步從單一檢索轉(zhuǎn)向多元搜索、聯(lián)合檢索及知識(shí)發(fā)現(xiàn)的層次,用戶要求通過(guò)統(tǒng)一的檢索入口,即能同時(shí)查找不同來(lái)源的信息,并能夠靈活地對(duì)檢索結(jié)果進(jìn)行操作和處理。本文結(jié)合實(shí)際項(xiàng)目的開展情況,論述了基于移動(dòng)互聯(lián)環(huán)境下民生檔案的總體設(shè)計(jì)方案,并對(duì)智能檢索的幾種設(shè)計(jì)方案進(jìn)行了簡(jiǎn)介與評(píng)價(jià),并提出了符合民生檔案特點(diǎn)的切實(shí)可行的檢索方案。
一、 系統(tǒng)總體設(shè)計(jì)方案
移動(dòng)互聯(lián)民生檔案系統(tǒng)的前期總體設(shè)計(jì)簡(jiǎn)圖如下表示:
電腦、手機(jī)等智能終端,通過(guò)3G/4G/GPRS 或WIFI等通信手段,提交通信請(qǐng)求,經(jīng)過(guò)UOML服務(wù)器處理的文檔信息,可供授權(quán)用戶查閱。
服務(wù)器可提供用戶注冊(cè)、身份認(rèn)證、短信提示、風(fēng)險(xiǎn)防范等功能;對(duì)于經(jīng)過(guò)身份認(rèn)證之后的用戶,服務(wù)器再授予一定的權(quán)限,允許用戶在一定范圍內(nèi)檢索相關(guān)民生檔案信息;服務(wù)器還提供統(tǒng)一的查詢平臺(tái)。
用戶輸入查詢的內(nèi)容之后,數(shù)據(jù)由服務(wù)器發(fā)送到智能檢索系統(tǒng)進(jìn)行統(tǒng)一處理;由智能檢索系統(tǒng)從多個(gè)物理數(shù)據(jù)庫(kù)或?qū)n}庫(kù)中檢索出來(lái),交由UOML服務(wù)器進(jìn)行處理。
UOML是定義了非結(jié)構(gòu)化文檔操作通用功能的開放標(biāo)準(zhǔn),可以實(shí)現(xiàn)文檔、頁(yè)、層、文字、圖形、圖像等元索的創(chuàng)建、編輯、檢索和信息提取,可以滿足各種應(yīng)用程序?qū)ξ臋n存儲(chǔ)、展現(xiàn)、檢索和安全的需求。
二、存在的問(wèn)題
在上述的檢索系統(tǒng)中,我們考慮到廣大人民群眾沒(méi)有受過(guò)專門的檢索培訓(xùn),在授權(quán)庫(kù)中采用全文檢索技術(shù),輸出結(jié)果中突出顯示目標(biāo)關(guān)鍵詞的基礎(chǔ)上部分文字缺少的方法,以此來(lái)保障其它用戶信息的安全。盡管如此,進(jìn)入測(cè)試環(huán)節(jié)時(shí),問(wèn)題還是大量的產(chǎn)生了。
1、 用戶從開始向信息檢索系統(tǒng)提問(wèn)到系統(tǒng)輸出檢索結(jié)果的全部時(shí)間無(wú)法忍受。在一次檢索過(guò)程中如果用戶提交的是模糊查詢請(qǐng)求,響應(yīng)時(shí)間有時(shí)達(dá)到十幾分鐘。
2、 檔案檢索系統(tǒng)對(duì)于提交的請(qǐng)求結(jié)果,有時(shí)達(dá)到幾十頁(yè)的搜索結(jié)果,且檢索結(jié)果的相關(guān)性差,缺乏合理的排序和必要的組織、分析,與檢索提問(wèn)最相關(guān)的頁(yè)面不能首先呈現(xiàn)給用戶,用戶必須要在眾多的檢索結(jié)果中尋找所需的信息,大大超過(guò)用戶的接受能力。
3、 用戶表達(dá)的需求與獲取的檢索結(jié)果往往差異很大。
總結(jié)原因,系統(tǒng)雖然受到硬件條件的制約,例如網(wǎng)絡(luò)和相關(guān)設(shè)備的技術(shù)限制,信息的處理速度尚難盡人意。但主要原因還在于檔案檢索系統(tǒng)在檢索策略構(gòu)造方面,專業(yè)性較強(qiáng),系統(tǒng)透明度差,用戶不能用自己所熟悉的方式查詢提問(wèn),沒(méi)有經(jīng)過(guò)專門訓(xùn)練的用戶很難從系統(tǒng)中獲得自己所需要的信息,給用戶一種望而卻步的感覺(jué),缺乏良好的交互性?;陉P(guān)鍵詞匹配的檢索技術(shù),不符合語(yǔ)義理解的需要,不能很好地理解用戶的檢索請(qǐng)求,不能區(qū)分關(guān)鍵詞的同形異義,也不能聯(lián)想到相關(guān)同義詞、近義詞,無(wú)法智能識(shí)別語(yǔ)義的內(nèi)在關(guān)聯(lián),更不可能考慮到關(guān)鍵詞所處的特殊語(yǔ)言環(huán)境,不僅給選用檢索點(diǎn)帶來(lái)困難,而且導(dǎo)致用戶需要費(fèi)時(shí)費(fèi)力地對(duì)數(shù)以千計(jì)的檢索結(jié)果進(jìn)行手工篩選。
三、方案的比較
針對(duì)檔案檢索系統(tǒng)的缺陷和不足,分別用提升“硬件”、更新“軟件”的方法來(lái)選擇。目前將前沿的技術(shù)介紹如下:
1、并行計(jì)算與并行檢索
并行計(jì)算指的是,將單個(gè)問(wèn)題劃分為多個(gè)較小的“子”問(wèn)題,用多個(gè)處理器同時(shí)分別處理這些“子”問(wèn)題來(lái)得到單個(gè)問(wèn)題的解。多個(gè)可以同時(shí)工作的處理部件或處理器構(gòu)成的計(jì)算機(jī)系統(tǒng),稱為并行計(jì)算機(jī)。并行計(jì)算系統(tǒng)包括并行計(jì)算機(jī)或多處理機(jī)系統(tǒng)。在并行計(jì)算系統(tǒng)中,不同處理器同時(shí)運(yùn)行多個(gè)程序或者一個(gè)程序的不同進(jìn)程,從而提高系統(tǒng)的運(yùn)算速度。
并行檢索則把用戶提交的查詢,通過(guò)代理程序?qū)υ疾樵冞M(jìn)行處理(如查詢的分析轉(zhuǎn)換或格式化處理等等),然后將處理后的查詢發(fā)給搜索程序,搜索程序找到結(jié)果并進(jìn)行處理(如排序)后返回給代理程序,代理程序經(jīng)過(guò)必要的處理(如結(jié)果的歸整、合并等)將結(jié)果返回給用戶。
2、分布式檢索
利用分布式計(jì)算進(jìn)行信息檢索稱為分布式檢索。主要特點(diǎn)在于:分布式檢索通常處理的是地理位置分散的異構(gòu)數(shù)據(jù),不同地理位置計(jì)算機(jī)系統(tǒng)間通訊的開銷比較大;分布式檢索的數(shù)據(jù)規(guī)模相對(duì)較大,每個(gè)節(jié)點(diǎn)的處理能力又不盡相同,因此,分布式檢索通常只選擇某些數(shù)據(jù)子集進(jìn)行檢索,而不是像并行檢索那樣,需要返回每個(gè)數(shù)據(jù)子集的結(jié)果;分布式檢索的對(duì)象的異構(gòu)性使得統(tǒng)一描述和訪問(wèn)成為必須要考慮的問(wèn)題。
3、語(yǔ)義搜索
通過(guò)理解自然語(yǔ)言的邏輯,通過(guò)分析用戶輸入搜索框內(nèi)的詞語(yǔ),給出用戶可能想要的搜索結(jié)果,來(lái)解決“問(wèn)題式”搜索的難題。把信息檢索從目前基于關(guān)鍵詞層面提高到基于知識(shí)層面,具有智能化、人性化特征,對(duì)知識(shí)有一定的理解與處理能力,允許采用自然語(yǔ)言進(jìn)行信息的檢索,為用戶提供更方便、更確切的檢索服務(wù)。其工作不再拘泥于用戶所輸入請(qǐng)求語(yǔ)句的字面本身,而是透過(guò)現(xiàn)象看本質(zhì),準(zhǔn)確地捕捉到用戶所輸入語(yǔ)句后面的真正意圖,并以此來(lái)進(jìn)行搜索,從而更準(zhǔn)確地向用戶返回最符合其需求的搜索結(jié)果。
但以上幾種方法顯然都不符合民生檔案的實(shí)際情況。不提項(xiàng)目預(yù)算,就以充分挖掘并行計(jì)算和分布式計(jì)算的能力,還需要眾多研究者和學(xué)者共同商討;語(yǔ)義搜索引擎目前還沒(méi)有成熟的產(chǎn)品問(wèn)世。
四、符合民生檔案特點(diǎn)的智能檢索設(shè)計(jì)
經(jīng)過(guò)我們的多次設(shè)計(jì)與比較,我們認(rèn)為檢索不滿意的主要原因是分詞設(shè)計(jì)上不合理造成的。之后我們采用IKAnalyzer分詞器并自定義擴(kuò)展字典設(shè)置,起到了較好的效果。
IK Analyzer 是一個(gè)開源的,基于java語(yǔ)言開發(fā)的輕量級(jí)的中文分詞工具包。從2006年12月推出1.0版開始, IKAnalyzer已經(jīng)推出了4個(gè)大版本。在2012版本中,IK實(shí)現(xiàn)了簡(jiǎn)單的分詞歧義排除算法,標(biāo)志著IK分詞器從單純的詞典分詞向模擬語(yǔ)義分詞衍化。采用了特有的“正向迭代最細(xì)粒度切分算法“,支持細(xì)粒度和智能分詞兩種切分模式;采用了多子處理器分析模式,支持:英文字母、數(shù)字、中文詞匯等分詞處理,兼容韓文、日文字符優(yōu)化的詞典存儲(chǔ),更小的內(nèi)存占用。支持用戶詞典擴(kuò)展定義。
我們的主要思路如下:
1、建立各類民生檔案的專業(yè)關(guān)鍵詞數(shù)據(jù)庫(kù)。
2、利用IKAnalyzer分詞器,把群眾查詢的字符串,分割成若干個(gè)關(guān)鍵詞。
3、去取無(wú)意義的詞,如:人稱代詞、語(yǔ)氣助語(yǔ),例如:我、他、的等。
4、提取關(guān)鍵詞與各類專業(yè)數(shù)據(jù)庫(kù)中的內(nèi)容對(duì)比、分析,然后引導(dǎo)到各民生檔案庫(kù)中查詢。
5、再通過(guò)關(guān)鍵詞的全文檢索找到相對(duì)應(yīng)的內(nèi)容。
例如:建立婚姻檔關(guān)鍵詞與低保關(guān)詞庫(kù)。當(dāng)有人查詢: “我叫張三現(xiàn)在是低保戶要查1955結(jié)婚證明”系統(tǒng)可自動(dòng)提取關(guān)鍵字,“張三”,“低?!?,“1955”,“結(jié)婚證明”,從低保庫(kù)中找到張三的其它信息之后,在婚姻庫(kù)中找到結(jié)婚證明信息,從而快速高效的獲取相關(guān)信息。
程序調(diào)用方法如下:
public class Test {
public static void main(String[] args) throws IOException {
String text="我叫張三現(xiàn)在是低保戶要查1955結(jié)婚證明"; //創(chuàng)建分詞對(duì)象
Analyzer anal=new IKAnalyzer(true);
StringReader reader=new StringReader(text); //分詞
TokenStream ts=anal.tokenStream("", reader);
CharTermAttribute term=ts.getAttribute(CharTermAttribute.class); //遍歷分詞數(shù)據(jù)
while(ts.incrementToken()){
System.out.print(term.toString()+"|");
}
reader.close();
System.out.println();
}
(作者單位:1.浙江商業(yè)技師學(xué)院;2.寧波市鄞州區(qū)檔案局;3.寧波國(guó)研軟件技術(shù)有限公司)
項(xiàng)目:本文為2013浙江省檔案科研項(xiàng)目