周藝偉 洪逸凡



摘要:基于現今教師出題題目難度評級客觀性差,現有題庫系統對于題目難度評級過于簡單的現象,本系統采用GA算法,BP算法,解決了客觀評價試題難度評級的問題,并且可以根據給定條件快速生成符合要求的試卷。該系統在微服務架構下完成敏捷開發作為實現。
關鍵詞:GA算法;BP算法;動態題庫;智能組卷;微服務
中圖分類號:G424 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)24-0183-02
1 題目難度客觀評級的實現
1.1 題目評級樣本的初次統計
本系統利用了BP網絡的有指導的學習方式,通過選取2000道歷年由任課教師所出的java考試試卷題目,首先對任課教師進行問卷訪問,將結果匯總后進行人工錄入統計,獲得教師對于題目的難度評級評價。
試卷的難度評級定義為四級,1級為難,2級為較難,3級為較簡單,4級為簡單。人工首次統計教師對于題目的難度評級時,計算難度評級的平均值作為最終評判結果,并且計算評級標準差,將標準差高于0.5的題目剔除,避免因為教師的意見相差過大造成題目評級不精準。最終統計結果保留了1342道題目。
采用同樣的方法,通過問卷訪問,統計上述1342道題目在學生立場的難度評級,采樣群體來自上文中被統計的任課教師所教授的同一學年全體學生。同樣計算難度評級的平均值作為最終評判結果,并且計算評級標準差,將標準差高于0.5的題目剔除,最終保留了1132道題目。
因為教學的本質目標主體在于學生,該題庫數據的首次難度評級采用學生的難度評級作為真正的過往難度評級數據和實際值,教師的難度評級作為期望值,選取部分數據對比結果進行展示,如表1所示:
可以看到,期望值和實際值之間的差值有的相差過大(差值>1),這體現了教師和學生對于題目難度評價存在較大的分歧現象,直接證實了考試試題的難度評級難以及時得到客觀性評價問題的存在性。
1.2題目評級參數的選取
考慮到常見的題庫系統評級一般采用人工賦值或者僅僅依靠錯誤率來維護更新的情況,這也會導致一些評級不夠客觀的問題,例如選取市面上某題庫系統,通過加入上文中保留的1132道題目,獲取題目難度評級和學生難度評級進行對比。如表2所示:
可以根據數據觀察到,期望值和實際值在某些題目上仍然存在較大差距,題目難度評級的客觀性仍然沒有得到保證。
因此本系統在對于題庫中題目評級的維護和更新過程中,加入了知識點,和過往評級對于過往錯誤率進行結合,形成綜合考慮。
1.3 BP神經網絡的選取
本系統為了減少了網絡的訓練時間和訓練過程中出現“過擬合”的傾向。隱藏層數目的確定十分重要。由于隱含層數目對于學習時間的約束限制[1],并且按照Kosmogorov定理的內容可知, 在合理的結構和恰當的權值條件下, 3層BP神經網絡可以逼近任意的連續函數,所以本系統選擇3層BP神經網絡進行具體測試。
1.4隱藏層節點的確定
相比于傳統系統評級的粗糙情況,本系統考慮到題庫中題目難度評級主要有知識點包含數量,過往錯誤率以及上一次難度評級來決定。在保證收斂的準確性的前提下,節點數越少,網絡的速度越快。三層神經網絡為了保證最低的準確性,根據過往實驗統計擬合,如圖1所示:
節點數在2時就能達到準確率的極值,而且增加節點數之后,耗時逐漸增長到一個極值,因此本系統選擇輸入層節點數目為3,是足夠達到學習精準度的。設置輸出節點數為1,作為重新計算的難度評級分值。本系統采用S型函數
1.5學習速率的確定
雖然人工設定學習速率有一定的限制性,但是考慮到本系統題目難度評級設定為整數,因而評級計算的要求只需要保留到小數點后面一位即可。通過多次試驗將學習速率確定為0.5。
1. 6 實驗結果分析
通過選取1000條題目進行測試,本系統通過訓練后,得到的部分訓練結果如表3所示:
通過計算期望值和實際輸出差值,可以觀察到誤差基本都小于0.001,符合實際情況的需求,和表1與表2的差值對比也能觀測到,該系統的確能夠通過增加參數設置,解決題目難度評級客觀性的問題。同時本系統的具體實現對于學習率設置,隱藏層節點數目要求不高,節省了訓練時間,仍能夠保證具有較高的準確度。
2 快速生成組卷
2.1 GA算法應用目的
為了解決由于在實際情況下,采用傳統的查找方式進行試卷生成,系統往往反應速度較慢,難以投入到真正教學使用的過程當中,解決緩解教師出卷壓力的問題,本系統采用的GA算法進行選題組卷生成試卷。
2.2 GA算法在本系統的實現
為了減少交叉,優化的速度,根據實際情況,將組卷參數矩陣設定為以下形式:(每題有4項主要參數:過往錯誤率a1,知識點數a2,上一次難度評級a3,題目類型a4)
通過隨機函數產生N道題目,通過計算第i項的誤差fi和和ai指標值的成績總和。當結果最小時,交叉變異產生下一代。由于難點在于匹配題目的難度評級,而上文中提到的BP算法對于評級有較好的擬合,因而可以進行成功的組卷。
3 系統具體實現
3.1系統分析
系統的模塊獨立開發,主要使用J2EE為開發平臺,客戶端服務端分離開發,web頁面使用react編寫,后臺采用spring boot框架,提供REST接口訪問,通過nginx配置實現反向代理解決跨域訪問問題,采用MySQL數據庫進行題目存儲。系統模塊主要分為以下四個部分:用戶管理,試題庫管理,組卷管理,成績管理。系統設計結構圖如圖2所示:
3.2具體實現過程
在實現過程中,首先,通過設計數據庫相應表,存儲教書,學生,成績,題目相關數據。
通過服務器端開發,實現對于數據庫中數據的CURD基本操作,能夠實現用戶管理,試題庫查詢和組卷請求的響應,實現對于成績的基本錄入。
客戶端開發頁面主要有登錄,查詢,選題,組卷,做題等功能界面
利用本文中提及的BP算法,編寫試題庫管理模塊,對題目難度進行合理化評級,實現試題庫的動態更新。
編寫組卷模塊,通過GA算法,在完成合理化的難度評級前提下,能夠根據給定條件快速生成合乎條件的試卷。
整個系統在微服務架構下完成,因而可以使得每個模塊獨立開發,采用更加方便的語言和庫調用。
本系統通過人工錄入1000到題目進行測試,組卷題目評級以及生成試卷響應時間都有一個較好的效果。因而證實了本系統是一個良好的組卷系統解決方案。
4總結
本文通過BP算法應用可行性分析為基礎,提供了客觀的試題難度評級方法,使得智能組卷的題庫題目難度能夠被切實有效的客觀評級。利用GA算法使得題庫系統的組卷過程能夠得到快速實現。依托了先進敏捷開發的微服務架構,針對題庫系統做出了基本的實現,為解決教師出卷主觀性強,難度評級和現實相差較大的問題提供了一個良好的解決方案。
參考文獻:
[1] Hadi M N S . Neural networks applications in concrete structures[J]. Computers & Structures, 2003, 81(6):373-381.
【通聯編輯:唐一東】