馬 莉
【摘 要】作者針對目前在線答疑響應速度慢、靈活性差、查全率低等問題,應用全文索引技術(shù),設(shè)計并實現(xiàn)了基于中文全文索引技術(shù)的在線答疑系統(tǒng),通過二次開發(fā)JDK工具,成功解決了問題答案庫生成、問題答案索引與管理等關(guān)鍵技術(shù),系統(tǒng)的查詢速度和查全率優(yōu)于基于數(shù)據(jù)庫技術(shù)的在線答疑系統(tǒng)性能。
【關(guān)鍵詞】基于網(wǎng)絡的教育 在線答疑 中文全文索引 搜索引擎
【中圖分類號】G434 【文獻標識碼】A 【文章編號】1006-9682(2009)02-0040-02
一、前 言
在線答疑系統(tǒng)是網(wǎng)絡教育平臺的重要組成部分,它在加強教師和學生的交流,幫助學生明確問題的所在和獲得自己真正需要的答案信息方面具有不可或缺的作用,因此現(xiàn)代遠距離教育對其在線答疑模塊的查準率、查全率、靈活性、響應速度等方面提出了更高的要求。
目前多數(shù)現(xiàn)代遠距離教育系統(tǒng)的問題答疑檢索的方式為基于數(shù)據(jù)庫的查詢。存在的突出問題是:求用戶具有一定的組織關(guān)鍵詞能力,對不熟悉計算機的用戶造成困難;建立數(shù)據(jù)庫的關(guān)鍵詞字段、數(shù)目一經(jīng)確定,就限定了查詢內(nèi)容,從而造成查全率低、漏檢率高的問題;DBMS建立在代數(shù)系統(tǒng)上,代數(shù)系統(tǒng)所定義的有限種運算限制不能適應復雜多變的查詢需求;若教育網(wǎng)站涵蓋幾百門課程,數(shù)據(jù)庫會非常龐大,當大量學習者同時過度的并發(fā)操作會導致服務器端的負荷過載,從而降低查詢速度。
我們借鑒國外成功的答疑系統(tǒng)的技術(shù),構(gòu)建了基于中文全文索引的答疑系統(tǒng),系統(tǒng)對問題答案進行了合理的組織,為其建立了全文索引,并依據(jù)索引文件提供多種查詢方式。該系統(tǒng)的響應速度、查全率、查準率、查找靈活性優(yōu)于基于數(shù)據(jù)庫技術(shù)的答疑系統(tǒng)。
二、關(guān)鍵技術(shù)
1.全文索引技術(shù)
全文索引是指索引程序通過掃描文章中的每一個字、詞,對每一個字建立索引,指明該字(詞)在文章中出現(xiàn)的次數(shù)和位置,以響應用戶的多種查詢需求。全文檢索系統(tǒng)應具備建立索引、處理查詢、返回結(jié)果集、增加索引、優(yōu)化索引等功能,系統(tǒng)構(gòu)成一般包括索引引擎、查詢引擎、文本分析引擎、對外接口等模塊,以及外圍應用系統(tǒng)。
(1)全文索引排序及查詢原理
本系統(tǒng)應用數(shù)據(jù)倒排序原理,首先對中文單詞進行特殊的分詞處理,取得文章的關(guān)鍵詞;通過Analyzer類過濾掉無概念意義的標點符號;建立倒排關(guān)鍵詞索引,用n元組<關(guān)鍵詞 擁有該關(guān)鍵詞的文章號 P頻 P位>表示;進一步統(tǒng)計關(guān)鍵詞在文章中出現(xiàn)次數(shù)和出現(xiàn)的位置;將上述數(shù)據(jù)分別存儲在詞典文件、頻率文件、位置文件中。
詞典文件包含將原文件分詞以后所得到的每一個字和詞。它不僅保存有每個關(guān)鍵詞,還保留了指向頻率文件P頻和位置文件的指針P位;
頻率文件存儲每個字在原文件中出現(xiàn)的頻率;
位置文件包含每個字在其原文件里的位置,一般是指該單詞距文件頭的偏移量。
通過詞典文件到頻率文件、位置文件的映射(指針)將三個文件有機聯(lián)系在一起。
用戶輸入詞/詞組,觸發(fā)檢索引擎中的分詞類,分解用戶數(shù)據(jù)為單獨的字和序,到詞典文件查找每個字出現(xiàn)的文章、頻率、位置;然后進行位置匹配,只有字、字序(出現(xiàn)的位置)均相同的文章才會被找出(查找算法略)。
另外,為了減小索引文件的大小,全文檢索引擎對索引還使用了壓縮技術(shù)(略)。
2.Java技術(shù)
(1)API接口
Apache Jakarta項目組提供了一個全文索引引擎Java類接口,但它提供的僅僅是一個在單機上調(diào)用的Java類包。我們對它加以改進使其能夠嵌入B/S模式答疑系統(tǒng)。
Lucene Java類包不是一個完整的全文檢索引擎,而是一個開放源代碼的工具包。Lucene類包提供了豐富的類接口,基于這些類進行二次代碼開發(fā),可以建立較完善的全文搜索引擎。
利用lucene提供的類接口,可以很方便的為.txt、.html、.xml文件建立獨立于應用平臺的索引文件;索引器通過接受Token流完成索引文件的創(chuàng)立,并能實現(xiàn)動態(tài)更新索引文件功能,當有新數(shù)據(jù)要求被索引時,調(diào)用索引器就可以將新建成的索引文件合并到原索引文件中,不必進行索引文件的重建。
(2)動態(tài)網(wǎng)頁技術(shù)
JSP(Java Server Pages)為整個服務器端的Java類庫提供了一個接口來服務于HTTP的應用程序。所有程序都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅是程序運行的結(jié)果,對客戶瀏覽器的要求低,可以實現(xiàn)無Plugin,無ActiveX,無Java Applet,甚至無Frame。
(3)面向網(wǎng)絡的OOP語言
由于Java最初設(shè)計出發(fā)點就是面向網(wǎng)絡,提供面向?qū)ο蠖植灰蕾囉跈C器的開放結(jié)構(gòu),具有跨平臺性、可移植性、安全性、響應靈敏和交互好等特點。
3.Xml技術(shù)
XML是Extensible Markup Language(可擴展的置標語言)可以讓網(wǎng)頁設(shè)計人員自行定義TAG的延伸格式,用在自由性的數(shù)據(jù)庫或是各種文件格式上。XML也是一種置標語言,也可以作為派生其它置標語言的元語言。
XML具有可擴展性、靈活性、自描述性、簡明性。它是SGML的一個子集,只有SGML約20%的復雜性,卻能實現(xiàn)約80%的SGML功能。
基于上述技術(shù),本系統(tǒng)實現(xiàn)了與、或和模糊查詢,系統(tǒng)在擁有多種查詢功能的同時擁有較高的數(shù)據(jù)查全率和查詢速度。
三、系統(tǒng)設(shè)計
1.系統(tǒng)功能框架
答疑系統(tǒng)的用戶有三種身份,普通學生、指導教師、系統(tǒng)管理員。數(shù)據(jù)庫中保存用戶的注冊信息,當用戶以不同身份登錄時通過登錄模塊進行身份的驗證,根據(jù)用戶不同的身份給用戶分配不同的權(quán)限。
(1)學生模塊
學生登錄后,輸入所查詢問題的關(guān)鍵詞,系統(tǒng)響應查詢需求,進行搜索,返回答案源文件信息;若未查到相關(guān)信息則將問題存入新問題數(shù)據(jù)庫,待教師回答完畢并生成答案源文件和索引文件后,該生再登錄時會給出問題已解答的提示,并顯示答案。
(2)教師模塊
教師登錄后可以查看學生遺留的問題,并給予解答;教師利用系統(tǒng)提供的答案文件管理功能定期對現(xiàn)有的問題庫進行更新與修改,可以對問題庫進行生成xml格式的答案源文件與創(chuàng)建索引。
(3)管理員模塊
管理員登錄后,進行系統(tǒng)日常維護和管理學生教師信息,對系統(tǒng)進行總體的維護。
2.技術(shù)實現(xiàn)
(1)創(chuàng)建源文件與索引文件
創(chuàng)建答案源文件,答案文件是用xml文件組織的,其內(nèi)部可以設(shè)置靈活的超級鏈接,如相應練習及其他相關(guān)網(wǎng)頁。答案文件上傳以后以數(shù)據(jù)庫的記錄暫時存放,這時要把它們導出為xml文件,并作為答案源文件(代碼略)。系統(tǒng)返回的檢索結(jié)果就是這些xml文件。
創(chuàng)建其索引文件,為答案源文件(XML文件)創(chuàng)建索引文件,首先得構(gòu)造一個xml索引類,該類創(chuàng)建的對象可以將html、xml、txt文件進行分詞處理并創(chuàng)建索引文件(代碼略)。答案源文件與索引文件創(chuàng)建流程如圖1。
(2)答疑系統(tǒng)全文檢索流程
響應查詢用戶輸入所查詢問題的關(guān)鍵詞后,系統(tǒng)進行關(guān)鍵詞分字、分詞、查詢,搜索引擎支持關(guān)鍵詞的多種邏輯關(guān)系組合查詢,如:與、或邏輯關(guān)系,這些都是由關(guān)鍵詞分詞類來完成的(代碼略)。
全文檢索,將關(guān)鍵詞分詞后的結(jié)果作為參數(shù)構(gòu)建搜索器,利用索引查詢邏輯對索引文件進行查詢,查詢結(jié)果為一個內(nèi)存中的存儲抽象。通過對存儲抽象的進一步處理可返回查詢結(jié)果集。
返回查詢結(jié)果集,經(jīng)過分析得到重組的查詢需求信息,作為搜索器的參數(shù),據(jù)此搜索查詢滿足條件的文章地址,查詢結(jié)果以結(jié)果集(hits)的形式返回。結(jié)果集(hits)包含文章題目、地址、內(nèi)容摘錄等,可用.gets()方法獲得這些變量(代碼略)。
“答案概述”欄顯示問題內(nèi)容的前100個字符,點擊相應行“問題題目”欄的內(nèi)容可以鏈接到答案的xml文件。但xml文件并不能在IE中直接呈現(xiàn),本系統(tǒng)采用XSL(Extensible Stylesheet Language)技術(shù),實現(xiàn)將xml文件轉(zhuǎn)換為html格式并在IE中呈現(xiàn)。
四、系統(tǒng)特點
1.檢索速度快
雖然初始化階段,需要對原數(shù)據(jù)進行分詞,建立位置和頻率等索引文件,要花費較多時間,但一旦索引文件建立,查詢速度就會大幅度的提高,經(jīng)過實驗10億漢字平均檢索速度0.26秒,而利用數(shù)據(jù)庫查詢同等量的數(shù)據(jù)大約需要5秒左右。
2.易于更新
本系統(tǒng)可以自動完成讀取原文件、分詞和建立索引,不需要對原數(shù)據(jù)做任何手工處理。索引文件建立后,可以搜索任何位置的數(shù)據(jù)。答案庫記錄的更新只需要給出文件名參數(shù),運行創(chuàng)建索引程序即可,因此具有良好的可擴展性。
3.結(jié)構(gòu)性好
傳統(tǒng)的答疑系統(tǒng)因受到數(shù)據(jù)庫技術(shù)的限制,對于答案之間的內(nèi)在聯(lián)結(jié)關(guān)系支持不是很好。全文索引答疑系統(tǒng)采用的原數(shù)據(jù)不是數(shù)據(jù)庫中的記錄,而是xml文件,其作為可擴展的元標記語言本身就具有良好的結(jié)構(gòu),可以方便的在答案之間建立超鏈接。
4.跨平臺性好
全文索引答疑系統(tǒng)的核心技術(shù)因采用Java和JSP技術(shù),可在任何一臺安裝Java虛擬機的機器上運行。
五、結(jié)束語
本文針對目前網(wǎng)絡教學平臺答疑系統(tǒng)的缺陷,提出了一種答疑系統(tǒng)解決方案,并設(shè)計、實現(xiàn)了基于全文索引的在線答疑系統(tǒng)。
全文索引技術(shù)還存在一些弱點,如內(nèi)容覆蓋率、隱式語義提取等問題。為此,進一步的研究工作應該著眼于運用知識工程、人工智能、數(shù)據(jù)挖掘技術(shù),使系統(tǒng)具有自組織、自學習和自動推理能力,將有望克服上述缺陷,提高答疑系統(tǒng)性能。
參考文獻
1 邱 哲、符滔滔.開發(fā)自己的搜索引擎—Lucene 2.0+Heritrix.人民郵電出版社,2007.6:146~168
2 蘇武華.漢語自動分詞和自動標引方法研究.農(nóng)業(yè)圖書情報學刊,2004(7):104~106
3 印 鑒、陳憶群、張 鋼.搜索引擎技術(shù)研究與發(fā)展.計算機工程,2005(14)
4 王慧芳.基于全文索引的在線答疑系統(tǒng)設(shè)計與開發(fā).第十屆全球華人計算機教育應用會議(GCCCE2006)論文集,2006
5 尹俊華.教育技術(shù)學導論.北京:高等教育出版社
6 祝智庭.現(xiàn)代教育技術(shù).北京:高等教育出版社
7 趙 汀.基于Lucene API的中文全文數(shù)據(jù)庫.Microsoft全文搜索技術(shù)白皮書,2007