国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于聯(lián)合神經(jīng)網(wǎng)絡(luò)模型的學(xué)生編程題目理解

2022-05-11 06:24:36楊佳諾張麗萍閆盛
關(guān)鍵詞:編程題目知識(shí)點(diǎn)

楊佳諾,張麗萍,閆盛

(內(nèi)蒙古師范大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,內(nèi)蒙古 呼和浩特 010022)

在計(jì)算機(jī)教育認(rèn)知領(lǐng)域通過機(jī)器理解編程題目是一個(gè)重要的研究方向,過程包括自然語言處理中的多種核心技術(shù)[1]。在求解編程問題時(shí),若學(xué)習(xí)者無法將算法內(nèi)容與實(shí)際題目相結(jié)合,則無法建立解題的編程思維,不能編寫代碼解決問題。而在初學(xué)者面對(duì)編程題目時(shí),尚未形成系統(tǒng)的編程思維,不具備分析題目的基本能力。因此,將機(jī)器理解編程題目方法應(yīng)用于解題過程中,將對(duì)編程學(xué)習(xí)者提供很大的幫助。目前,使用計(jì)算機(jī)理解自然語言的研究已經(jīng)比較成熟,但是與自然語言不同,學(xué)生編程題目具有較強(qiáng)的抽象性、復(fù)雜性特點(diǎn),專業(yè)術(shù)語較多,因此對(duì)學(xué)生編程題目理解是一種對(duì)基礎(chǔ)知識(shí)、邏輯思維的綜合考察,根據(jù)題目文本材料,分析文本內(nèi)容,抽象編程算法,提取求解編程題目所需的知識(shí)點(diǎn)信息和算法信息,幫助初學(xué)者提供解決編程問題的關(guān)鍵步驟,完成對(duì)編程題目理解的過程[2]。這將對(duì)計(jì)算機(jī)編程教育提供指導(dǎo)性幫助,對(duì)于促進(jìn)編程課程的實(shí)踐過程有著重要的現(xiàn)實(shí)意義。

1 相關(guān)研究

目前,自然語言處理對(duì)文本理解已有了成熟的解決辦法。包括針對(duì)四、六級(jí)聽力文本閱讀理解,通過抽取材料片段、問題、選項(xiàng)的語義信息并給出正確答案[3];針對(duì)航班訂票信息語料提取用戶意圖,通過分詞、訓(xùn)練數(shù)據(jù)得到用戶的出發(fā)地與目的地等信息[4];針對(duì)問答系統(tǒng)中用戶提出的問題,通過分析用戶數(shù)據(jù),結(jié)合用戶歷史問題,對(duì)用戶產(chǎn)生指導(dǎo)性作用[5]。本文旨在對(duì)編程題目進(jìn)行理解,在編程練習(xí)過程中,當(dāng)學(xué)習(xí)者求解問題時(shí),對(duì)題目的正確理解是編程訓(xùn)練的關(guān)鍵步驟。如何通過智能化的方式幫助學(xué)習(xí)者理解編程題目、抽取關(guān)鍵信息是學(xué)生正確解題的關(guān)鍵。

文本理解系統(tǒng)中的關(guān)鍵信息抽取模塊多采用對(duì)文本提取部分關(guān)鍵詞并重新組合,形成新的可以由計(jì)算機(jī)識(shí)別的語句的方法[6],但是該方法并沒有對(duì)文本深層語義進(jìn)行提取,不能準(zhǔn)確理解文本?;谟脩魡栴}主題模型的方法[7],雖然避免了語義歧義性,對(duì)文本的深層語義進(jìn)行提取,但是該方法針對(duì)的是特征主題的數(shù)據(jù),并不適用于具有上下文的數(shù)據(jù)。此外,傳統(tǒng)的機(jī)器學(xué)習(xí)方法將提取關(guān)鍵信息這一過程通過分類的方法解決[8],雖然最終結(jié)果在人類行為數(shù)據(jù)集上精度有一定提升,但隨著不同領(lǐng)域數(shù)據(jù)集的變化,需要重新設(shè)計(jì)特征并進(jìn)行參數(shù)的學(xué)習(xí),因此該方法不具備可行性。這些方法簡(jiǎn)單易行,雖耗時(shí)耗力,不適于大數(shù)據(jù)時(shí)代,但為后續(xù)文本理解研究的發(fā)展奠定了基礎(chǔ)。

