李瑩 楊春哲
摘要:在教育部大力倡導教育信息化發展的今天,自動閱卷技術的研究逐漸成為熱點,其已經成為教育信息化平臺搭建中不可或缺的一部分。文章針對簡答題自動閱卷過程中涉及的分句與分詞算法、關鍵詞提取算法、相似度計算算法進行了分析。
關鍵詞:自動閱卷系統;簡答題;分句算法;分詞算法;關鍵詞提取算法;VBA 文獻標識碼:A
中圖分類號:TP316 文章編號:1009-2374(2015)35-0020-02 DOI:10.13535/j.cnki.11-4406/n.2015.35.010
1 分句與分詞的算法分析
分句算法與分詞算法是本系統針對簡答題進行自動閱卷采用的兩種基本算法,對簡答題進行自動閱卷的基本流程是:首先對學生答案按照標點符號進行分句(標點主要為逗號、句號、分號、感嘆號等),接著對分得的子句進行分詞,然后將分得的詞存儲為序列,最后對詞序列進行關鍵詞抽取與標準答案進行比較。如果將學生答案僅僅進行關鍵詞比較就給出分數,很容易產生誤判。所以本系統采用相似度計算算法,盡量將計算機自動閱卷結果接近教師人工閱卷結果,使考試結果更加公平。
1.1 分句算法分析
所謂的分句是指將學生答案的一整段話以中文中特定的句末標點符號(如逗號、句號、分號、感嘆號等)為分割將其分成若干個子句,為了便于分析、提高閱卷速度,我們以學生答案中的任意標點符號為標志,將學生答案分割成若干子句。本閱卷系統對答案進行分句處理的過程是:首先刪除答案前后的回車換行符,然后對答案進行掃描,按照分句符號將答案分割成若干子句,把分割后的子句保存到子句數組中,經過這一次掃描操作,將答案中的回車換行符去掉了。前面分析了分句處理的過程,下面就其算法進行研究。
1.1.1 刪除學生答案中的回車換行符。自動閱卷系統所批閱的卷子基本上都是采用上機考試形式,這就不可避免地使學生在答題過程中不經意地輸入回車換行符,而它對評分沒有任何意義。但是在計算機的存儲器中它是以字符的形式存儲的,在答案中分別占有一個字符的位置,如果不將其刪除,勢必會影響分詞處理。所以在考慮分句算法時,首先要去除學生答案中的回車換行符。算法如下:(1)取原始答案字符串key最左端的一個字符保存到str中,轉(2);(2)判定str是否為換行符或者回車符,如果是,則把key中最左端一個字符去掉,轉(1);如果不是,則說明答案前面已經沒有回車換行符了,轉(3);(3)取原始答案字符串key最右端一個字符保存到str中,判定str是否為回車符或換行符,如果是,則把key中最右端一個字符去掉,轉(3),若不是,則說明答案后面已經沒有回車換行符,將key作為返回值,掃描結束。答案存放在key字符串中。
1.1.2 分句算法。刪除學生答案中的回車換行符后,依據學生答案段中的分句標點符號進行分句處理,遇到句號、分號、逗號等標點符號將其分為一句,保存在答案的子句數組中。算法如下:(1)判斷key是否為空,如果是,結束,否則轉(2);(2)從key左側取一個字符放入str中,判定str是否是分句標點符號或者回車符,如果是,轉(3),如果不是,轉(5);(3)如果str是分句標點符號,則子句數組下標加1,去除key左側的一個字符,轉(1),如果str是回車符,轉(4);(4)判定str下一個字符是否為回車符或者換行符,如果是,去除key左側一個字符,取key下一字符放入str中,轉(4),否則答案子句數組下標加1,去除str左側一個字符,轉(1);(5)將str并入到子句數組當前位置,去除key左側一字符,轉(1)。
上述算法中,key為待處理的字符串,str為字符類型變量。
1.2 分詞算法分析
中文分詞較英文分詞要復雜很多,因為英文是以詞為單位組成一句話,詞與詞之間用空格分割,例如:I am a girl.很容易能夠憑借空格就提取出詞。漢語則不然,漢語是由字構成詞,句子中所有的字連起來才能描述一個意思,但是計算機無法明白什么是詞,把中文的漢字序列切分成有意義的詞,就是中文分詞。漢語的詞與詞之間沒有標記,對于詞的界定往往不清楚,人是憑借對自然語言知識的理解來劃分詞,而計算機的分詞依據有三大類:基于字詞匹配的分詞方法、基于人工智能的分詞方法和基于串頻統計的分詞方法。本文主要采用基于字詞匹配的分詞方法。算法描述:(1)以詞匯表中最長詞中所含有的字數個數作為最大詞長(將最大詞長定義為L);(2)將待分詞的句子從第一個字起向后取L個字;(3)在詞匯表中遍歷是否有上一步提取的L個字夠成的詞,若有,保留分解出獨立的詞,轉(5),若沒有,轉(4);(4)將最大詞長L=L-1,從L中減掉最右邊一個字,轉(3)(直至L=1);(5)從句子中刪除該詞,判定句子中是否有字,若有,轉(2),否則結束。
2 關鍵詞提取算法分析
經過分詞階段,將學生答案和標準答案分成各個語句塊,接下來就應用關鍵詞提取算法,將學生答案中的關鍵詞提取出來,這里指的關鍵詞是詞庫中的實詞,諸如“的、地、得、把、可能、好像”等一些對句子表達沒有實際意義的詞,我們不把它們作為得分點??梢院雎缘暨@些詞匯,只提取出對句子意思表述至關重要的詞匯。具體提取時,需要判定它是否是有實際意義的詞,方法是分別比對學生答案和標準答案各語句塊中的各個單詞,如果是,則提取出來,如果不是,則不提取。算法設計:
對學生答案進行分詞后得到一個由學生答案組成的詞的序列,對其進行關鍵詞提取,關鍵詞提取時只提取對句子意思表述至關重要的實詞。
具體算法如下:(1)順序搜索語句序列中的各詞,如果到末尾,則結束,否則轉(2);(2)判定該詞是否為實詞,如果是,轉(3),否則轉(1);(3)將關鍵詞提取出來,轉(1)。
3 相似度計算算法分析
3.1 單向貼近度算法
在簡答題的自動閱卷過程中,通常把學生答案和標準答案表示成若干個詞的形式來表示學生答案和標準答案的貼近度問題。
把學生答案和標準答案切分成若干個有意義的詞,并把這些詞構成的有序集合稱為一個模糊集,U={Ul,U2,U3,…,Un}稱為論域,F(U)代表模糊冪集,是指論域U上的所有模糊子集構成的集合。
這里用單向貼近度來衡量兩模糊集的接近程度。
定義1:設U={Ul,U2,U3,…,Un},A,B∈F(U)。若映射d:F(U)×F(U)→[0,1];滿足條件:
(1)d(A,A)=1。
(2)d(B,B)=1。
(3)若A∈B∈C或C∈B∈A,則d(A,B)≥d(A,C),那么稱d(A,B)為A貼近于B的單向貼近度。
定義:設A、B是由詞構成的詞串,A中包含n個詞,d(A,B)表示A貼近于B的單向貼近度,按照從左到右的順序,集合A中的每個詞在集合B中出現的有效次數之和記為m,則d(A,B)=m/n。
(1)
式中:S為該題的最終成績;S0為該題的分值;P代表單項貼近度所占的分值比例;(1-P)代表關鍵字匹配所占的分值比例;d(A,B)代表集合A貼近于B的單項貼近度;δ(A,B)代表關鍵詞匹配程度。
根據以上定義計算學生答案的最終得分,只依據詞的匹配程度,與詞知識庫和語義分析毫無關系,但是使用這種方法計算的學生最終得分精度不會很高。
3.2 基于詞語表層含義的相似度計算
所謂的詞語表層含義是指根據學生答案和標準答案中相同詞語個數而計算的相似度。假設有句子A和B,分別代表學生答案和標準答案,那么句子A和B的相似度用以下公式表示:
(2)
式中:WordSame(A,B)表示學生答案A和標準答案B的相似度;SameNum(A,B)表示學生答案A和標準答案B中相同詞語的數量;Num(A)表示學生答案A中包含詞的個數;Num(B)表示標準答案B中包含詞的個數。
這種算法也是基于匹配的方法,精度不高。
3.3 基于多層次結構的句子相似度計算
通常一個完整的句子是由組成句子的詞、詞之間的結構、語義、語態、語境等信息組成。漢語句子成分是非常復雜的,所以要想真正地實現計算機代替人工閱卷是非常復雜的。本文力求將構成句子的各個成分完整地表達出來,分別分析了詞匯信息,綜合研究了單向貼近度、詞語表層含義的相似度算法,以便更加正確地進行主觀題的自動閱卷。
我們研究的目標是將分詞技術、關鍵詞匹配技術、詞語結構信息組合起來,取長補短,互為補充,表述一個完整的句子,依據以上技術計算學生答案和標準答案之間的相似度,獲得較高的準確率。
綜合以上分析將式(1)和式(2)合起來計算語句相似度。基于以上分析,幾乎不能出現0分的情況,但是實際閱卷過程中是有0分的,所以我們設定一個閾值,當句子的匹配結果小于設定的閾值,就將得分算為0分。
4 結語
要設計實現一個針對簡答題的自動閱卷系統,僅基于分句與分詞算法、關鍵詞提取算法、相似度計算算法進行簡答題的自動閱卷還是遠遠不夠的,因為漢語較英語而言擁有更加復雜的語法結構,希望通過后續針對中文的語法和語義等方面的研究,不斷完善和改進現有的自動閱卷系統,促進教育信息化平臺的建設。
參考文獻
[1] 金春霞.多層次結構句子相似計算的應用研究[J].計算機應用與軟件,2009,(10).
[2] 吳宏良.Office文檔對象分析與自動閱卷系統研究
[D].華東師范大學,2009.
作者簡介:李瑩(1982-),女,吉林吉林人,吉林醫藥學院計算機教研室講師,碩士,研究方向:軟件開發。
(責任編輯:周 瓊)