專業課程問答系統設計探究

前言:尋找寫作靈感?中文期刊網用心挑選的專業課程問答系統設計探究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

專業課程問答系統設計探究

摘要:為了快速準確地獲得用戶想要獲取的信息和適應教學新模式,本文基于檢索和閱讀理解兩種模式建立了面向限定領域的問答系統,以數據結構作為問答方向,對用戶提出的問題進行分析,將質量最高的答案返回。系統還具備問題推薦和點贊機制,實現了友好的交互性。

關鍵詞:檢索;閱讀理解;交互性;問答系統;限定領域

1引言

教學問答是教學的重要組成部分。傳統教學問答環節存在著諸多問題:知識點內容相同,但形式多變,教師對同一類問題做出多次解答;學生缺少問答時間,不習慣于找老師答疑;網絡搜索不能精確定位答案;多種信息工具造成信息孤島,課程群中的答疑記錄被聊天所淹沒?;谝陨媳尘?,本文設計一款基于檢索和閱讀理解的面向專業課程的智能問答系統,以解決高校課程教學過程中教師及學生問答環節的痛點,解決傳統檢索式問答“最后一公里”的難題。該系統不僅可以幫助學生實時解答疑惑、獲取知識,還可以加速教育的個性化和智能化[1]。

2問答系統的總體設計

本文研究目標為實現一個基于檢索和閱讀理解的問答系統,領域限定為數據結構這門課程,可以支持關于數據結構相關知識的問題。通過對用戶自然語言提出的問題進行分析,系統將得到的質量最高的一條答案返回給用戶。系統還提供了問題推薦和點贊機制,實現了友好的交互性。

2.1系統模塊設計。針對數據結構問答系統的需求,系統分為三個模塊:問題推薦模塊、檢索模塊、閱讀理解模塊,如圖1所示。用戶提出問題,進入問題推薦模塊獲取最終問題Q,通過檢索模塊檢索答案,若無答案則進入閱讀理解模塊生成答案,最后將答案返回給用戶。(1)問題推薦模塊。作為問答系統的第一道工序,十分重要。為更好地理解用戶提出的問題,需要對提出的問題進行判斷,若問題字數小于限定值,推薦給用戶相關問題。(2)檢索模塊。這是是系統的核心模塊。通過問題對本地問答集進行相關性檢索,獲得相似度高的答案。(3)閱讀理解模塊。通過抽取式閱讀理解模型實現,經過處理、預測后,生成一條答案。

2.2系統流程設計。用戶用自然語言提出問題,若問題字數小于限定值,系統通過問題推薦模塊顯示相關問題推薦。用戶再次選擇獲取到問題Q。然后將問題Q放入檢索模塊進行檢索。檢索采用的本地問答集是基于數據結構的課程教材整理的QA集,經過檢索獲取得分最高的答案作為候選答案。若該分數大于系統設置的閾值,則直接返回將答案顯示給用戶。若分數低于閾值,則進入閱讀理解模塊。為了提高效率,在上述檢索模塊進行的同時做好閱讀理解模塊的準備工作?;趩栴}Q,爬取網上的相關文檔,若系統沒有進入到此模塊則釋放掉;如進入到此模塊,則將問題Q和文檔共同作為參數傳遞給閱讀理解模型,將模型生成的答案顯示給用戶。進一步擴展,系統將提供點贊機制,將問題、答案和點贊信息存入數據庫,設置質量評估機制,若高于評估值則將該問答加入到本地QA集中,實現系統的成長性。依據流程圖,使用javaweb和python實現了系統的構建,通過api接口實現與各個模型的調用?;趩柎鹣到y,本文設計了用戶問答界面,實現了友好的交互性。

3問答系統的關鍵技術

3.1本地問答集的構建。3.1.1QA問答集。與傳統的閑聊式問答不同,面向數據結構的限定領域的問答,檢索的語料采用QA問答對的形式。由于限定的范圍較小以及該課程的專業性,網上對于這方面內容的問答比較分散、數量較少,所以通過爬蟲獲得的只占很小一部分,主要還是依靠人工進行整理。依據數據結構這門課程的教材,整理包括各類專業性術語的定義和方法、各章節的知識點及相關問題,最終整理了3000條左右的數據以一問一答的形式換行儲存在txt文件中。3.1.2訓練模型的語料。系統采用基于LSTM的端到端的神經架構,每條語料包含段落-若干問題-候選答案以及標注好的答案的起始位置。這里選擇了科大訊飛的cmrc2018_train.json作為訓練數據集。