隨著深度學(xué)習(xí)的發(fā)展,使用構(gòu)造深度神經(jīng)網(wǎng)絡(luò)來提取文本中關(guān)鍵信息的方法被提出。該方法不需考慮特定的句法要求,將文本分詞后的每一個(gè)單詞對(duì)應(yīng)的詞向量作為輸入,設(shè)計(jì)特征工程從輸入中自動(dòng)提取特征[9],所提取的特征可用于文本預(yù)測(cè)或者分類過程[10]。該方法主要分為以下三類:基本單神經(jīng)網(wǎng)絡(luò)模型[3,11]、擴(kuò)展神經(jīng)網(wǎng)絡(luò)模型[12]和組合神經(jīng)網(wǎng)絡(luò)模型[13]。本文基于傳統(tǒng)深度學(xué)習(xí)方法提出了一種基于BiLSTM+CNN+CRF 聯(lián)合模型的學(xué)生基礎(chǔ)編程題目理解方法。主要對(duì)編程題目文本特點(diǎn)建模,充分學(xué)習(xí)編程題目文本語句,減弱編程題目文本的抽象性;通過神經(jīng)網(wǎng)絡(luò)模型與相應(yīng)算法提取文本深層語義,解決編程題目文本含義單一問題。研究結(jié)果以期對(duì)編程學(xué)習(xí)者提供幫助。

2 基于聯(lián)合模型的編程題目理解

由于學(xué)生編程題目文本具有特殊性,本文對(duì)編程題目理解過程進(jìn)行建模,如圖1 所示。一方面,考慮到理解編程題目后所得信息大多為動(dòng)詞、名詞,因此,需對(duì)編程題目文本進(jìn)行詞性標(biāo)注;另一方面,編程題目一般較為抽象,準(zhǔn)確提取關(guān)鍵信息需提取文本特征。

2.1 問題描述

當(dāng)編程學(xué)習(xí)者求解編程問題時(shí),需要理解題目本身的意圖,即該題目需要學(xué)習(xí)者“怎么做”才能保證解題過程的正確。因此,計(jì)算機(jī)需實(shí)現(xiàn)人腦理解編程題目的過程,得出人腦思考編程題目后的結(jié)果,且要保證結(jié)果的正確性。對(duì)編程題目理解的示例見表1。

由表1 可知,對(duì)編程題目進(jìn)行理解后,所得關(guān)鍵信息中,算法關(guān)鍵詞一般為動(dòng)詞,知識(shí)點(diǎn)關(guān)鍵詞一般為名詞,但算法關(guān)鍵詞更為抽象,需進(jìn)一步分析編程題目文本的語義信息,提取語義特征。

表1 關(guān)鍵信息提取示例Tab.1 Example of extracting key information

基于上述分析對(duì)編程題目理解過程建模,在對(duì)數(shù)據(jù)預(yù)處理等操作后,分別對(duì)題目數(shù)據(jù)進(jìn)行詞性標(biāo)注和語義特征提取,在獲取到相應(yīng)操作結(jié)果后,解碼獲取求解問題的關(guān)鍵信息。

2.2 詞性標(biāo)注

詞性標(biāo)注是將詞性含義與上下文內(nèi)容結(jié)合對(duì)文本數(shù)據(jù)中的單詞進(jìn)行標(biāo)記處理的過程。本文使用雙向長(zhǎng)短期記憶模型(BiLSTM)對(duì)編程題目進(jìn)行詞性標(biāo)注,其過程包括設(shè)計(jì)規(guī)則、模型設(shè)計(jì)與模型的訓(xùn)練。

