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