李春生,盧鵬飛,張可佳
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
使用互聯(lián)網(wǎng)進(jìn)行在線學(xué)習(xí)的過程中,出現(xiàn)了多種答疑方式,主要可以分成3類:基于電子郵件、BBS的答疑方式,該方式只適合規(guī)模較小的網(wǎng)絡(luò)課程,且實(shí)時(shí)性差;基于QQ、微信的答疑方式,該方式是對第一種答疑方式的延伸,將答疑移到了即時(shí)通訊軟件上,一定程度上提高了實(shí)時(shí)性,但只限于特定時(shí)段進(jìn)行答疑;基于關(guān)鍵字檢索的答疑方式,該方式類似于搜索引擎的檢索,這種答疑方式雖然實(shí)時(shí)性強(qiáng),但由于系統(tǒng)的智能性差導(dǎo)致準(zhǔn)確度低[1-3]。
針對上述問題,文中提出一種基于語句相似度計(jì)算的智能答疑方案,解決現(xiàn)有答疑方式實(shí)時(shí)性差、準(zhǔn)確度低的問題。
通過分析研究,智能答疑系統(tǒng)應(yīng)具有針對性強(qiáng)、智能性高的特點(diǎn)[4]。當(dāng)學(xué)習(xí)者使用自然語言輸入問題后,系統(tǒng)會(huì)根據(jù)詞庫中的內(nèi)容對自然語言進(jìn)行分詞處理,然后系統(tǒng)根據(jù)分詞結(jié)果與問題庫中存在的問題進(jìn)行相似度計(jì)算,并按照語句的相似度,將計(jì)算結(jié)果返回給學(xué)習(xí)者。最終顯示的結(jié)果與學(xué)習(xí)者提出的問題是否一致由學(xué)習(xí)者決定,如果學(xué)習(xí)者滿意則答疑結(jié)束,如不滿意則將問題交由教師進(jìn)行答疑,教師答疑后將問題添加到問題庫中。因此隨著答疑系統(tǒng)的使用,問題庫中的問題將會(huì)更充實(shí),系統(tǒng)將會(huì)變得更加實(shí)用[5-6]。
根據(jù)需求與分析設(shè)計(jì)了智能答疑系統(tǒng)的系統(tǒng)結(jié)構(gòu),如圖1所示。
圖1 智能答疑系統(tǒng)結(jié)構(gòu)
該系統(tǒng)分為三層,分別是應(yīng)用層、邏輯層、數(shù)據(jù)層。應(yīng)用層為學(xué)習(xí)者提供了一個(gè)友好的答疑界面,滿足用戶的答疑需求;邏輯層主要負(fù)責(zé)語句分詞和相似度計(jì)算,為答疑的精確度提供了保證;數(shù)據(jù)層主要存放各種數(shù)據(jù),為整個(gè)答疑系統(tǒng)的運(yùn)行提供數(shù)據(jù)支撐[7-8]。
(1)問題庫結(jié)構(gòu)設(shè)計(jì)。
設(shè)計(jì)問題庫的目的主要是存放一門課程所涉及到的問題,它是智能答疑系統(tǒng)數(shù)據(jù)層的核心。為了提高系統(tǒng)的效率,問題庫分為常用問題庫和一般問題庫。當(dāng)學(xué)習(xí)者輸入問題后,系統(tǒng)先從常用問題庫檢索,如未檢索到,再從一般問題庫檢索,常用問題庫中存放的問題由學(xué)習(xí)者的提問頻率決定[9]。問題庫的結(jié)構(gòu)如圖2所示。
圖2 問題庫結(jié)構(gòu)
T_QID、T_QNAME、T_QANSWER分別存儲(chǔ)問題的編號、名稱、答案;T_RPOINT1-T_RPOINT3存儲(chǔ)與該問題相關(guān)的知識點(diǎn)連接。如學(xué)習(xí)者檢索到“數(shù)組的概念”答案后,該問題的T_RPOINT1-T_RPOINT3字段可能存儲(chǔ)的就是“一維數(shù)組的定義”、“一維數(shù)組與二維數(shù)組的區(qū)別”、“數(shù)組的使用”等與該知識點(diǎn)相關(guān)的問題,方便學(xué)習(xí)者了解相關(guān)的知識;T_KEYW1-T_KEYW3存儲(chǔ)問題關(guān)鍵詞,方便語句相似度計(jì)算時(shí)的分詞。
(2)詞庫設(shè)計(jì)。
設(shè)計(jì)詞庫的主要目的是在分詞中使用,詞庫為分詞的準(zhǔn)確提供了資源。詞庫分為專業(yè)詞庫和常用詞庫,兩詞庫的表結(jié)構(gòu)相同。詞庫的結(jié)構(gòu)如圖3所示。
圖3 詞庫結(jié)構(gòu)
(3)同義詞庫設(shè)計(jì)。
設(shè)計(jì)同義詞庫的目的是增加系統(tǒng)的準(zhǔn)確性,使系統(tǒng)充分理解學(xué)習(xí)者提出的問題。同義詞庫的結(jié)構(gòu)如圖4所示。
圖4 同義詞庫結(jié)構(gòu)
在同義詞庫中如某個(gè)記錄的T_WORDNAME字段存儲(chǔ)的是“概念”,那這個(gè)記錄的同義詞存儲(chǔ)的可能是“含義”、“定義”等與之相關(guān)的同義詞。
(4)學(xué)習(xí)者問句庫設(shè)計(jì)。
設(shè)計(jì)學(xué)習(xí)者問句庫的作用是存儲(chǔ)學(xué)習(xí)者提出而問題庫中不存在的問句,教師答疑后由教師決定是否將問題加入到問題庫中。學(xué)習(xí)者問句庫的結(jié)構(gòu)如圖5所示。
圖5 學(xué)習(xí)者問句庫
目前常用的分詞方法主要有三種,分別是基于理解的分詞方法、基于統(tǒng)計(jì)的分詞方法和基于字符串匹配的分詞方法[10-11]。通過分析與研究,發(fā)現(xiàn)學(xué)習(xí)者提出的問題具有專業(yè)性強(qiáng)、語句短小的特點(diǎn)[12]。出于對提問問題的特點(diǎn)以及效率等多方面因素的考慮,該系統(tǒng)采用正向最大匹配算法實(shí)現(xiàn)分詞。正向最大匹配算法的設(shè)計(jì)思想如下:用MAXLEN表示詞庫中最大詞長,從詞庫中查找長度為MAXLEN的詞,按照從左至右的順序,與句長為MAXLEN的子串進(jìn)行匹配,若匹配成功則切分出字符串,指針后移MAXLEN位繼續(xù)匹配,若失敗MAXLEN長度減一位后繼續(xù)匹配,直至匹配的字符串長度為2;若還未匹配成功,則將當(dāng)前漢字切割成詞,然后后移一位繼續(xù)匹配[13-14]。如:“C#數(shù)據(jù)類型的種類”,分詞的處理步驟如下:
Step1:從專業(yè)詞庫中匹配出“C#”,“數(shù)據(jù)類型”。
Step2:對剩余的字串“的種類”進(jìn)行分詞,從常用詞庫中匹配出“的”,“種類”。
所以最后的分詞結(jié)果為“C#”,“數(shù)據(jù)類型”,“的”,“種類”。
(1)詞形相似度計(jì)算。
詞形相似度計(jì)算的原理是通過計(jì)算兩個(gè)句子中相同詞的個(gè)數(shù)來比較相似度。它的核心思想是如果兩個(gè)句子相同的詞數(shù)越多,那這兩個(gè)句子的相似度就越高。計(jì)算過程是將兩個(gè)句子L1、L2分詞后存放在數(shù)組ArrayL1和ArrayL2中,經(jīng)過計(jì)算后得到的兩個(gè)句子中相同詞的個(gè)數(shù)用SameWorld表示。如果有相同的詞重復(fù)出現(xiàn),則取最小的數(shù)。len(L1)表示句子L1分詞后詞的個(gè)數(shù),詞形相似度計(jì)算的公式如下:
(1)
其中,SimilarS(L1,L2)∈[0,1]。
例如:L1=一維數(shù)組的概念是什么,L2=什么是一維數(shù)組。
分詞后的結(jié)果為:ArrayL1={“一維數(shù)組”,“的”,“概念”,“是”,“什么”},ArrayL2={“什么”,“是”,“一維數(shù)組”}。len(L1)=5,len(L2)=3,SimilarS(L1,L2)=3/5=0.6。
(2)句長相似度計(jì)算。
句長相似度計(jì)算是通過計(jì)算兩個(gè)句子的長度來比較兩個(gè)句子的相似度,它的核心思想是如果兩個(gè)句子的長度越相近,那么這兩個(gè)句子的相似度越高。len(L1)表示句子L1單字的個(gè)數(shù),句長相似度計(jì)算公式如下:
(2)
其中,SimilarLen(L1,L2)∈[0,1]。
例如:L1=一維數(shù)組的概念是什么,L2=什么是一維數(shù)組。
len(L1)=10,len(L2)=7,SimilarLen(L1,L2)=1-abs(10-7)/17≈0.82。
(3)字形相似度計(jì)算。
字形相似度計(jì)算的原理是通過計(jì)算兩個(gè)句子中相同字的個(gè)數(shù)來比較相似度。它的核心思想是如果兩個(gè)句子相同的字?jǐn)?shù)越多,那這兩個(gè)句子的相似度就越高。它是對詞型相似度的一個(gè)補(bǔ)充,詞型相似度的準(zhǔn)確性取決于分詞的結(jié)果,而分詞的準(zhǔn)確性依賴于詞庫的詞,如果詞庫的詞不完整,那么詞型相似度的結(jié)果就會(huì)大打折扣。因此利用字形相似度計(jì)算來彌補(bǔ)詞型相似度計(jì)算存在的一些不足。字形相似度計(jì)算的過程類似于詞形相似度。首先將兩個(gè)句子L1、L2的單字拆分后存放在數(shù)組ArrayL1和ArrayL2中,計(jì)算出的兩個(gè)數(shù)組中相同字的個(gè)數(shù)用Same表示,如果有相同的字重復(fù)出現(xiàn),則取最小的數(shù)。len(L1)表示句子L1中字的個(gè)數(shù),字形相似度計(jì)算的公式如下:
(3)
其中,Similarchar(L1,L2)∈[0,1]。
例如:L1=一維數(shù)組的概念是什么,L2=什么是一維數(shù)組。
以上兩句話中相同的字?jǐn)?shù)為7個(gè),Similarchar(L1,L2)=7/10=0.7。
(4)語句相似度計(jì)算。
語句相似度的計(jì)算公式為:
Similar(L1,L2)=Q1* SimilarS(L1,L2)+
Q2* SimilarLen(L1,L2)+
Q3* Similarchar(L1,L2)
(4)
其中,Q1、Q2、Q3表示各個(gè)相似度計(jì)算的子項(xiàng)所占整個(gè)語句相似度計(jì)算的權(quán)重,且Q1+Q2+Q3=1。設(shè)Q1=0.4,Q2=0.2,Q3=0.4。則L1與L2最終相似度為:
Similar(L1,L2)=0.4*0.6+0.2*0.82+
0.4*0.7≈0.68。
由于一直以來關(guān)于智能答疑系統(tǒng)的評測沒有一個(gè)統(tǒng)一標(biāo)準(zhǔn),只能通過大量的實(shí)驗(yàn)來檢驗(yàn)系統(tǒng)的準(zhǔn)確率。以《C#程序設(shè)計(jì)》課程為例,把《C#程序設(shè)計(jì)》課程的問題輸入到系統(tǒng)中,從兩個(gè)方面測試系統(tǒng),使用基于關(guān)鍵字的檢索方法和基于相似度計(jì)算的檢索方法對比測試系統(tǒng)的答疑準(zhǔn)確度[15]。使用帶常用問題庫的答疑系統(tǒng)與不帶常用問題庫的答疑系統(tǒng)對比測試系統(tǒng)的答疑效率。
準(zhǔn)確度計(jì)算公式如下:
準(zhǔn)確度=答對題數(shù)/總題數(shù)
(5)
檢索效率的計(jì)算公式如下:
檢索平均時(shí)間=檢索總時(shí)間/檢索總題數(shù)
(6)
實(shí)驗(yàn)結(jié)果如表1和表2所示。
表1 準(zhǔn)確度對比
表2 效率對比 s
實(shí)驗(yàn)結(jié)果表明,基于關(guān)鍵字的檢索方法與基于相似度計(jì)算的檢索方法相比,后者的準(zhǔn)確度更高。帶常用問題庫的答疑系統(tǒng)與不帶常用問題庫的答疑系統(tǒng)相比,前者的檢索效率更高。但由于受制于詞庫的限制,有的詞不能被正確劃分,直接影響了答疑效果。因此,接下來主要的目標(biāo)是如何提高分詞的正確率。
為解決現(xiàn)有答疑方式答疑實(shí)時(shí)性差、準(zhǔn)確度低、效率低的問題,提出一種基于語句相似度計(jì)算的智能答疑系統(tǒng)的實(shí)現(xiàn)方案。測試結(jié)果表明,相對于原有答疑方式,該答疑系統(tǒng)在實(shí)時(shí)性、準(zhǔn)確度、效率方面都有一定的提高,一定程度上滿足了學(xué)習(xí)者的需求。
參考文獻(xiàn):
[1] 康文寧,楊志強(qiáng).相似度計(jì)算在智能答疑系統(tǒng)中的研究及應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):71-74.
[2] KANAAN G,HAMMOURI A,SHALABI R A,et al.A new question answering system for the Arabic language[J].American Journal of Applied Sciences,2009,6(4):797-805.
[3] 付春捷,胡 萍.基于中文分詞的智能答疑系統(tǒng)的設(shè)計(jì)[J].科技視界,2014(14):14.
[4] 鄭曉潔,張 琳.一個(gè)基于多課程本體的簡單答疑系統(tǒng)[J].現(xiàn)代計(jì)算機(jī),2013(16):53-57.
[5] SEENA I T,SINI G M,BINU R.Malayalam question answering system[J].Procedia Technology,2016,24:1388-1392.
[6] 肖坤峨,虞 泉.基于WEB的智能答疑系統(tǒng)的研究與構(gòu)建[J].軟件,2015,36(6):31-36.
[7] 陳品帆.基于Web的遠(yuǎn)程答疑系統(tǒng)的關(guān)鍵技術(shù)探討[J].信息技術(shù)與信息化,2015(2):52-53.
[8] 李攀飛,敖永紅,葉昭暉,等.基于大規(guī)模在線學(xué)習(xí)平臺(tái)的智能答疑系統(tǒng)研究與設(shè)計(jì)—以“教育技術(shù)”MOOC為例[J].工業(yè)和信息化教育,2015(11):33-37.
[9] LIU Y F,HE C.Design and implementation of question and answer system based on mobile phone platform[J].Advanced Materials Research,2014,1049-1050:1977-1980.
[10] 徐 曉.智能答疑系統(tǒng)的設(shè)計(jì)與研究[J].微型機(jī)與應(yīng)用,2014,33(5):8-10.
[11] 郭文儉.基于課程教學(xué)網(wǎng)站的智能答疑系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].長春:吉林大學(xué),2015.
[12] 趙 靜,黨麗瓊.基于自然語言理解的在線答疑系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2015(5):10-12.
[13] ZHANG P Y.Sentence similarity metric and its application in FAQ system[J].Advanced Materials Research,2013,718-720:2248-2251.
[14] 管 燕,仲兆滿.基于課程知識本體的FAQ庫自動(dòng)生成方法研究[J].中國遠(yuǎn)程教育,2010(13):68-72.
[15] DONG W J,GENG G H.Research and implementation of intelligent question answering system in MOOC[J].Applied Mechanics and Materials,2014,678:639-643.