人在思考問題之前,大腦中會(huì)存放有關(guān)該問題的相關(guān)知識(shí),這是大腦對(duì)信息的持久性作用。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)并不能實(shí)現(xiàn)這一特性,而循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)解決了這個(gè)難題,RNN 通過之前保存的信息并綁定到當(dāng)前任務(wù),決定當(dāng)前的輸出。但由于RNN 在訓(xùn)練過程中無法解決編程題目文本中的“長(zhǎng)期依賴”問題[14],而LSTM 模型通過輸入門、遺忘門、輸出門成功解決這一問題[15]。BiLSTM 單元可通過前向、后向分別獲取輸入序列的上、下文信息。在學(xué)生編程題目理解任務(wù)中,BiLSTM 模型使當(dāng)前狀態(tài)的輸入門、輸出門、遺忘門都與前一狀態(tài)、后一狀態(tài)息息相關(guān)(如“if”“number”“not”“get rid”等),從而保證學(xué)習(xí)效果的準(zhǔn)確性更高。此外,BiLSTM 不僅可以捕獲到相近位置的信息,也可以捕獲到較遠(yuǎn)位置的信息。在決定當(dāng)前狀態(tài)信息時(shí),影響因素更多,學(xué)習(xí)結(jié)果精確度更高。本文使用BiLSTM 模型為理解學(xué)生編程題目文本提供了便利的條件,不僅削弱了編程題目文本的結(jié)構(gòu)性,而且有更精確的詞性標(biāo)注結(jié)果。

2.3 特征提取

特征提取是從文本數(shù)據(jù)中抽象出可以代表該文本的數(shù)據(jù),具有簡(jiǎn)介性、抽象性。本文特征提取使用卷積神經(jīng)網(wǎng)絡(luò)(CNN),其過程包括文本掃描、提取特征和篩選特征。傳統(tǒng)的特征提取方法是機(jī)器學(xué)習(xí),但是該方法不能很好地結(jié)合編程題目的結(jié)構(gòu)特征,而且對(duì)文本的深層語義理解不足。目前,CNN 網(wǎng)絡(luò)在自然語言理解任務(wù)中已經(jīng)非常成熟[16]。提取特征過程如圖2所示,將每個(gè)單詞向量化后,通過過濾器對(duì)編程題目進(jìn)行掃描,固定設(shè)置每個(gè)過濾器中有n個(gè)單詞。在過濾時(shí),通過設(shè)計(jì)卷積層完成特征提取,在選擇局部特征時(shí)采用Relu 激活函數(shù)與最大池化方式,最后形成一個(gè)固定長(zhǎng)度的全局特征向量,完成對(duì)編程題目的特征提取過程。

圖2 特征提取結(jié)構(gòu)Fig.2 Structure of feature extraction

2.4 全句解碼

全句解碼是從模型處理過的眾多向量化數(shù)據(jù)中提取最為可靠的數(shù)據(jù)的過程。本文使用條件隨機(jī)場(chǎng)(CRF)[17]實(shí)現(xiàn)解碼,其過程包括單詞標(biāo)簽與語義特征拼接、計(jì)算權(quán)重得分與搜索最優(yōu)路徑。CRF 是用來從所有向量化數(shù)據(jù)中選擇符合要求條件數(shù)據(jù)的概率性模型。通過充分考慮所標(biāo)注單詞詞性間的線性關(guān)系,將全局最優(yōu)序列輸出,實(shí)現(xiàn)編程題目的解碼過程。相比于其他解碼模型,CRF 不再單獨(dú)識(shí)別每個(gè)標(biāo)簽,而是通過局部特征的線性加權(quán)組合,使用指數(shù)模型表示標(biāo)簽序列的聯(lián)合概率完成聯(lián)合建模解碼標(biāo)簽序列。在對(duì)編程題目向量化數(shù)據(jù)解碼的過程中,給定文本序列X={X1,X2,…,Xn},其中n表示字符序號(hào),Xi是第i個(gè)單詞的向量。通過BiLSTM 詞性標(biāo)注與CNN 特征提取后,得到預(yù)測(cè)標(biāo)簽序列y={y1,y2,…,yn},Y(u)表示x的所有可能預(yù)測(cè)標(biāo)簽序列的集合。其預(yù)測(cè)標(biāo)簽序列集Y(x)與給定文本序列x之間的條件概率見公式(1),其中W、b分別是權(quán)值向量與偏移量。

