楊永瑞 溫志萍 孫雅 吳泳
摘 要: 自動閱卷算法一直以來都是各個在線考試系統的重點和難點。這里設計的自動閱卷算法通過解析學生答案中關鍵字,并計算這些關鍵字的排布與答案關鍵字的排布的相似度,給出一個相對合理的分值。經過反復測試調優,該算法提供的分值已經具有相當好的可參考性。
關鍵詞: 自動閱卷; 關鍵字; 相似度; 可參考性
中圖分類號:TP311.52 文獻標志碼:A 文章編號:1006-8228(2015)06-45-03
Abstract: Automatic scoring algorithm is always the emphases and difficulties of various online examination systems. The automatic scoring algorithm we designed gives a reasonable score through the keywords analysis of student answer, the similarity calculation between the arrangement of these keywords and the arrangement of answer keywords. After repeated testing and optimizing, the scores provided by the algorithm have been a very good reference.
Key words: automatic marking; key words analysis; similarity; reference
0 引言
實現自動閱卷需要解決以下幾個問題。
首先,計算機應該能夠像人一樣讀懂參考答案和學生答案,這需要計算機具有一定的常識和領域知識。而計算機并沒有主動掌握這些常識和領域知識的能力,這需要人類把這些知識錄入到計算機中去。而知識的錄入又涉及到知識的表示問題。
其次,人在閱讀語句的時候,由于其自身所擁有的背景知識,能夠知道語句中哪些是詞哪些不是詞,而計算機并沒有自動識別句子中的詞的功能,這就需要人工構建相應的詞庫,將有可能用到的單詞錄入到計算機中。這樣,計算機在處理自然語言語句的時候,可以將語句中若干個字符組成的字符串在詞典中進行查詢,如果詞典中有這個字符串,則表明它在自然語言中指的是一個詞,計算機就將其認為是一個詞。所以,計算機還應該具有識別句子中單詞的能力,也就是分詞的能力。
接著,人在閱卷主觀題的時候,給分的過程包括識別出答案語句中的各個成分的過程,也就是在一個語句中哪些成分是必須的,哪些成分是可有可無的。對于句子中必須的成分,把它提取出來作為該句的關鍵詞匯,對于那些可有可無的成分,則可以將其忽略不計。計算機若要具有這樣的能力,就需要具有對句子拆分分析的能力,能夠自動分析出句子中的重要成分。
最后,主觀題最終分值的確定依托于學生答案跟參考答案之間的相似程度,學生答案越接近參考答案,得分越高;反之,則越低。而且人在閱卷的時候可以容許學生答案具有一定的隨意性,所以學生答案不一定非要跟參考答案完全一致,只要意義相近或相同,表達上沒有錯誤,也可以得到高分。這就需要計算機能夠處理同義近義現象,當學生答案中的文字跟參考答案不一致時,計算機可以查看學生答案中的文字跟參考答案是否相似或相近,然后給出相應的分數。
1 自動閱卷算法的思想
本文的主觀題自動閱卷的思想就是模擬上述教師閱卷主觀題的過程。首先我們對考生答案進行分句分詞處理,然后對學生答案進行語句分析,識別出答案中重要的成分,之后,將其進行關鍵詞提取,將其中的實詞、動詞抽取出來與標準答案進行相似度計算,按照各標準答案關鍵字在整個試題得分中所占的比例,評定其小分,最后累加答案中各關鍵字的得分,并適當考慮考生答題時的文字組織情況,得到本試題的最終成績。
2 自動閱卷算法的實現流程
主觀題自動閱卷系統的具體流程為:先對學生答案進行分句處理,將由段落組成的答案分成各個子句;接著對答案的各個子句進行分詞處理,將各個子句變成詞的序列并對分詞標記詞性;再對各個子句進行語句分析,分析出語義樹。然后根據一定的抽取規則抽取出各個語義樹中的關鍵詞匯;再按照模糊數學中貼近度思想把學生答案和參考答案進行嚴格貼近度計算,并輔助以一定的評分規則計算出整個子句的相似程度,最后根據各項分值得出學生的得分。
2.1 分句處理
分句處理是把答案以某些特定標點符號為分隔標志分成若干子句。在這里,根據關于語句、句群和篇章的定義,除了把通常所說的句號、感嘆號、問號等傳統句末標點符號作為子句分隔符號外,還把逗號、分號等也作為子句分隔符。人們在閱讀某個自然語言語句的時候,由于自身擁有的一些知識或常識,能夠知道語句中哪些是詞哪些不是詞,但計算機卻并不具有像人類一樣的知識或常識。當計算機面對一段文本或一句文本時,并不知道文本中哪些是詞,哪些不是詞。且漢語不像歐式語言,詞與詞之間有空格隔開,不需要計算機進行詞的識別。所以對于漢語,在對語句進行成分分析之前,先要讓計算機知道輸入的文本中有哪些詞匯,因而需要對中文文本進行分詞處理。分詞處理是后續句法分析以及關鍵詞抽取階段的前期基礎工作。
2.2 分詞處理
分詞階段也可以叫做詞法分析階段,分詞標準的問題實際上是漢語詞與語素、詞與詞組的界定問題。
假定平均每句話有10個漢語詞,那么10句話中會錯切2個詞,含有切分錯誤的2句就不可能被正確處理。因此僅僅由于分詞階段的準確度不夠,語言理解的準確率就會減少20%。可見選擇合適的分詞算法對句法分析相當重要。
2.3 句法分析
句法分析就是應用句法規則和其他知識,將輸入句子中的詞之間的線性次序變換成語法樹那樣的數據結構。句法分析一般都依賴于某種語法體系。語法體系的形式豐富多彩,各種語法形式都有各自的特點,不同的語法體系產生的句法結構形式不盡相同。這也需要我們事先將語法規則存儲到文件中,讓系統讀取,然后用來分析語句。
2.4 相似度計算
基于字符串匹配的分詞算法是按照一定策略將待分析的漢字串與一個“充分大的”機器詞典中的詞條進行配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配。實際使用的分詞系統,都是把機械分詞作為一種初分手段,還需通過利用各種其他的語言信息來進一步提高切分的精度,力圖在分詞階段消除所有歧義準確率。
抽取完學生答案和參考答案的關鍵詞之后,要對學生答案和參考答案的相應關鍵詞集進行比較,依據相應的評分規則計算它們的相似程度,從而可以得出學生答案的正確程度,然后我們的評分規則是,根據各個關鍵字出現的頻率賦予權重,即出現頻率高的關鍵字權重高,這樣就可以將所有關鍵字賦予一個權值,然后對學生答案的關鍵詞分析結果進行分析計算,得出學生的最終得分。
3 自動閱卷算法的具體算法實現
一般參考答案和學生答案都以一段或幾段文本的方式呈現,每段包括若干語句。為方便后續語義塊識別以及關鍵詞的抽取,首先需要對參考答案和學生答案分別進行分句和分詞處理。
3.1 分句算法
分句算法設計,傳統意義上,一個完整的句子以句號、感嘆號、問號、省略號等句末標點符號作為該句結束的標志。但傳統意義上的一個句子往往包含著若干個語句,這些語句稱為“半句”,而這些半句往往以逗號、分號作為間隔;這些半句往往也表達了完整的語義信息。在本系統中,所有的可以作為分割符的內容都存放進了stop.txt中了。
本文對學生答案和參考答案進行分句處理的基本思路是,首先對答案進行分句預處理,去除答案前面和后面的空行;然后對經過預處理的答案進行分句處理,掃描整個答案,遇到分句標點符號就表示前一子句結束,后一子句開始,保存當前子句的內容到答案子句數組的相應元素中。在分句處理過程中,同時也去除了答案中間無用的回車換行。
⑴ 分句預處理算法
為簡化后續的分句處理,本文專門設計了分句預處理算法來實現對答案分句前的預處理,去除答案前面和后面無用的回車換行。在本系統中,上述分句預處理算法具體體現在IDFCal的getTermList方法中,它就是用于消除語句中的回車符和換行符,把去掉這些無用符號的字符串保存在數組中。
3.2 分詞算法
分詞算法設計,漢語自動分詞是自然語言處理過程的第一步。分詞體現了漢語與英語的顯著不同。英語文本是小字符集上的已分隔開的詞串,而漢語文本是大字符集上的連續字串。把字串分隔成詞串,就是自動分詞系統需要做的工作。下面描述本系統所采納的最大匹配算法。
⑴ 原子分詞
原子分詞,即找出所有的原子詞素,可以理解為單個字符。
⑵ 分詞調整
隨后,還要對初次分詞結果進行調整,主要是對時間、日期、數字等進行合并或拆分,找出所有可能的詞組并發現詞組間可能的關系,生成二叉圖表,每個節點表示相鄰兩個詞組的耦合關系。
3.3 成分分析
句子成分分析相關算法設計,句法分析的目標是分析合理的句法結構樹。句法分析的輸入是一個詞串(含詞性屬性),通過對句子成分分析,得到一個由學生答案生成的語法樹,之后就對該語法樹進行關鍵詞抽取。關鍵詞抽取時只抽取出對句子意義表達關系重要的詞匯,具體抽取時,可以判斷它是否實詞,若是,則抽取之,否則,不抽取。
3.4 相似度計算
依次遍歷語義樹中的各詞語,抽出該詞保留在數組中。開始在學生答案中查找是否有得分點,將標準答案關鍵字與學生答案相匹配,查看標準答案的關鍵字是漢字還是非漢字,是漢字則按照雙字節處理,非漢字則按照單字節處理,求出標準關鍵字在學生答案中所占的比例,按照比例劃分分值,這也就是本系統的評分規則。最后計算出學生答案與標準答案的相似度,得出學生答案的分值。
4 結束語
本文雖然在某種程度上實現了主觀題的自動閱卷系統,但由于自然語言中知識的博大精深以及本人能力有限,有許多地方都有不足之處,致使系統打分跟教師的實際打分還是存在很大的偏差。如何用更好的分詞方法來支持句法分析過程;怎樣讓知識庫具備可擴充性,把人工智能和機器學習引入到漢語句法分析中來提高分析的準確率和效率;如何對語法樹更好的進行關鍵詞提取,是否有更好的方法對學生答案和正確答案進行相似度計算等等,這些問題都有待進一步研究。
參考文獻:
[1] 金博,史彥軍,滕弘飛.基于語義理解的文本相似度算法[J].大連理工
大學學報,2005.45(2):291-297
[2] 況姍蕓.網絡課程中主觀題在線評閱系統的設計與實現[J].中國電化
教育,2004.3.
[3] Nghi Truong,Paul Roe. Static Analysis of Students' Java Programs[J].
Australian Computer Society,2004.
[4] 秦學勇.基于相似度計算的主觀題閱卷系統設計[J].安徽建筑工業學
院學報,2010.4.
[5] 唐朝霞.一種基于特征提取的簡答題閱卷算法[J].湖南工程學院學
報,2010.1.