3.2系統。(1)基于Lucene的檢索Lucene是一款由java語言開發的開源搜索引擎庫,有很強大的檢索功能[2]。使用Lucene對構建好的本地QA集建立倒排索引,用來儲存在全文搜索下單詞在一個文檔中的存儲位置的映射。此索引包含兩個field、question和answer。通過ik分詞工具對問題分詞,過濾停用詞,查詢建好的索引的question字段,通過Lucene內置的打分機制,將分數從高到低進行排序,將分數最高的答案提取出來作為候選答案。Lucene在分詞算法中,采用ik進行分詞,可以避免單字分詞而損失的所有語義相關性。此外,除掉停用詞十分重要,因為這些詞出現的頻率太高,會嚴重干擾算分結果。所以為了更好地使得分更加準確,設置boost的值為2,使匹配問題單詞的權重更高。由于檢索就是計算問題的相似度,如果分數過低則說明本地問答集中沒有相似問題,需要設立一個閾值來進行判定,若高于闕值,直接把答案顯示給用戶,反之則說明不含有相似問題,系統進入到閱讀理解模塊。依據語料特點,經過不斷地測試,最終設定分數閾值為2.7,低于則說明問題的相似度較低。(2)基于Match-LSTM的端到端的神經架構當檢索分數過低時,系統進入閱讀理解模塊。閱讀理解,讓機器像人一樣去讀懂一段文字,并回答相關問題。常見的機器閱讀理解形式有選擇題式、完形填空式和抽取式[3]。本系統采用的是基于Macth-LSTM和指針網絡的閱讀理解模型[4],是最常用的抽取式。模型采用科大訊飛的中文數據集cmrc2018_train.json作為訓練語料。該模型的方法,給出一個段落以及與段落相關的問題,模型的目標是確定段落的子序列作為問題的答案。該方法通過訓練語料,最終實現向模型傳入段落和問題,模型定位到相應的答案,從而做出回答。由于本地問答集資源有限,為了更好地回答問題,需要根據用戶提出的問題,到網絡上爬取相關答案,結合在一起組成新的段落,將它和問題一起作為參數輸入模型。模型通過處理、預測后,生成答案返回給用戶。如圖3所示,模型生成答案的過程分為四部分。嵌入模塊,將段落和問題轉換為詞向量,使得每個詞都具有唯一的向量表示。編碼模塊將詞向量轉換成有意義的上下文序列信息。交互模塊是比較核心的部分,通過注意力機制對問題和文章的編碼信息進行相關性計算[5],使模型將注意力放在文章中更加重要的部分。答案預測模塊,使用LSTM匹配問題和給定的段落,通過指針網絡以不同的方式生成包含來自給定段落的多個令牌的答案。(3)問題推薦機制針對一些用戶只提問關鍵詞,導致系統不能夠清楚地理解用戶的問題,并且作為一個問答系統,友好的交互更容易得到用戶的青睞。基于此建立了問題推薦機制,對問題進行判斷。若問題低于一定字數,則首先推薦給用戶相關問題,用戶選擇之后系統再進行回答。該模塊通過Lucene選擇本地問答集中相似度最高的3個問題,選擇推薦的問題相當于直接從QA集中查找已有問題的答案,對用戶十分友好。(4)答案質量評估機制系統對閱讀理解模塊生成的答案,提供點贊機制。用戶可對有幫助的回答進行點贊,將問題、答案和點贊信息存入數據庫,建立評估函數。當點贊數達到一定數量觸發,將高于評估值的問答加入到本地QA集中,實現系統的成長性。

4實驗結果與分析

基于檢索的查找,對語料要求很高。由于語料有限,經測試,提出的問題若是數據結構課程中常見或者概念性的問題,通過檢索可以獲取較為準確的答案。而通過閱讀理解模型獲得的答案,在“是什么”類型的問題上發揮得較為出色,在“為什么”這類問題上效果較差。

5總結

本文實現了基于檢索和閱讀理解的問答系統。該系統可以針對數據結構課程的問題進行快速回答,解決了傳統式問答“最后一公里”的難題。為了提高系統的問答質量,可不斷擴大本地問答集的數量。此研究中,系統所涉及的課程只限定為數據結構一門。為了更好地解決學生問答痛點,更好地適應教學新模式,可以將系統進一步擴展,將領域擴展到多門課程。

作者:吳佳澤 湯榮亮 冉浩 單位:北京信息科技大學

亚洲精品一二三区-久久