摘 要: 提出了一個高效的、科學(xué)的智能答疑系統(tǒng)。介紹了該系統(tǒng)開發(fā)的環(huán)境、分析了該系統(tǒng)組成的各個模塊以及關(guān)鍵技術(shù),最后實踐證明了該系統(tǒng)提高了教學(xué)效率和教學(xué)手段,達(dá)到了較為理想的教學(xué)效果。
關(guān)鍵詞: 智能答疑系統(tǒng);知識庫;中文分詞技術(shù);RSS技術(shù)
隨著Internet上遠(yuǎn)程教學(xué)普及,遠(yuǎn)程教學(xué)中的答疑成為人們關(guān)注的焦點之一。學(xué)習(xí)者從聽眾變成索求者,當(dāng)遇到無法理解需要幫助時,及時的答疑和幫助成了必不可少的內(nèi)容。在遠(yuǎn)程教學(xué)中建立智能答疑系統(tǒng),可以使得學(xué)生在任何時間、任何地點都可以得到解答。教師也不必一直在線回答學(xué)生問題或重復(fù)回答相似問題。答疑系統(tǒng)自動回答學(xué)生的問題,一方面提高學(xué)生學(xué)習(xí)熱情,提高解答效率,另一方面可以節(jié)約教師的時間,間接提高工作效率。
本文通過.net建立一個簡單高效的智能答疑系統(tǒng),教師將疑難問題按一定組織方式,存放到知識和信息庫中。學(xué)生提交問題時,通過中英文分詞技術(shù)來分析并自動地匹配學(xué)生所提出的問題,自動地給予問題解答。當(dāng)在知識庫中沒有搜索到信息可以采用電子郵件或是通過在線方式征求解答,有人解答后,系統(tǒng)自動將解答發(fā)給學(xué)生。
1 開發(fā)環(huán)境
系統(tǒng)采用C#編碼,利用VS2005+SQL2005數(shù)據(jù)庫平臺開發(fā)智能答疑系統(tǒng),使用ADO.Net實現(xiàn)對數(shù)據(jù)庫的訪問。
2 模塊的設(shè)計
智能答疑系統(tǒng)是一個智能適應(yīng)性的知識庫系統(tǒng),在教學(xué)設(shè)計階段,教師將最常見的疑難問題按一定的組織方式,存放到知識庫中,當(dāng)學(xué)生在遇到疑難問題時,對學(xué)生以自然語言形式提出的問題進(jìn)行預(yù)處理,主要是采用分詞技術(shù)對問題語句進(jìn)行切分處理,提取出匹配所需要的關(guān)鍵詞,根據(jù)預(yù)先建立的基于關(guān)鍵詞的索引結(jié)構(gòu),將答案快速定位,找出問題匹配度最高的答案。若在知識庫中沒有搜索到信息可以采用電子郵件或是通過在線方式征求解答,有人解答后,系統(tǒng)自動將解答發(fā)給學(xué)生??傊?,智能答疑系統(tǒng)是一種支持同步和異步答疑以及討論的系統(tǒng)。如圖1所示,該系統(tǒng)包括以下幾個模塊:
?。?)提問模塊
學(xué)生可以使用提問模塊來尋求問題的答案,這是使用系統(tǒng)的基本手段之一。
對于問題文本首先采用正規(guī)表達(dá)式取出中文和英文,然后采用分詞技術(shù),主要是按照一定的策略將要分析的字串與詞典中的詞條進(jìn)行匹配來分解一系列的子串。然后在系統(tǒng)的知識庫中以及討論形成的材料中搜索與問題相關(guān)的材料,并按照相關(guān)程度返回結(jié)果。
?。?)討論模塊
討論模塊是學(xué)生使用智能答疑系統(tǒng)的另外一種基本手段。用戶可以參加BBS和聊天室等來進(jìn)行討論。
當(dāng)學(xué)生在沒有得到系統(tǒng)滿意的問題解答時,系統(tǒng)提供了給教師發(fā)郵件模塊來請求教師解答,并且提供了給教師手機(jī)發(fā)短信模塊,以便提醒教師郵箱里有提示;還提供討論模塊,請求系統(tǒng)別的學(xué)生幫助解答;還提供了RSS閱讀器,可以在其中查看預(yù)訂的相關(guān)網(wǎng)上討論社區(qū)中的資源。
?。?)RSS模塊
RSS模塊可以簡單地理解為一種方便的信息獲取工具。RSS獲取信息的模式與加入郵件列表模式相似,無需登錄到各個提供信息的站點即可自動獲取。該模塊主要建立一個RSS閱讀器來訂閱知識點,一旦網(wǎng)站上的這些知識點被更新,就會自動發(fā)送到鏈接源閱讀器中。這樣就可以不斷更新和擴(kuò)充知識庫中的內(nèi)容,如圖2所示。
3 關(guān)鍵技術(shù)
3.1 正規(guī)表達(dá)式
正規(guī)表達(dá)式允許快速有效地處理文本。被處理的文本小到一個電子郵件地址,大到一個多行的輸入框內(nèi)容。正規(guī)表達(dá)式的使用不僅允許使用一個定義模式來校驗文本,而且還允許從匹配一個給定模式的文本中提取數(shù)據(jù)。
本系統(tǒng)使用正規(guī)表達(dá)式來取出學(xué)生問題中的中文和英文,然后執(zhí)行相應(yīng)的中英文分詞技術(shù),如圖3所示。
3.2 中文分詞技術(shù)
中文分詞(Chinese Word Segmentation)指的是將一個漢字序列切分成一個一個單獨的詞。分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程?,F(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計的分詞方法。基于字符串匹配的分詞方法又叫做機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一個“充分大的”機(jī)器詞典中的詞條進(jìn)行配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優(yōu)先匹配的情況,可以分為最大(最長)匹配和最?。ㄗ疃蹋┢ヅ?;《計算機(jī)基礎(chǔ)》課程的智能答疑系統(tǒng)采用的是機(jī)械分詞方法中的正向最大匹配算法。
3.2.1 分詞算法
采用基于字符串匹配的分詞方法,它是按照正向最大匹配法(由左到右的方向);將待分析的漢字串與一個“充分大的”機(jī)器詞典中的詞條進(jìn)行匹配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。
例如,對一個字符串S,從前到后掃描,對掃描的每個字,從詞庫中尋找最長匹配。比如假設(shè)S=“我是中華人民共和國公民”,詞庫中有“中華人民共和國”,“中華”,“公民”,“人民”,“共和國”……等詞。當(dāng)掃描到“中”字,那么從中字開始,向后分別取1,2,3,……個字(“中”,“中華”,“中華人”,“中華人民”,“中華人民共”,“中華人民共和”,“中華人民共和國”,“中華人民共和國公”),詞庫中的最長匹配字符串是“中華人民共和國”,那么就此切分開,掃描器推進(jìn)到“公”字。
3.2.2 數(shù)據(jù)結(jié)構(gòu)
哈希表是一種高效的數(shù)據(jù)結(jié)構(gòu)。哈希表最大的優(yōu)點,就是把數(shù)據(jù)的存儲和查找消耗的時間大大降低,幾乎可以看成是常數(shù)時間;而代價僅僅是消耗比較多的內(nèi)存。然而在當(dāng)前可利用內(nèi)存越來越多的情況下,用空間換時間的做法是值得的。另外,編碼比較容易也是它的特點之一。
本系統(tǒng)采用哈希表(Hashtable)記錄詞庫。首先將詞典中的詞進(jìn)行處理,對每一個詞語,如果該詞語有N個字,則將該詞語的1,1~2,1~3,…,1~N個字作為鍵,插入相應(yīng)詞長度的哈希表中,而同一個鍵如果重復(fù)插入,則后面的值遞增,如圖4所示。
該智能答疑系統(tǒng)能在一定程度上減少答案域的搜索范圍,并能獲得準(zhǔn)確的答案。實踐證明該智能答疑系統(tǒng)是有一定的智能性、主動性和方便性等特點,提高了教學(xué)效率和教學(xué)手段。
參考文獻(xiàn)
[1] 趙成龍.一個基于Web的智能答疑系統(tǒng)的設(shè)計與實現(xiàn)[D].南京:東南大學(xué),2004.
[2] 陳銀鳳.RSS技術(shù)的應(yīng)用和發(fā)展趨勢探討[J].內(nèi)蒙古財經(jīng)學(xué)院學(xué)報,2008,6(1):98-102.
[3] 余戰(zhàn)秋.中文分詞技術(shù)及其應(yīng)用初探[J].電腦知識與技術(shù),2004,(32):81-83.
[4] 陳挺.中文字段匹配算法[J].計算機(jī)工程,2003,29(13):118-120.
[5] 柳泉波,黃榮懷,何克抗.智能答疑系統(tǒng)的設(shè)計與實現(xiàn)[J].中國遠(yuǎn)程教育,2000,121(8):43-45.