CRF 的訓(xùn)練過程使用最大條件似然估計(jì)為函數(shù)代價(jià),公式為

在預(yù)測(cè)過程中,為了輸出條件概率最大的序列,調(diào)節(jié)參數(shù)(W,b) 使得L(W,b) 最大化。因此,搜索具有最大條件概率的標(biāo)簽序列y*,獲取全局最優(yōu)序列,完成對(duì)編程題目的解碼過程。公式為

2.5 模型訓(xùn)練

本文針對(duì)BiLSTM+CNN+CRF 聯(lián)合模型的參數(shù)學(xué)習(xí)采用梯度下降算法(Adam)[18]。在模型訓(xùn)練過程中,選取矩陣形式的交叉熵?fù)p失函數(shù)來對(duì)比本文模型與編程題目數(shù)據(jù)集的擬合效果,公式為

模型訓(xùn)練前需要進(jìn)行初始化操作,主要包括各部分模型參數(shù)的定義、聯(lián)合模型中間參數(shù)的定義、優(yōu)化方法定義以及損失函數(shù)定義等,由于每道編程題目文本之間無關(guān)聯(lián),本文使用單句訓(xùn)練的方法,訓(xùn)練步驟(1)梯度值與隱藏層參數(shù)的初始化:在模型訓(xùn)練之前,將梯度值置為零,并對(duì)隱藏層參數(shù)使用隨機(jī)初始化方式賦值;(2)預(yù)測(cè)編程題目中的算法:通過使用自定義規(guī)則,為部分編程題目標(biāo)注其中可能包含的算法與知識(shí)點(diǎn);(3)誤差的計(jì)算與反向傳播:使用交叉熵?fù)p失函數(shù)計(jì)算出預(yù)測(cè)值與真實(shí)值間的誤差,再將誤差反向傳遞到聯(lián)合模型中的每一層中,完成梯度的更新;(4)計(jì)算模型下一次訓(xùn)練的梯度值:使用優(yōu)化器更新聯(lián)合神經(jīng)網(wǎng)絡(luò)模型中的權(quán)重值,使梯度值更新至每一個(gè)神經(jīng)網(wǎng)絡(luò)權(quán)重矩陣。

3 實(shí)驗(yàn)設(shè)計(jì)及結(jié)果分析

3.1 數(shù)據(jù)集

