宋萬里 卜磊
摘要:教師不能有效及時的回答學(xué)生學(xué)習(xí)過程中遇到的問題,會影響學(xué)生的學(xué)習(xí)興趣及學(xué)習(xí)效率。該文通過自然語言處理技術(shù)、模板分類技術(shù)、支持向量機(jī)技術(shù)構(gòu)建智能答疑系統(tǒng),對問題和答案進(jìn)行分詞處理、模板匹配和分類訓(xùn)練,自動對問題和答案進(jìn)行課程類別判斷。再通過余弦相似性算法對問題和答案計算相似度,返回相似度最大的答案。如用戶對系統(tǒng)反饋答案不滿意,可以將問題拋入公共問答區(qū),來尋求其他用戶幫助。系統(tǒng)將對用戶答案進(jìn)行審核,審核通過則將此問題答案對添加到題庫中,使得題庫中的問句不斷擴(kuò)充。該文是以網(wǎng)絡(luò)論壇中的用戶提問作為問題庫,通過此庫進(jìn)行答案的反饋。測試結(jié)果表明,該系統(tǒng)能夠很好地服務(wù)于大學(xué)生,體現(xiàn)出教學(xué)的智能化。
關(guān)鍵詞:智能問答;學(xué)科分類;問句分類;相似度;智能教學(xué)
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)36-0163-03
Abstract: This is a tough task for teachers to answer questions from students effectively and timely. In this paper, we design and implements an intelligent question answering system using Natural Language Processing, template classification, support vector machine. The system processes the questions and answers by word segmentation, template matching and classification training, and automatically classifies the questions and answers by subject category. This system also calculates the similarity between the questions and answers by cosine similarity algorithm, and returns the most similar answer. If the answer given by the system is not satisfied with the user, the system will write the question into the public question and answer area to seek help from other users. The system will evaluate the answer given by the user, then add the passed answer and the corresponding question to the QA base, so that the questions and answers in the QA base continue to expand. We use the QA base of a network forum as the basic to carry out the experiments. The implementation and experimental results indicate that the proposed approach is achievable.
Key words: intelligent question and answer; subject classification; question classification; question similarity; intelligent teaching
1 背景
智能答疑系統(tǒng)又叫做QA系統(tǒng),隨著互聯(lián)網(wǎng)技術(shù)以及自然語言處理技術(shù)的不斷發(fā)展,對智能答疑系統(tǒng)的研究也在不斷的推進(jìn)[1]。它允許用戶以自然語言進(jìn)行提問,而系統(tǒng)通過推理分析,從一定的信息來源提取文本信息,反饋給用戶有效答案。智能問答系統(tǒng)被分為開放領(lǐng)域和封閉領(lǐng)域兩類,封閉領(lǐng)域?qū)⒂脩魡柧湎薅ㄔ谀骋活I(lǐng)域內(nèi);而開放領(lǐng)域不設(shè)定問題的范圍,提問者可以提問自己感興趣的任何問題,并且能夠從系統(tǒng)中獲得滿意的答案。目前流行的問答機(jī)器人多是基于開放領(lǐng)域的,如基于互聯(lián)網(wǎng)預(yù)料及用戶點(diǎn)擊日志的微軟小冰,基于百度搜索日志的百度語音助手等。這些開發(fā)性的機(jī)器人無法針對特定領(lǐng)域(如政府、金融、保險、教育)給出準(zhǔn)確的回答。銀行問答系統(tǒng),金融問答系統(tǒng),電商機(jī)器客服等問答系統(tǒng)則是針對特定領(lǐng)域的。如北京理工大學(xué)自然語言處理實(shí)驗(yàn)室開發(fā)的銀行領(lǐng)域的智能問答系統(tǒng)BAQS,哈爾濱工業(yè)大學(xué)研究生開發(fā)的面相金融的問答系統(tǒng),它們隨時都能回答用戶的問題,極大節(jié)省了人力資源。
學(xué)生在學(xué)習(xí)過程中會遇到各種問題,需要及時的被解答。本文研究設(shè)計了一套針對計算機(jī)基礎(chǔ)知識領(lǐng)域的問答系統(tǒng),該系統(tǒng)能夠滿足用戶對該領(lǐng)域問答的需求。智能問答系統(tǒng)主要包括三個部分:問題分析、信息檢索和答案抽取[2]。本文是基于FAQ(Frequently Asked Questions)庫的限定領(lǐng)域的答疑系統(tǒng)。主要對課程關(guān)鍵詞提取,中文問句課程分類,中文問句類型分類,中文問句相似度計算進(jìn)行研究與實(shí)現(xiàn)。本系統(tǒng)的價值在于提高學(xué)生學(xué)習(xí)的興趣和學(xué)習(xí)的效率,并促使教學(xué)往智能化的方向發(fā)展。
2 系統(tǒng)流程設(shè)計
系統(tǒng)流程從用戶提出問題開始,首先使用分詞工具對問句進(jìn)行處理,包括去停用詞和用戶自定義詞的提取。根據(jù)基于規(guī)則的中文問句分類方法對問句類型進(jìn)行判斷,然后通過訓(xùn)練好的SVM模型來判斷問句所屬課程類型,最后在FAQ庫同類問句中進(jìn)行余弦相似度計算,取出相似度最高的問句答案反饋給用戶。由于FAQ庫不可能包含用戶提問的所有問題,在此情況下相似度將會很低,即系統(tǒng)反饋的答案不能使用戶滿意。此種情況下,用戶可以將問句發(fā)往公共問答區(qū)尋求其他用戶幫助,并由用戶自己選出滿意的回答。最后系統(tǒng)將對此問題和答案審核,如果審核通過則將此問題答案對添加到FAQ庫中。在使用的過程中,F(xiàn)AQ庫將會被不斷完善,那么系統(tǒng)反饋正確答案的能力也將越來越強(qiáng)[3-5]。問答流程如圖1所示。
3 系統(tǒng)實(shí)現(xiàn)
3.1 利用TF-IDF算法提取課程關(guān)鍵詞
本文將問題所屬課程分為四類,“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)庫概論”、“計算機(jī)網(wǎng)絡(luò)”、“其他課程”。每個課程都有其關(guān)鍵詞[6-7],關(guān)鍵詞是判斷問句所屬課程的關(guān)鍵。例如:TCP、路由器、交換機(jī)、網(wǎng)絡(luò)協(xié)議等很明顯是屬于計算機(jī)網(wǎng)絡(luò)這門課程的關(guān)鍵詞。本文就采用TF-IDF算法來收集每門課程的關(guān)鍵詞,再結(jié)合人工收集對關(guān)鍵詞進(jìn)行補(bǔ)充完善。如果一個詞在其他文章中很少出現(xiàn),但在該文章中多次出現(xiàn),則我們就認(rèn)為該詞就是我們所要找的關(guān)鍵詞。這個重要性調(diào)整系數(shù)就是逆文檔頻率(IDF),它的值和一個詞的常見程度成反比。知道了詞頻(TF)和逆文檔頻率(IDF),將它們相乘就能得到一個詞的TF-IDF[8]。如果TF-IDF值越大,則說明該詞對這篇文章越重要,即為關(guān)鍵詞。
詞頻計算公式:
3.2 利用LibSVM判斷課程類別
LibSVM是臺灣大學(xué)林智仁教授等開發(fā)設(shè)計的一個簡單、易于使用和快速有效的SVM模式識別與回歸的軟件包。我們有多個課程要分類,屬于多分類問題,而SVM是一個二分類器,當(dāng)遇到多類別的時候[9],一般采取如下兩種策略。一個是一對多法:訓(xùn)練時依次把某個類別的樣本歸為一類,其他剩余的樣本歸為另一類,這樣k個類別的樣本就構(gòu)造出了k個SVM。分類時將未知樣本分類為具有最大分類函數(shù)值的那類。另一個是一對一法:其做法是在任意兩類樣本之間設(shè)計一個SVM,因此k個類別的樣本就需要設(shè)計k(k-1)/2個SVM。當(dāng)對一個未知樣本進(jìn)行分類時,最后得票最多的類別即為該未知樣本的類別。LibSVM中的多類分類就是根據(jù)第二個方法實(shí)現(xiàn)的。
我們把利用TF-IDF所收集的三門課程的關(guān)鍵詞作為分類的屬性。我們規(guī)定課程“數(shù)據(jù)結(jié)構(gòu)”的標(biāo)簽為1,課程“數(shù)據(jù)庫概論”的標(biāo)簽為2,課程“計算機(jī)網(wǎng)絡(luò)”的標(biāo)簽為3 。比如數(shù)據(jù)庫中有100條計算機(jī)網(wǎng)絡(luò)課程的問句,我們將選取80條用來作為訓(xùn)練的數(shù)據(jù),另外20條用來測試訓(xùn)練出來的模型。我們將每一條問句分詞,并將這些詞和屬性詞集進(jìn)行比對,如果問句所分詞出現(xiàn)在屬性詞集當(dāng)中,則將該屬性標(biāo)為1,其余屬性標(biāo)為0。利用這種方法將訓(xùn)練集中的“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)庫概論”、“計算機(jī)網(wǎng)絡(luò)”問句全部轉(zhuǎn)為這種數(shù)據(jù)格式,傳遞給LibSVM用于訓(xùn)練,獲得模型。
3.3 基于模式匹配的中文問句分類
問句的分類對問答系統(tǒng)來說非常重要,它能夠縮小數(shù)據(jù)的查找范圍,在一定層面上決定了答案抽取的準(zhǔn)確性。本文通過對問題集的收集,分析每種問題所包含的比例,有側(cè)重的提出一套適合于計算機(jī)基礎(chǔ)問句領(lǐng)域中文問句分類規(guī)則。系統(tǒng)將本領(lǐng)域問題分為原因類、比較類、描述類、列舉類、其他類。如表1所示。
首先對中文問句進(jìn)行分詞,例如:JAVA為什么可以跨平臺?可以被分為“JAVA”,“為什么”,“可以”,“跨”,“平臺”這幾個詞。將這幾個詞和原因類的特征詞相比較,顯然為什么是屬于原因類的特征詞。如果沒有匹配上,則依次和比較類,描述類,列舉類的特征詞相比較。如果都沒有匹配上,則看問句中是否出現(xiàn)了本領(lǐng)域的特征詞。比如用戶就輸入“數(shù)據(jù)結(jié)構(gòu)”四個字,很明顯沒有疑問詞的出現(xiàn)。但“數(shù)據(jù)結(jié)構(gòu)”是本領(lǐng)域的特征詞,所以我們默認(rèn)為用戶提問的是“什么是數(shù)據(jù)結(jié)構(gòu)?”,即將其歸為描述類問句。如果沒有疑問詞也未出現(xiàn)本領(lǐng)域的特征詞,則將其歸為其他類問句。問句分類的流程圖如2所示。
3.4 利用余弦定理計算問句相似度
問句相似度的計算是本系統(tǒng)的關(guān)鍵步驟,通過用戶輸入的問句,在同類型的問句中匹配相似度最高的問題答案返回給用戶[10]。通過對兩個中文文句進(jìn)行分詞,然后將其轉(zhuǎn)為向量,最后利用余弦定理來計算兩個句子的相似度。兩個問句經(jīng)過處理后得到如下兩個向量。
4 實(shí)驗(yàn)結(jié)果及分析
4.1 實(shí)驗(yàn)方法
由于本文研究的智能答疑系統(tǒng)是基于FAQ庫的,測試數(shù)據(jù)就是FAQ庫中所有的問題答案對。首先是對課程分類模型進(jìn)行測試,F(xiàn)AQ庫中共有1000個常見問題。其中“數(shù)據(jù)結(jié)構(gòu)”問句300條,“數(shù)據(jù)庫概論”問句300條,“計算機(jī)網(wǎng)絡(luò)”問句300條,其他課程問句100條。每科各取80%作為訓(xùn)練數(shù)據(jù),剩余20%作為模型的測試數(shù)據(jù)。對系統(tǒng)反饋答案的準(zhǔn)確率進(jìn)行統(tǒng)計,準(zhǔn)確率受問句類型判斷和相似度計算的影響。任意抽取30%的問句進(jìn)行提問,統(tǒng)計系統(tǒng)反饋答案的準(zhǔn)確率。為了取得更好的測試結(jié)果,抽取的問句應(yīng)平均分布在不同的問句類別中。
4.2 實(shí)驗(yàn)結(jié)果
經(jīng)過測試,類別判斷的準(zhǔn)確率達(dá)到86.4%。其中“數(shù)據(jù)結(jié)構(gòu)”類型判斷準(zhǔn)確率為86.7%,“數(shù)據(jù)庫概論”類型判斷準(zhǔn)確率達(dá)到85.4%,“計算機(jī)網(wǎng)絡(luò)”的準(zhǔn)確率達(dá)到87.3%。具體實(shí)驗(yàn)數(shù)據(jù)如表2所示。
5 結(jié)束語
本文對智能答疑系統(tǒng)的設(shè)計與實(shí)現(xiàn),該系統(tǒng)通過分詞工具對問句進(jìn)行預(yù)處理,過濾關(guān)鍵詞和去停用詞;利用TF-IDF技術(shù)提取本課程的關(guān)鍵詞,關(guān)鍵詞集合作為問句課程分類的依據(jù);利用基于模式匹配的方法進(jìn)行問句分類;利用LibSVM訓(xùn)練問句分類模型,利用該模型來判斷問句所屬課程;通過余弦相似性算法計算中文問句之間的相似度。通過實(shí)驗(yàn)表明,本文提出的智能答疑系統(tǒng)能夠滿足用戶對問答的需求,提高了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效率,體現(xiàn)了教學(xué)的智能化。下一步是對中文語義理解的研究,以提高系統(tǒng)反饋答案的正確率。
參考文獻(xiàn):
[1] 劉祥. 基于課程知識的問答系統(tǒng)研究與應(yīng)用[D]. 大連: 大連海事大學(xué), 2010.
[2] 鄭實(shí)福, 劉挺, 秦兵,等. 自動問答綜述[J]. 中文信息學(xué)報, 2002, 16(6):46-52.
[3] 張巍. 融合FAQ、本體和推理技術(shù)的問答系統(tǒng)研究[D]. 太原: 太原理工大學(xué), 2011.
[4] 段建勇, 李俊, 張梅, 等. 限定領(lǐng)域的自動問答系統(tǒng)研究[J]. 北方工業(yè)大學(xué)學(xué)報, 2010, 22(1):23-27.
[5] 成思聰. 基于語義理解的中文問答系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J]. 中國電子商情·通信市場, 2013(5):76-83.
[6] 牛彥清, 陳俊杰, 段利國, 等. 中文問句分類特征的研究[J]. 計算機(jī)應(yīng)用與軟件, 2012, 29(3):108-111.
[7] 姜芳, 李國和, 岳翔. 基于語義的文檔關(guān)鍵詞提取方法[J]. 計算機(jī)應(yīng)用研究, 2015, 32(1):142-145.
[8] 張建娥. 基于TFIDF和詞語關(guān)聯(lián)度的中文關(guān)鍵詞提取方法[J]. 情報科學(xué), 2012(10):110-112+123.
[9] 莊新妍. 基于SVM的中文文本分類系統(tǒng)的研究與實(shí)現(xiàn)[D].長春: 吉林大學(xué), 2007.
[10] 周永梅, 陶紅, 陳姣姣, 等. 自動問答系統(tǒng)中的句子相似度算法的研究[J]. 計算機(jī)技術(shù)與發(fā)展, 2012, 22(5):75-78.