劉全超 山西農業大學信息學院
面向C語言題庫的相似試題辨別方法研究
劉全超 山西農業大學信息學院
按照傳統的教育模式,教師的教學方式主要是面對面教學,練習和考試,其一律采用手動出題,手工閱卷的方式,這種教學方式不僅效率低下,而且限制了教學的靈活度。近年來,隨著計算機技術的網路技術的高速發展,無紙化考試系統廣泛的運用于遠程教育系統中,這種運用主要是通過電子題庫實現的。在這種電子題庫中,手工錄入大量的試題,一次錄入就可以長期的使用,但是隨之試題越來越多,越來越復雜,出現了大量重復的試題,導致在錄入過程中,無法被篩選和去除,如何在一定的程度上有效的去除電子題庫中重復的或者相似的試題,這個節約資源,提高考試和試卷質量的一個十分重要的問題。本文根據這個問題,以C語言試題為研究對象,逐漸的以語句的相似度為核心的電子試題去解決這個問題。
C語言題庫 語句相似度 詞相似度
1.1 詞法標注研究
詞法標注研究是對中文內容處理,分析和理解的必要條件,詞法的優劣直接影響程序后面的處理的結果,通過詞法標注可以得到語句中的單個詞匯的詞性,和詞義信息。目前這種技術已經非常成熟,在許多詞性標注程序可以使用,詞法分析過程中采用的現有分詞磁性的標注接口。這次分詞詞性標注接口用了題庫中抽取的一系列C語言試題進行測試,這個測試結果能夠對很多的詞切分的很好,能夠滿足程序的后面一系列的操作要求。
1.2 C語言詞匯提取
詞法標注的詞表不只是單單針對C語言,所以在這種結果下,對于一些專業詞匯的切分效果不是很讓人滿意,像數組這種C語言中經常出現的詞匯被切分成了多個詞匯,而這樣的詞匯是一定詞匯上不可分割的,如果強行分割,會給后面的程序操作帶來各種各樣的麻煩,所以要單獨處理C語言詞匯。為了對詞法標注后的試題做出進一步的處理,識別其中的專業詞匯,必須建立一個C語言的專業詞匯表,這個詞匯表必須包含這個語言的各個方面。然后,根據后續處理,需要將這個專業的領域詞匯分為兩類,第一類為標志性的專有名詞,第二類為一般的普通的詞匯。當第一類專有詞匯出現在試題中時,因為是專有名詞,C語言試題對這種情況的處理方式就會出現有所不同,因此,這樣兩個的試題相似的可能性就會比較大,那么,在計算這種試題時,就要賦予這種試題最高的權重。第二類詞匯一般涉及各種程序操作的相關詞匯,對于這種詞匯,就賦予一個較高的權重。
相似度模型是在一定的運算程序下,找出合適的算法計算試題相似度,通過相似度來判斷是否出現了重復,這個模型是研究相似度的核心問題。語言相似度是一個非常抽象的概念,因為他脫離了實際的具體的應用背景談論相似度,導致在一定的程度上很難得到一個統一的定義。然而在一定的實際生活中,在各種各樣的具體應用中,相似度的含義也有所不同。相似度模型對于不同的應用有不同的要求,雖然人們曾提出大量的相似度的設計方法,但是對與各個不同的領域最佳的,統一的計算方法并不存在。
3.1 布爾模型
布爾模型是一種基于集合論和布爾代數的一種簡單模型。因為集合的定義是非常直觀的,所以這種模型計算起來是非常簡單易懂,快速的。這種模型雖然十分簡單,比較容易實現,但是也有它的不足,它很粗糙的計算實體的相似度,導致結算結果和實際的要求會出現很大的偏差。
3.2 向量模型
向量模型是針對布爾模型中的一些缺點和不足,相應提出的一個適合部分匹配的框架,在布爾模型中,只有相關和不相關兩種模型但是在向量模型中,不同的詞匯有一個相似度值,在這種模式中,要首先把試題表示為相應的向量。
布爾模型是用來計算試題的相似度時雖然速度快,效率高,但是計算過程粗糙,計算結果不準確,一些意思相似的詞,依然意思相似,但是寫法還是有所不同,布爾模型則在計算時自動忽略了這個差異性,不能完全的反應試題的相似程度,因此不適合在這種專業的領域上使用。TF*IDF是一種運用在信息檢索常用的方法,這種方法只是一種統計的方法,只有在句子包含的詞有很多時,相似的詞有很多時,這種方法才能體現它的價值。但是在計算C語言試題的相似度時,面對的是單個的句子,句子包含的詞的數量不能夠體現這種方法的效果。基于詞的相似度模型主要是第一時間要計算實體之間的詞匯的相似度,雖然這考慮了語句意思,但是卻忽略了句法結構的信息,并沒有從整個句子上考慮句子的相似度。
結語:這種相似模型實現了對C語言試題的處理和數學模型的建立。第一,對試題進行了詞法標注,在這個基礎上,對語言詞匯進行了提取,經過預處理的試題為一系列相似度的模型的建立提供了非常重要的基礎。