為驗(yàn)證本方法的有效性,設(shè)計(jì)BiLSTM+CNN+CRF 模型,在預(yù)處理后的英文編程題目數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),通過算法優(yōu)化、模型性能等指標(biāo)來評(píng)估。由于目前還沒有公認(rèn)度較高的編程題目語料,本文從OJ(online judge)、PTA(https://pintia.cn/)等平臺(tái)爬取大約10 000 道編程題目為初始數(shù)據(jù),經(jīng)過去除停用詞、空格、空行、無效數(shù)據(jù)等預(yù)處理操作,得到符合要求編程題目8 000 余條數(shù)據(jù)。其中,訓(xùn)練集約7 000 條,測(cè)試集約1 000 條。該數(shù)據(jù)集所包含10 種不同的算法和100 種不同的知識(shí)點(diǎn)內(nèi)容,不同算法所含數(shù)據(jù)量見表2,由于知識(shí)點(diǎn)內(nèi)容較多,不再列出對(duì)應(yīng)表格。

表2 算法語料規(guī)模Tab.2 Algorithmic corpus

3.2 評(píng)價(jià)指標(biāo)

實(shí)驗(yàn)結(jié)果使用自然語言處理技術(shù)中常用的評(píng)價(jià)指標(biāo),即準(zhǔn)確率(P)、召回率(R)和F1 測(cè)度值。

3.3 實(shí)驗(yàn)結(jié)果與分析

為獲取更好的模型參數(shù),從訓(xùn)練集中抽取10% 的數(shù)據(jù)作為驗(yàn)證集。當(dāng)模型在驗(yàn)證集上測(cè)試獲得的準(zhǔn)確率最大化時(shí),該參數(shù)則為最優(yōu)參數(shù)。將模型參數(shù)修改為最優(yōu)參數(shù)后,再次使用訓(xùn)練集訓(xùn)練模型,從測(cè)試集上預(yù)測(cè)(關(guān)鍵信息)算法與知識(shí)點(diǎn)的準(zhǔn)確率、召回率和F1 值,重復(fù)訓(xùn)練10 次后,獲得三個(gè)評(píng)估指標(biāo)的均值。之后再設(shè)計(jì)LSTM 模型、BiLSTM 模型、BiLSTM+CRF 模型、BiLSTM+CNN 模型與本文模型進(jìn)行對(duì)比,結(jié)果見表3。

表3 各模型實(shí)驗(yàn)結(jié)果Tab.3 Experimental results of different mode %

(1)獨(dú)立模型實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)②比實(shí)驗(yàn)①的預(yù)測(cè)結(jié)果在精確率上有大幅度提升。在分析LSTM 模型中的錯(cuò)誤序列后發(fā)現(xiàn),LSTM 識(shí)別錯(cuò)誤的主要原因在于識(shí)別信息的部分丟失。其主要原因在于LSTM雖然解決了“長(zhǎng)依賴”問題,但是僅實(shí)現(xiàn)從前向后的掃描,無法編碼從后向前的信息,導(dǎo)致部分關(guān)鍵信息無法與前面的詞匹配,而BiLSTM 彌補(bǔ)了這一缺陷,其所帶有的雙向機(jī)制可以充分學(xué)習(xí)文本的前后信息,保證信息的完整性。

(2)其他聯(lián)合模型實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)③相比于實(shí)驗(yàn)②在三項(xiàng)指標(biāo)上有小幅提高。原因在于CRF 充分利用單詞之間的關(guān)系,輸出全局最優(yōu)序列,BiLSTM+CRF 模型先獲取單詞間詞性關(guān)系,完成詞性標(biāo)注后利用CRF 得到預(yù)測(cè)序列,挖掘文本語義信息,得到更精確結(jié)果。在實(shí)驗(yàn)②中,分析預(yù)測(cè)錯(cuò)誤的結(jié)果后發(fā)現(xiàn),BiLSTM 解碼過程是將每一個(gè)序列單獨(dú)計(jì)算,忽略了單詞之間的關(guān)系,而CRF 模型則充分考慮相鄰標(biāo)簽之間的關(guān)系,這保證該模型能夠更為準(zhǔn)確地識(shí)別關(guān)鍵信息。與BiLSTM+CRF 相對(duì)比,BiLSTM+CNN 模型在最終結(jié)果的獲取上有小部分提升。這是因?yàn)锽iLSTM+CRF 模型中,通過人工的方法提取特征,而人工提取特征的過程耗時(shí)耗力且含有較高的主觀性,因此,特征提取結(jié)果不能對(duì)機(jī)器學(xué)習(xí)的過程提供較好的價(jià)值,導(dǎo)致對(duì)題目理解的準(zhǔn)確性較低,而BiLSTM+CNN 模型使用CNN 網(wǎng)絡(luò)提取特征,對(duì)于相對(duì)重要的信息層層遞進(jìn),更高效獲取特征信息。本文提出的模型與BiLSTM+CRF、BiLSTM+CNN 相比在三項(xiàng)指標(biāo)上有大幅度提高,其結(jié)果表明CNN 能有效抽取文本的局部特征,CRF 能充分考慮相鄰標(biāo)簽間關(guān)系進(jìn)行解碼,提升模型的識(shí)別效果。

通過將BiLSTM+CNN+CRF 聯(lián)合模型與上述實(shí)驗(yàn)對(duì)比,結(jié)果顯示編程題目理解任務(wù)的準(zhǔn)確率、召回率、F1 值相比其他實(shí)驗(yàn)取得較好的結(jié)果。說明本文聯(lián)合模型很好地融合了BiLSTM 模型、CNN 模型和CRF 模型各自的優(yōu)勢(shì),在編程題目理解任務(wù)中取得很好的效果。

3.4 優(yōu)化算法對(duì)比分析

由于聯(lián)合模型存在規(guī)模大、結(jié)構(gòu)復(fù)雜、數(shù)據(jù)形式較多等問題,在完成題目理解后,通過分析聯(lián)合模型特點(diǎn)以及數(shù)據(jù)形式對(duì)聯(lián)合模型進(jìn)行優(yōu)化,模型優(yōu)化的主要工作在于模型內(nèi)部參數(shù)的界定。在對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練并產(chǎn)生結(jié)果時(shí),模型內(nèi)容的參數(shù)有著至關(guān)重要的作用。如用來計(jì)算測(cè)試集中目標(biāo)值的真實(shí)值與預(yù)測(cè)值之間的偏差程度、對(duì)部分?jǐn)?shù)據(jù)所賦予的權(quán)重值等,這些參數(shù)決定了輸出結(jié)果的準(zhǔn)確性,由這些參數(shù)構(gòu)造出的函數(shù)為損失函數(shù)。因此,使用各種優(yōu)化策略來更新計(jì)算模型和影響模型輸出的參數(shù)、計(jì)算出損失函數(shù)的最優(yōu)值必不可少的。

本文通過前期調(diào)研,分別使用隨機(jī)梯度下降算法(SDG)、動(dòng)量、Adagrad 方法、Adadelta 方法、RMSprop方法、Adamax 方法、Adam 方法對(duì)聯(lián)合模型進(jìn)行優(yōu)化對(duì)比,結(jié)果見表4。

表4 優(yōu)化算法結(jié)果對(duì)比Tab.4 Comparison of optimization algorithm results %

根據(jù)上述實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),在聯(lián)合模型中,使用Adam 算法可以取得準(zhǔn)確率最優(yōu)結(jié)果。對(duì)其結(jié)果分析,SDG 算法在每次執(zhí)行時(shí)對(duì)每個(gè)訓(xùn)練樣本都進(jìn)行一次更新,但是對(duì)偏差程度更新時(shí),頻繁更新將導(dǎo)致?lián)p失函數(shù)波動(dòng)較大,無法穩(wěn)定收斂;Momentum 方法通過減弱無關(guān)方向的震蕩并優(yōu)化相關(guān)方法的訓(xùn)練解決了SDG 中無法收斂的問題,但Momentum 方法無法分辨訓(xùn)練過程達(dá)到最優(yōu)值的時(shí)刻;Adagrad 方法通過調(diào)整模型學(xué)習(xí)率參數(shù)來達(dá)到最優(yōu)解,它對(duì)稀疏數(shù)據(jù)大幅度更新、對(duì)稠密數(shù)據(jù)小幅度更新,因此,Adagrad 方法對(duì)稀疏數(shù)據(jù)有更好的效果;RMSprop 方法對(duì)梯度計(jì)算了微分平方加權(quán)平均數(shù)進(jìn)一步優(yōu)化了損失函數(shù)擺動(dòng)較大的問題。以上兩類優(yōu)化方法中,一類通過積累物理動(dòng)量使損失函數(shù)達(dá)到最優(yōu)值,另一類通過縮小收斂速度獲取最優(yōu)值,Adam結(jié)合了上述兩類優(yōu)化特點(diǎn),提出新的優(yōu)化方法;Adamax 方法是Adam 的變體,它提供了學(xué)習(xí)率的上限范圍,但是在本文中,Adamax 方法無法將上限范圍確定于合適的區(qū)域,使得損失函數(shù)的收斂程度并不樂觀。因此,使用Adam 方法在本文模型中將取得更好的結(jié)果。

3.5 實(shí)驗(yàn)結(jié)果差異分析

在提取的編程題目關(guān)鍵詞中,為了初學(xué)者能夠更好地掌握編程知識(shí),將編程題目關(guān)鍵信息分為知識(shí)點(diǎn)關(guān)鍵詞與算法關(guān)鍵詞。分析不同關(guān)鍵詞結(jié)果,見表5。提取不同信息的準(zhǔn)確率相差較大,使用本模型在提取編程題目中知識(shí)點(diǎn)信息的準(zhǔn)確率較高,而在提取編程題目中的算法信息時(shí)結(jié)果較低。導(dǎo)致這一結(jié)果的原因可以分為以下兩方面。

表5 提取不同信息結(jié)果對(duì)比Tab.5 Comparison of different information extraction results%

(1)提取關(guān)鍵信息不同 在提取編程題目中關(guān)鍵信息時(shí),知識(shí)點(diǎn)信息是基于編程題目文本的基礎(chǔ)上提取,所需提取內(nèi)容已包含于待處理的文本中,僅需要做進(jìn)一步的識(shí)別、提取即可。因此,最大概率提高詞性標(biāo)注的正確率,則可保證提取知識(shí)點(diǎn)關(guān)鍵詞的正確率,所以提取知識(shí)點(diǎn)信息的準(zhǔn)確率較高。算法信息的提取則基于模型訓(xùn)練過程,通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)編程題目文本,這不僅要求實(shí)驗(yàn)?zāi)P偷倪m應(yīng)性,而且需要大量的訓(xùn)練集對(duì)模型訓(xùn)練。從編程題目文本中抽象出解題過程所需要的算法,這一過程是在文本的基礎(chǔ)上依賴于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,對(duì)模型有較高的要求,因此在本文訓(xùn)練集較少的情況下對(duì)于抽象性較高的編程題目無法較準(zhǔn)確提取算法信息。

(2)數(shù)據(jù)集性質(zhì)不同 與其他模型相比較,本文模型提取知識(shí)點(diǎn)信息的準(zhǔn)確率較高(表5)。究其原因,其他模型處理自然語言與本文所處理的編程題目數(shù)據(jù)集有本質(zhì)的不同,本文針對(duì)學(xué)生編程題目數(shù)據(jù)特點(diǎn),提出聯(lián)合模型對(duì)文本進(jìn)行理解,學(xué)生編程題目數(shù)據(jù)特點(diǎn)見表6。

表6 不同語料特點(diǎn)Tab.6 Characteristics of different corpus

3.6 題目難度與題目理解準(zhǔn)確率相關(guān)性分析

通過本文實(shí)驗(yàn)可以實(shí)現(xiàn)對(duì)學(xué)生編程題目的理解,獲取求解編程問題的關(guān)鍵信息,但編程題目間存在著不同難度級(jí)別的劃分,為了界定本文實(shí)驗(yàn)?zāi)P退褂玫姆秶?,進(jìn)一步分析不同難度的編程題目與題目理解準(zhǔn)確率的相關(guān)性。在數(shù)據(jù)獲取階段,提取了編程題目的難度級(jí)別,將該題目與級(jí)別綁定后進(jìn)行實(shí)驗(yàn)。

通過分析實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),編程題目理解的準(zhǔn)確率不會(huì)隨著題目難度的變化呈單一變化。究其原因,題目難度的級(jí)別劃分不僅考慮了題目描述的抽象性,而且綜合考慮了知識(shí)點(diǎn)、算法與實(shí)際題目情境的結(jié)合應(yīng)用,1 級(jí)編程題目可能通過生活舉例描述算法過程,但這對(duì)編程題目的理解并不友好,因此對(duì)于此類編程題目理解準(zhǔn)確率較低,而1 級(jí)編程題目中部分題目描述簡(jiǎn)單,將取得較高的準(zhǔn)確率。對(duì)于較難的編程題目,如4、5 級(jí)類型,它們不僅描述更抽象,而且使用不同算法、知識(shí)點(diǎn)的綜合應(yīng)用較強(qiáng),本文模型對(duì)其理解能力較弱。本實(shí)驗(yàn)?zāi)P透m用于2、3 級(jí)編程題目,由于此類題目在于考查學(xué)生對(duì)算法、知識(shí)點(diǎn)的應(yīng)用,在題目表述方面抽象程度較弱,對(duì)理解過程友好。

4 結(jié)語

本文借鑒自然語言處理領(lǐng)域的深度神經(jīng)網(wǎng)絡(luò)模型,提出基于BiLSTM+CNN+CRF 的聯(lián)合模型用于學(xué)生編程題目的理解。其中,BiLSTM 用于將編程題目文本基于已有記憶生成帶有學(xué)習(xí)信息的向量;同時(shí),使用CNN 中的卷積核和最大池化操作提取特征,組成全局特征來表示預(yù)測(cè)關(guān)鍵信息序列標(biāo)簽;最后將攜帶學(xué)習(xí)信息的向量與預(yù)測(cè)序列標(biāo)簽拼接輸入到CRF 層搜索全局最優(yōu)路徑解碼。該方法聚焦于文本語義建模,通過深度學(xué)習(xí)提取特征,省去大量繁瑣的人工特征過程,充分分析編程題目語義,消除文本的結(jié)構(gòu)化形式;使用雙向結(jié)構(gòu)進(jìn)行詞性標(biāo)注,將編程題目文本前后關(guān)聯(lián),縮小文本的抽象性。最后在學(xué)生編程題目數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),測(cè)試集中達(dá)到91.9% 的準(zhǔn)確率、87.43% 的召回率與89.60% 的F1 值,三項(xiàng)指標(biāo)值相比于其他自然語言處理模型都有一定的提高。實(shí)驗(yàn)結(jié)果表明對(duì)編程題目理解時(shí),本文方法比其他聯(lián)合模型、單一模型具有更好的效果。

基于以上結(jié)果,研究不足和下一步工作如下:在數(shù)據(jù)集方面,由于目前本文的數(shù)據(jù)集仍然較少,這導(dǎo)致對(duì)模型的訓(xùn)練準(zhǔn)確度不高,并且數(shù)據(jù)集僅在英文編程題目上做出處理,數(shù)據(jù)集形式單一;在模型效果方面,本文的特征提取過程較簡(jiǎn)單,所提特征精確度仍需提高。因此,未來工作中將繼續(xù)擴(kuò)充數(shù)據(jù)集,將訓(xùn)練模型達(dá)到更高的精確度;并且考慮將Attention 機(jī)制加入當(dāng)前聯(lián)合模型的特征提取部分中,再進(jìn)一步調(diào)整參數(shù)、優(yōu)化,完成模型契合,提高編程題目理解的準(zhǔn)確率。

猜你喜歡
編程題目知識(shí)點(diǎn)
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
一張圖知識(shí)點(diǎn)
一張圖知識(shí)點(diǎn)
第四頁 知識(shí)點(diǎn) 殲轟-7A
唐朝“高考”的詩(shī)歌題目
文苑(2020年7期)2020-08-12 09:36:22
關(guān)于題目的要求
本期練習(xí)類題目參考答案及提示
威海市| 大渡口区| 广平县| 长垣县| 磐安县| 安吉县| 崇义县| 榆林市| 铅山县| 兴宁市| 行唐县| 襄汾县| 五大连池市| 北安市| 绵竹市| 霸州市| 句容市| 东海县| 长兴县| 西丰县| 巴林右旗| 岢岚县| 漾濞| 隆化县| 嫩江县| 中西区| 罗定市| 双城市| 温泉县| 兴业县| 长泰县| 平陆县| 布拖县| 赞皇县| 广汉市| 锡林郭勒盟| 阿克陶县| 法库县| 黄山市| 三明市| 平和县|