專利名稱::試題自動生成系統(tǒng)及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及試題自動生成系統(tǒng)和方法,更具體地說,本發(fā)明涉及模型驅(qū)動的試題自動生成系統(tǒng)及方法。
背景技術(shù):
:測試題目對于提高教學(xué)質(zhì)量有多方面的作用,精心設(shè)計的測試題目不僅可以準(zhǔn)確評價被測人員的認知水平,同時也可幫助其開闊思路、完善知識結(jié)構(gòu)。如果測試題目因某種原因被暴露(如出現(xiàn)在一次考試中),則其價值將急劇下降,再次使用往往不能測試被測者的真實水平。因此,對于一個現(xiàn)實的考試系統(tǒng)來說,建設(shè)大規(guī)模的試題庫至關(guān)重要,這也是一項重要開銷。為了提高設(shè)計題目的效率,研究人員提出了多種自動生成試題的方法。中國已授權(quán)的專利CN1092370C公開了一種隨機試題庫的實現(xiàn)方法。該方法將將典型題目按課程科目分類存檔,每一科目設(shè)置多種題型,每種題型根據(jù)不同內(nèi)容設(shè)置多道題目,每道題設(shè)置對應(yīng)的題號,通過對各類題型進行隨機抽取并進行組合,即可形成一套隨機試題。然而,該專利只是通過隨機抽取方式形成試題,并沒有分析試題本身的結(jié)構(gòu)而重新組合新的試題,因此使用者在多次使用而熟悉許多試題后,其試題重復(fù)率開始增加,效率降低。另外,其試題庫所存儲的是各個試題本身,因此其數(shù)據(jù)存儲量隨試題數(shù)目的增加而增加,使得數(shù)據(jù)庫的使用效率降低。項目模型(ItemModel)是最具代表性的試題自動生成方法,已經(jīng)成功地應(yīng)用于語言領(lǐng)域的考試,如美國教育考試服務(wù)(EducationTestingService,ETS)舉辦的GRE考試。一個項目模型通常由3個部分構(gòu)成題干、參數(shù)、及參數(shù)的約束條件。通過隨機化項目模型的參數(shù)(隨機產(chǎn)生的參數(shù)必須滿足約束條件),一個模型可以生成大量的題目實例。利用項目模型生成試題不僅可以提高出題效率,還具有測試點更加明確、多種語言支持等許多優(yōu)點,不僅適合大規(guī)模的水平測試,同樣也適合于練習(xí)性的自我測試。中國已公開的專利申請CN1462941A公開了一種利用項目模型的試題生成系統(tǒng)和方法。在該方法中,將一般的中文試題(主詞)表達成由各個限定項和基詞來表示,其中基詞為單一個名詞,而各個限定項依照中文文法規(guī)則而按照特定順序來排列,其特點在于計算機題庫設(shè)計者只要歸納出一種特殊的試題主詞詞組結(jié)構(gòu),即可以隨機產(chǎn)生大量不同的試題,因此其計算機題庫的設(shè)計可以更有效地提供多變化的試題。然而,項目模型能夠測試的知識點很大程度上取決于表示參數(shù)約束條件的語言的表達能力,當(dāng)參數(shù)間的關(guān)系不能被項目模型的約束條件語言表示時,這種題目就不能被項目模型產(chǎn)生。例如將一個通信網(wǎng)絡(luò)拓樸圖和其某個節(jié)點最短路徑相關(guān)聯(lián)的題目,這樣的參數(shù)間關(guān)系無法使用簡單語言——如算術(shù)運算及數(shù)值大小關(guān)系——來描述,測試這個知識點的題目也就無法用項目模型產(chǎn)生。如果增強約束條件語言的表示能力,那么項目模型的制作難度會相應(yīng)地提高,直至接近編寫程序的難度,對于普通教育者來說制作這樣的項目模型過于困難。另一方面,如果在項目模型中添加和測試領(lǐng)域相關(guān)的專門函數(shù),那么模型解釋程序就需要不斷被更新以便處理新的領(lǐng)域知識和專用標(biāo)記符因此,必須設(shè)計一種更為合理的項目模型及其解釋程序結(jié)構(gòu),在表示復(fù)雜的參數(shù)約束條件的同時,既不增加模型的約束語言復(fù)雜性,也不需要反復(fù)地更新模型解釋程序。此外,將試題生成和特定的測試系統(tǒng)綁定,也不利于教育資源的共享和交流,因此有必要設(shè)計一套更為通用的接口提供試題相關(guān)的各項服務(wù)。
發(fā)明內(nèi)容為解決上述問題,本發(fā)明公布了一種基于模型的試題自動生成系統(tǒng)和方法,可以根據(jù)預(yù)定義的項目模型自動生成試題,利用模型參數(shù)來控制所生成的試題的差異;并通過網(wǎng)絡(luò)服務(wù)(WebService,下面簡稱WS)的形式^是供4妻口以4更由外部系統(tǒng)訪問。根據(jù)本發(fā)明的一個方面,提供了一種基于項目模型生成試題的系統(tǒng),該系統(tǒng)包括外部訪問4I"口,用于約定所述生成試題的系統(tǒng)的功能和訪問參數(shù),以便外部系統(tǒng)通過該接口訪問;服務(wù)組件,用于根據(jù)外部調(diào)用所傳遞的參數(shù)實現(xiàn)由所述外部訪問接口約定的功能;項目模型,用于存放模型文件,每個模型文件包括元數(shù)據(jù)描述和參數(shù)聲明;模型解析組件,用于解析所述項目模型中的模型文件,根據(jù)模型文件中的元數(shù)據(jù)描述和參數(shù)聲明生成試題;參數(shù)組件,用于生成用于所述項目模型中的模型文件的參數(shù),每個參數(shù)包括描述、生成值和生成干擾值;以及參數(shù)組件接口,用于約定所述參數(shù)組件的功能和訪問參數(shù),通過調(diào)用所述參數(shù)組件中的參數(shù)而將所調(diào)用的參數(shù)提供給所述模型解析組件。根據(jù)本發(fā)明的另一個方面,提供了一種基于項目模型生成試題的方法,包括步驟提供服務(wù)組件,用于根據(jù)外部調(diào)用所傳遞的參數(shù)實現(xiàn)由外部訪問接口約定的功能,其中該外部訪問接口約定所述生成試題的系統(tǒng)的功能和訪問參數(shù),以便外部系統(tǒng)通過該接口訪問所述系統(tǒng);利用參數(shù)組件制作相應(yīng)的項目模型,其中,所述參數(shù)組件用于生成用于所述項目模型中的模型文件的參數(shù),每個參數(shù)包括描述、生成值和生成干擾值,所述項目模型用于存放模型文件,每個模型文件包括元數(shù)據(jù)描迷和參數(shù)聲明;以及利用模型解析組件來解析所述項目模型中的模型文件,根據(jù)模型文件中的元數(shù)據(jù)描述和參數(shù)聲明生成試題,其中,所述參數(shù)組件的功能和訪問參數(shù)由一參數(shù)組件接口來約定,該接口通過調(diào)用方式來提供所述參數(shù)組件中的參數(shù),以將所調(diào)用的參數(shù)用于解析所述項目模型中的模型文件。根據(jù)本發(fā)明的再一個方面,提供了一種基于項目模型生成試題的方法,包括步驟提供參數(shù)組件,用于生成試題中需要的參數(shù);制作項目模型,其中所用的參數(shù)由參數(shù)組件隨機生成;提供一組服務(wù)組件解析項目模型生成試題;以及通過一中間件系統(tǒng)平臺,將所述服務(wù)組件和參數(shù)組件部署在一個或多個中間件系統(tǒng)中,并將服務(wù)組件的方法輸出供外部系統(tǒng)訪問,所述中間件系統(tǒng)平臺包括分布式組件、事務(wù)組件和應(yīng)用服務(wù)器。根據(jù)本發(fā)明的試題自動生成系統(tǒng)和方法,在保留項目模型優(yōu)點的前提下,增強了項目模型的描述能力,簡化模型參數(shù)的約束條件的描述復(fù)雜性,維持模型解析程序相對穩(wěn)定。此外,本發(fā)明采用網(wǎng)絡(luò)服務(wù)(WS)的形式作為外部系統(tǒng)接口,有利于教育資源的交流和共享。下面結(jié)合附圖和實施實例進一步說明本發(fā)明。在附圖中,圖1說明了根據(jù)本發(fā)明一個實施例的試題自動生成系統(tǒng)的系統(tǒng)架構(gòu);圖2說明了本發(fā)明的試題自動生成系統(tǒng)和外部系統(tǒng)交互的模式;圖3說明了由本發(fā)明的試題自動生成系統(tǒng)的項目模型的一種表示方法所定義的一個模型實例;圖4說明了由本發(fā)明的試題自動生成系統(tǒng)生成試題的過程的例子;圖5說明了在圖4的過程中初始化參數(shù)的具體過程的例子;圖6說明了在圖4的過程中執(zhí)行參數(shù)替換的具體過程的例子;圖7說明了本發(fā)明的試題自動生成系統(tǒng)查詢類別的過程的例子;圖8說明了本發(fā)明的試題自動生成系統(tǒng)定義模型類別標(biāo)簽的過程的例子;圖9說明了本發(fā)明的試題自動生成系統(tǒng)組巻過程的例子;圖10說明了本發(fā)明的試題自動生成系統(tǒng)分析試題區(qū)分度的過程的例子;圖11說明了本發(fā)明的試題自動生成系統(tǒng)分析為^f皮測者提供進一步學(xué)習(xí)建議的過程的例子;圖12說明了本發(fā)明的試題自動生成系統(tǒng)的項目模型所生成的一個具體實例;以及圖13說明了本發(fā)明的試題自動生成系統(tǒng)的項目模型所生成的另一個具4本實例。具^本實施方式在以下的對具體實施方式的描述中,僅僅以舉例的方式描述了本發(fā)明的示范性實施例。這些示范性實施例不應(yīng)構(gòu)成對本發(fā)明的限制。本發(fā)明應(yīng)當(dāng)包括對這些實施例的所有細節(jié)的改變。圖1說明了根據(jù)本發(fā)明一個實施例的試題自動生成系統(tǒng)的系統(tǒng)架構(gòu)。如圖l所示,本發(fā)明的核心是一種基于事務(wù)組件和網(wǎng)絡(luò)服務(wù)(WS)的軟件系統(tǒng)架構(gòu)100,用于自動生成試題和試巻。該架構(gòu)采用WS的形式向系統(tǒng)外界提供了多類外部訪問接口。外部訪問接口是本發(fā)明的試題自動生成系統(tǒng)與外部系統(tǒng)交換信息的通道。在圖1中舉例示出了本發(fā)明的試題自動生成系統(tǒng)所提供的4類接口,每一類接口在圖1中使用一個端口表示,分別是檢索端口(檢索端口)121、試題端口122、分析端口123和反饋端口l24。檢索端口Ul用于將若干本體作為分類體系存儲在關(guān)系數(shù)據(jù)庫180中,將本發(fā)明的自動生成試題和試巻的系統(tǒng)中的本體的概念作為類別標(biāo)簽對項目模型分類,并且提供用于查詢的參數(shù)組件,由此該檢索端口121提供了類別查詢、模型標(biāo)簽等接口;試題端口122提供了生成試題和試巻等的接口,其中生成試巻時可以設(shè)定各類別試題所占的比例;分析端口123提供了分析試題模型的使用次數(shù)、被測者答案的正確率、試題的區(qū)分度等的接口;反饋端口124則提供了對被測者的整體評價、學(xué)習(xí)建議等的接口。具體實現(xiàn)上述端口的服務(wù)組件110應(yīng)部署在應(yīng)用服務(wù)器(ApplicationServer,下面有時簡稱AS)101中,這些組件根據(jù)系統(tǒng)外部調(diào)用所傳遞的參數(shù)實現(xiàn)相應(yīng)的功能。試題自動生成系統(tǒng)100利用項目模型實現(xiàn)試題相關(guān)的功能,其中參數(shù)組件150用于實現(xiàn)項目模型170中相關(guān)參數(shù)的變化。自動生成試題的功能由模型解析模塊130實現(xiàn),模型解析模塊130解析項目模型170,根據(jù)項目模型170中的定義通過參數(shù)組件端口140調(diào)用參數(shù)組件150。當(dāng)外部調(diào)用系統(tǒng)的試題服務(wù)后,反饋回的信息160被保存在關(guān)系型數(shù)據(jù)庫180中,描述模型的XML文件和類別體系也同樣可以在數(shù)據(jù)庫中存儲。本發(fā)明的系統(tǒng)可以使用數(shù)據(jù)庫(例如關(guān)系型數(shù)據(jù)庫180)存儲相關(guān)數(shù)據(jù),包括但不限于國際商用公司的DB2、微軟公司的SQLServer、甲骨文公司的Oracle、MySQL等。應(yīng)用服務(wù)器101是部署分布式應(yīng)用的主流平臺,例如下列非窮舉的清單中包括的太陽公司的JAVA系統(tǒng)應(yīng)用服務(wù)器、國際商用機器公司的WebSphere、微軟公司的.Net框架、JBoss等。由于這些軟件仍在開發(fā)之中,新軟件和版本的出現(xiàn)不可預(yù)見,但這些都包括在本發(fā)明的范圍中。數(shù)據(jù)庫服務(wù)器和應(yīng)用服務(wù)器可以部署在同一臺計算機上,包括但不限于服務(wù)器、大型機、個人計算機等;也可以部署在多臺或者服務(wù)器集群上。這些服務(wù)器所使用的操作系統(tǒng)包括但不限于WindowsNT、WindowXp、WindowsVista、Linux、AIX等。本發(fā)明的系統(tǒng)將各項功能作為WS輸出,外部系統(tǒng)可以通過本地回路、局域網(wǎng)、廣域網(wǎng)等物理通信系統(tǒng)訪問系統(tǒng),在傳輸層使用TCP協(xié)議,應(yīng)用層使用但不限于HTTP、HTTPS、SMTP等,用SOAP消息格式封裝消息,WSDL格式的文件描述系統(tǒng)接口及綁定信息。網(wǎng)絡(luò)本體語言(OntologyWebLanguage,下面簡稱OWL)是一種用機器可識別的方式描述領(lǐng)域知識的語言,在提高系統(tǒng)間的互操作性方面起著重要作用,同時也可添加多國語言的描述供人類閱讀。在本發(fā)明中,采用OWL-DL子集作為項目模型、試題、參數(shù)組件的描述語言,這些實體可以添加任意多個以統(tǒng)一資源標(biāo)示符(UnifiedResourceIdentifier,下面簡稱URI)表示的本體中的某個概念。一個概念可以由若干概念的集合運算表示,例如"網(wǎng)絡(luò)層的難題"這個概念可以用下列OWL片段來表示<owl:Classrdf:ID="HardNetworkLayerProblems"><rdfs:subClassOfrdf:resource="URI-Hard"/><rdfs:subClassOfrdf:resource="URI-NetworkLayer7></owl:Class>,這個片段表示那些既屬于某個本體規(guī)定的Hard概念又屬于某個本體規(guī)定的NetworkLayer扭無念的模型。圖2說明了本發(fā)明的試題自動生成系統(tǒng)和外部系統(tǒng)交互的模式。如圖所示,在系統(tǒng)就緒后,管理員可隨時部署新的參數(shù)組件,從而擴充系統(tǒng)所能表示的領(lǐng)域知識,以具備生成考核相應(yīng)內(nèi)容的試題的能力。系統(tǒng)被動地等待外部系統(tǒng)的調(diào)用,當(dāng)一個調(diào)用到達系統(tǒng)后,系統(tǒng)將調(diào)用分派給相應(yīng)功能的組件,如果是生成試題的調(diào)用,則會進一步調(diào)用對應(yīng)的參數(shù)組件150,并最終將結(jié)果返回給外部系統(tǒng)。項目模型170中的所有參數(shù)由一個有狀態(tài)的事務(wù)組件產(chǎn)生,這些組件在本發(fā)明中被定義為參數(shù)組件150。每個參數(shù)組件150包括至少實現(xiàn)3個接口描述、生成值、及生成干擾值。為了使下面的描述簡明,可令一個組件為C,其描述為C.description,生成值為C.genrater(LP),干擾值為C.distracter;其中LP是這個組件所需的參數(shù)列表。描迷返回一個用字符串表示的OWL語言片段。當(dāng)一個參數(shù)組件150被部署到AS中時,一個監(jiān)控組件利用AS的動態(tài)發(fā)現(xiàn)機制掌握這個事件,并更新系統(tǒng)狀態(tài),以便外部系統(tǒng)可以查詢系統(tǒng)提供的參數(shù)組件。參數(shù)組件類型及其說明參加下面的表1。表1<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>根據(jù)本發(fā)明的實施例,參數(shù)組件150提供描述、生成值及生成干擾值,其中描迷返回一個本體的概念,用來說明參數(shù)組件涉及的主題,生成值根據(jù)給定參數(shù)產(chǎn)生一個字符串,干擾值產(chǎn)生多個互不相同并且和最近調(diào)用的生成值返回結(jié)果不相同的字符串。根據(jù)本發(fā)明的另一個實施例,參數(shù)組件150可以是有狀態(tài)的組件,其在調(diào)用生成值方法之后調(diào)用干擾值,其中該生成值方法返回當(dāng)前值或者根據(jù)其參數(shù)重新求值,該干擾值每次被調(diào)用都會重新求得新的元素。根據(jù)本發(fā)明,優(yōu)選的方式是必須在調(diào)用生成值之后才調(diào)用干擾值。根據(jù)本發(fā)明的另一個實施例,參數(shù)組件150是預(yù)定義的整數(shù)和實數(shù)組件,由用2個數(shù)字參數(shù)表示其生成值的區(qū)間,能夠隨機生成在一定區(qū)間的數(shù)字,其干擾值可生成與當(dāng)前值不同的數(shù)字。根據(jù)本發(fā)明的另一個實施例,參數(shù)組件150是預(yù)定義的字符串組件,由空格區(qū)分的字符串序列和一個索引整數(shù)參數(shù)作為其參數(shù),其中,作為參數(shù)的字符串序列可以轉(zhuǎn)義空格字符,其中生成值返回隨機位置或整數(shù)參數(shù)所在位置的字符串,干擾值則返回與當(dāng)前值不同的字符串。圖3說明了由本發(fā)明的試題自動生成系統(tǒng)的項目模型170的一種表示方法所定義的一個模型實例。項目模型170可以使用可擴展標(biāo)記語言(eXtensibleMakeupLanguage,下面簡稱XML)描述,其格式由一個XML大綱(XMLSchema,下面簡稱XMLS)文件規(guī)定。每個模型文件分為4個部分元數(shù)據(jù)描述、參數(shù)聲明、題干、答案,參數(shù)可被其后定義的參數(shù)、題干或答案引用。元數(shù)據(jù)描述了模型的基本屬性,其中每個試題模型必須說明其產(chǎn)生的題目類型,如單選、多選、關(guān)聯(lián)等;試題考核的內(nèi)容,例如教學(xué)大綱中規(guī)定的章、節(jié)號碼;試題考核哪種認知能力,根據(jù)布盧姆的認知領(lǐng)域技能體系劃分為6個級別。每個參數(shù)由上述的一個參數(shù)組件150生成,在聲明該參數(shù)的時候自動初始化。參數(shù)定義是有順序的,先定義的參數(shù)可以作為其后定義的參數(shù)所對應(yīng)的組件C的生成值接口所需的參數(shù)列表成員,以參數(shù)引用的形式出現(xiàn)。題干和答案由字符和參數(shù)的引用(包括公式)構(gòu)成。答案可以聲明一個或若干個答案為正確答案,其他為干擾項;也可以將若干參數(shù)排列成2個序列,其中的元素--對應(yīng),這樣就形成了匹配類型的題目。參數(shù)、答案、和題干均可出現(xiàn)若干次,但其語言屬性不同,如果調(diào)用者指定了某個語言而模型中恰好有這種語言的相關(guān)元素,那么優(yōu)先選擇滿足語言要求的元素;否則使用下第一組出現(xiàn)的元素作為生成試題的語言。圖4說明了由本發(fā)明的試題自動生成系統(tǒng)生成試題的過程的例子。該圖給出了解析項目模型170生成試題的一個具體過程。首先在過程401中輸入項目模型和語言,可以在參數(shù)中規(guī)定生成哪種語言的試題,如果參數(shù)中沒有約定,則按照順序選擇有語言屬性的那些元素種類中第一個出現(xiàn)的語言。之后解析模型中的所有參數(shù),并根據(jù)參數(shù)約定的數(shù)據(jù)類型和約束條件,調(diào)用對應(yīng)的試題組件。在過程402中,提取參數(shù)聲明,維護參數(shù)列表,并隨機初始化這些參數(shù)(這個參數(shù)初始化過程402將在圖5中給出詳細描述)。之后,在過程403,判斷輸入的參數(shù)中是否有語言選項,如果有則在過程404再次判斷題目主體是否存在和語言選項相匹配的元素,如果存在則在過程405解析匹配的主體元素;如果不存在匹配或沒有語言選項則在過程406解析第一個出現(xiàn)的主體元素。在過程407中,將所選擇的主體元素中出現(xiàn)的所有參數(shù)引用用該參數(shù)的當(dāng)前值替換(這個參數(shù)替換的過程將在圖6中詳細描述)。例如在圖3中定義的2個參數(shù)設(shè)partyModeText-zh-CN的當(dāng)前值是"偶"、binaryData的當(dāng)前值是"1011010",且選擇了語言是"zh-CN"的主體元素,那么題目主體就變成了"采用海明碼偶校驗,原始數(shù)據(jù)1011010的結(jié)果是"。在解析答案時仍然需要經(jīng)過選擇語言的階段,和選擇題目主體語言的過程類似,不再贅迷。然后解析答案部分,對于正確答案中的參數(shù)引用用其當(dāng)前值替換,對于干擾項中的參數(shù)引用則自動調(diào)用和該參數(shù)對應(yīng)的試題組件生成千擾項來替換,如果是公式,則解析公式求值。這個替換過程412和過程407類似,將在圖6中詳細描述。當(dāng)題目的主體和選項都生成好之后,按照IMSQTI格式生成對應(yīng)的XML字符串。應(yīng)當(dāng)理解的是,本發(fā)明的試題的格式并不限于用IMSQTI格式生成對應(yīng)的XML字符串,而是可以采用任何適當(dāng)?shù)母袷?,包括但不限于圖形格式、純文本或標(biāo)準(zhǔn)化格式文本來表示,其中,圖形格式例如包括jpeg、png、bmp、gif和svg等才各式,標(biāo)準(zhǔn)化格式文本例如包括xml、html、xhtml和IMSQTI等格式。圖5說明了在圖4的過程402中初始化參數(shù)的具體過程。如圖5所示,在過程510中輸入?yún)?shù)聲明序列,然而在過程502中對參數(shù)容器進行初始化,例如用一個字典來維護所定義的參數(shù)名及其實體,在模型中通過參數(shù)名引用的參數(shù)定義,這個循環(huán)由過程503到512構(gòu)成。對于每一個參數(shù)聲明,都先檢查其合法性,包括存在對應(yīng)的組件(過程506),沒有自引用(過程509),沒有引用未經(jīng)定義的參數(shù)(過程510)。如果不滿足上述要求,則解析過程異常中止507。在過程511中,將所定義的參數(shù)初始化,具體過程是如果參數(shù)類型是整數(shù)、實數(shù)、或字符串則由特定的系統(tǒng)參數(shù)組件來生成;如果是公式,則要檢查公式是否為一個合法的算術(shù)表達式,如不合法則異常中止;其他參數(shù)都通過組件名稱來發(fā)現(xiàn)對應(yīng)參數(shù)組件。之后根據(jù)參數(shù)聲明生成一個參數(shù)實體,對于公式則按照算術(shù)運算法則求解公式的值;其他參數(shù)調(diào)用對應(yīng)組件150的求值方法將之初始化。如果參數(shù)定義中提供的參數(shù)類型不對,例如在公式中引用字符串類型,則會異常中止。最后將參數(shù)名及其實體在參數(shù)字典中關(guān)聯(lián)。繼續(xù)以圖3所示的模型中參數(shù)定義為例,定義了名字為length的整數(shù)類型,最小值為5,最大值為10,則解析后系統(tǒng)中會有一個名為length的整數(shù)變量,調(diào)用對應(yīng)的組件隨;f幾初始化之后其l直為7。另外一個名為binaryData的生成類型變量,對應(yīng)的組件名稱是RandomBits,并引用了length作為其參數(shù)。解析后系統(tǒng)會發(fā)現(xiàn)RandomBits組件,并將length的當(dāng)前值傳遞過去,隨機初始化為"1011010"。名字為partyMode的整數(shù)變量同樣隨機初始化結(jié)果為0。名字為hamming的參數(shù)4吏用Hamming參數(shù)組件,該組件需要2個參數(shù),分別是length和binaryData,這個組件則會計算出"1011010"的海明碼偶校驗編碼,結(jié)果為"00100111010"。圖6說明了在圖4的過程中執(zhí)行參數(shù)替換的過程407和412的具體過程。如圖6所示,首先在過程602中判斷是否為直接嵌入的公式。如果是公式則在過程603中檢查其合法性,如果語法正確且提供的參數(shù)類型正確則計算出表達式的值,并用這個值替換公式元素(過程606)。對于參數(shù)引用,則要檢查對應(yīng)的參數(shù)是否被定義(過程605),如果沒有定義則異常中止(過程604)。接下來看是否求值(過程607),求值則取當(dāng)前值替換參數(shù)(過程608);求干擾值則調(diào)用對應(yīng)組150的干擾值接口生成干擾項(過程609)。繼續(xù)以圖3所示的模型來說明這個過程。在答案中約定了正確答案為answer,引用了參數(shù)hamming,這時就用"00100111010"來替換掉參數(shù)引用。其他選項為干擾項,調(diào)用Hamming組件的干擾值^接口,隨機生成了"11110110010"、"00100110010"、"10100111010"作為干擾項替換對應(yīng)的引用。這個過程使得項目模型的每一個實例都有充分的變化,例如下一次可能會隨機生成一個6個比特的海明碼奇校驗題目,所考核的知識點是一樣的,但題目中數(shù)值的變化大大提高了試題的抗暴露性。圖7說明了本發(fā)明的試題自動生成系統(tǒng)查詢類別的過程的例子。如圖7所示,在查詢類型C所包含的項目模型的過程中,在過程702中維護概念-模型集合的集合L。L指所有被C包含的概念c,將每個c對應(yīng)的模型集合與之關(guān)聯(lián)方在L中(過程705)。在遍歷系統(tǒng)中已有的概念時(過程703),如果Ccd或者不能判斷二者的關(guān)系,則忽略這個概念,如果某個概念和C等價則直接返回這個概念所對應(yīng)的模型集合(過程707),過程結(jié)束(過程709)。對于不能找到等價概念的情況,則將L集合的概念求和集來生成其模型集合(過程706),并記錄C及與之對應(yīng)的模型集合(過程708)。圖8說明了本發(fā)明的試題自動生成系統(tǒng)定義模型類別的過程的例子。對于所定義的類別首先檢查個概念C是否為空集(過程802)。例如在某個本體中定義了"北京"和"上海"是2個不同的地區(qū),那么一個即屬于"北京"又屬于"上海"的建筑集合就是空集。這里的"概念為空"是從概念本身定義上是否有矛盾來判斷的,一個定義沒有矛盾的概念可能其包含的模型集合為空,例如系統(tǒng)暫時沒有添加"北京"類別的建筑,但這并不能說明"北京"這個概念為空。對于非空概念,先調(diào)用過程700獲取其模型集合(該過程700在圖7中示出),之后檢查所標(biāo)注的模型是否已經(jīng)屬于這個概念(過程805)。如果已經(jīng)用這個概念標(biāo)注過則結(jié)束,否則取得該模型已有概念標(biāo)簽集合(過程806)。將這些概念定義取交集C,,如果C,和C的交集為空則出錯(過程807),否則將該模型標(biāo)記為C類型(過程S08)。圖9說明了本發(fā)明的試題自動生成系統(tǒng)組巻過程的例子。如圖9所示,每個試巻用一系列的C-N對來聲明,其中C指概念,N指題目個數(shù)。當(dāng)一個試巻請求到達時,首先找出這個試巻中出現(xiàn)的類別下所有的模型集合,如果某個模型同時屬于多個類別,則系統(tǒng)隨機選擇一個類別將之歸類(過程905)。在構(gòu)造好候選模型集合之后,隨機抽取約定個數(shù)的模型,如過程909-910所示。如果該類別的題目個數(shù)為0,則報告調(diào)用失敗(過程907),如果該類別模型個數(shù)小于所要求的題目個數(shù)則可能抽到同樣的模型。選擇好模型后,系統(tǒng)隨機生成一個全局唯一的ID,將這個ID與模型序列相關(guān)聯(lián)(過程904)。之后在考試時,通過這個ID獲取試題,對于每個請求,系統(tǒng)重新生成這個試巻中所有模型的實例。試題區(qū)分度(或項目模型區(qū)分度)例如可以由一個對偶〈G,>來表示,其中G表示某個分數(shù),P是O到l之間的數(shù)字。一個試題模型的區(qū)分度越大,則考試中考得較好的被測者(其成績大于等于G,這表示其相關(guān)知識掌握較好)能做出試題的概率大,而那些考的不好的被測者(其成績小于G,這表示其相關(guān)知識掌握不夠好)能正確回答的概率小。如果這個值小,則表示能否做對這個模型生成的題目和被測者的分數(shù)之間的關(guān)系并不明確。其具體計算過程將在下面參照圖IO說明。圖10說明了本發(fā)明的試題自動生成系統(tǒng)分析試題區(qū)分度的過程的例子。令G從60到卯步長為10(這個循環(huán)由過程1003至1006組成),分別計算試巻中出現(xiàn)的模型在所有小于G的成績中的正確回答率GL和大于等于G的成績中的正確回答率GR。在過程1005中,令p=l-arctan(GL,GR)/Pi/2,若p<=0,則P=0,否則P=p。此外,系統(tǒng)維護一個總體的區(qū)分度記錄,每次一個模型被使用后,其修正后的區(qū)分度P'例如可以由下面的等式來表示P'=Pold*0.8+P*0.2,其中Pold指之前的區(qū)分度,其初始值為O,P指當(dāng)前這次測驗的區(qū)分度。對于學(xué)習(xí)知識有多方面的評價指標(biāo),因此本發(fā)明并不限定某個方面的建議。而是提供機制設(shè)定評價概念集合、分數(shù)閾值及對應(yīng)的建議描述。例如將測試題目按照章節(jié)劃分,這時可以提供一個章節(jié)的本體作為評價概念,這樣可以在被測者的答巻中發(fā)現(xiàn)哪些內(nèi)容其掌握得較好、哪些內(nèi)容有待提高;再如以布盧姆(B.S.Bloom)的認知領(lǐng)域教育目標(biāo)分類層次作為評價概念集合(知道、領(lǐng)會、應(yīng)用、分析等)來劃分的試巻中的題目中,這樣可以考察出被測者在各類認知能力上的能力。如果系統(tǒng)用戶是用于某種評估考試,如期末考試、資格認證考試,則不需調(diào)用這項服務(wù)。圖11說明了本發(fā)明的試題自動生成系統(tǒng)為被測者提供進一步學(xué)習(xí)建議的過程的例子。輸入是分類概念集合、閾值及建議描述序列、被測者答巻。首先初始化一個概念-建議字典(過程1102),輸入的概念集合元素作為其鍵。依次遍歷每個概念c,這個過程由過程1103至1109構(gòu)成。找出試巻中所有屬于c的模型,并將這些模型從試巻中去除,如過程1104、1105、1106和1107所示。之后統(tǒng)計出被測者在c類題目中的成績,在閾值及建議描述序列中查找對應(yīng)的建議并將之與c在字典中關(guān)聯(lián)(過程1108)。當(dāng)所有概念遍歷完成后返回概念-建議字典。圖12說明了本發(fā)明的試題自動生成系統(tǒng)的項目模型所生成的一個具體實例。圖12所示的實例是由外部考試系統(tǒng)展現(xiàn)的結(jié)果。圖13說明了本發(fā)明的試題自動生成系統(tǒng)的項目模型所生成的另一個具體實例。從圖12和圖13可以看出,同樣的模型所生成的每個試題具有顯著的差異。由于參數(shù)組件隨機生成不同的網(wǎng)絡(luò)拓樸結(jié)構(gòu),因此試題呈現(xiàn)出很大的差別。參數(shù)組件生成圖形有多種方法,例如可以輸出為可伸縮的矢量圖形(SVG)以便將之和試題的其他部分一同封裝在XML文件中。不論在大規(guī)模的評估性考試還是學(xué)員自測的場合,本發(fā)明所提出的試題生成方法都有很強的適用性。盡管已經(jīng)結(jié)合目前認為可行的示范實施例描述了本發(fā)明,但應(yīng)當(dāng)理解,本發(fā)明不限于所公開的實施例,相反,本發(fā)明旨在涵蓋包括在權(quán)利要求書的精神和范圍內(nèi)的各種修改和等效配置。權(quán)利要求1、一種基于項目模型生成試題的系統(tǒng),該系統(tǒng)包括外部訪問接口,用于約定所述生成試題的系統(tǒng)的功能和訪問參數(shù),以便外部系統(tǒng)通過該接口訪問;服務(wù)組件,用于根據(jù)外部調(diào)用所傳遞的參數(shù)實現(xiàn)由所述外部訪問接口約定的功能;項目模型,用于存放模型文件,每個模型文件包括元數(shù)據(jù)描述和參數(shù)聲明;模型解析組件,用于解析所述項目模型中的模型文件,根據(jù)模型文件中的元數(shù)據(jù)描述和參數(shù)聲明生成試題;參數(shù)組件,用于生成用于所述項目模型中的模型文件的參數(shù),每個參數(shù)包括描述、生成值和生成干擾值;以及參數(shù)組件接口,用于約定所述參數(shù)組件的功能和訪問參數(shù),通過調(diào)用所述參數(shù)組件中的參數(shù)而將所調(diào)用的參數(shù)提供給所述模型解析組件。2、根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述服務(wù)組件、所述模型解析組件和所述參數(shù)組件部署在一應(yīng)用服務(wù)器中,并且,所述項目模型存放在一關(guān)系型數(shù)據(jù)庫中,其中所述應(yīng)用服務(wù)器和所述數(shù)據(jù)庫服務(wù)器部署在一臺或多臺服務(wù)器上,并且,由所述應(yīng)用服務(wù)器將所述服務(wù)組件以網(wǎng)絡(luò)服務(wù)的形式輸出以供外部系統(tǒng)訪問。3、根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述外部訪問接口包括檢索端口,用于將多個本體作為分類體系存儲在數(shù)據(jù)庫中,將所述生成試題的系統(tǒng)中的本體的概念作為類別標(biāo)簽對項目模型分類,并且提供用于查詢的參數(shù)組件;分析端口,用于分析項目模型的區(qū)分度,該項目模型的區(qū)分度由一個對偶〈G,P〉來表示,其中G為分數(shù),P為0到1之間的數(shù)字,該分析端口能夠統(tǒng)計項目模型的使用頻率、被測者的成績分布;反饋端口,用于根據(jù)被測者的成績向被測者提供反饋信息和建議;以及試題端口,用于用項目模型生成包括多項選擇和匹配類型的試題,根據(jù)類別標(biāo)簽及其所占的比率選擇相應(yīng)的項目模型,由選定的模型生成試題。4、根據(jù)權(quán)利要求3所述的系統(tǒng),其中,根據(jù)生成的試題產(chǎn)生一個試巻。5、根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述試題或試巻能夠用圖形格式、純文本或標(biāo)準(zhǔn)化才各式文本來表示,其中,所述圖形格式包括jpeg、png、bmp、gif、svg格式,所迷標(biāo)準(zhǔn)化才各式文本包括xml、html、xhtml、IMSQTI。6、根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述參數(shù)組件提供描述、生成值及生成干擾值,其中描述返回一個本體的概念,用來說明參數(shù)組件涉及的主題,生成值根據(jù)給定參數(shù)產(chǎn)生一個字符串,干擾值產(chǎn)生多個互不相同并且和最近調(diào)用的生成值返回結(jié)果不相同的字符串。7、根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述參數(shù)組件是有狀態(tài)的組件,其在調(diào)用生成值方法之后調(diào)用干擾值,其中該生成值方法返回當(dāng)前值或者根據(jù)其參數(shù)重新求值,該干擾值每次被調(diào)用都會重新求得新的元素。8、根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述參數(shù)組件是預(yù)定義的整數(shù)和實數(shù)組件,由用2個數(shù)字參數(shù)表示其生成值的區(qū)間,能夠隨機生成在一定區(qū)間的數(shù)字,其干擾值可生成與當(dāng)前值不同的數(shù)字。9、根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述參數(shù)組件是預(yù)定義的字符串組件,由空格區(qū)分的字符串序列和一個索引整數(shù)參數(shù)作為其參數(shù),其中,作為參數(shù)的字符串序列可以轉(zhuǎn)義空格字符,其中生成值返回隨機位置或整數(shù)參數(shù)所在位置的字符串,干擾值則返回與當(dāng)前值不同的字符串。10、根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述項目模型包括參數(shù)聲明部分、題干、和答案組,其中,所述參數(shù)聲明部分由一系列參數(shù)定義構(gòu)成,每個參數(shù)定義說明了其使用的參數(shù)組件,后面定義的參數(shù)可以應(yīng)用之前的參數(shù)作為其對應(yīng)組件的參數(shù);參數(shù)可以公式,包括四則運算、冪運算、常用函數(shù)及隨機數(shù)發(fā)生器,預(yù)先定義的整數(shù)、實數(shù)參數(shù)可以作為公式中參與運算的單元,所述題干由字符串和引用聲明的參數(shù)構(gòu)成;所迷答案組中的元素包括下列形式1)引用一個參數(shù)、由參數(shù)引用及算術(shù)運算構(gòu)成的公式;2)多項選擇題的唯一正確答案或者多個正確答案,其中在干擾項中調(diào)用參數(shù)組件的干擾值方法;3)對于一個序列的元素和另外一個序列的元素進行匹配的配對問題,其中,用語言屬性來區(qū)分多個參數(shù)聲明、題干和答案組元素。11、根據(jù)權(quán)利要求1所述的系統(tǒng),所述模型解析組件包括一組件,用于在選擇語言后讀取所有參數(shù)聲明,獲取其對應(yīng)的參數(shù)組件的引用,將參數(shù)初始化并創(chuàng)建參數(shù)列表;一組件,用于提取匹配語言選項的題干元素,并在題干中找出所有參數(shù)引用。如果不存在語言匹配的元素,則選擇第一次出現(xiàn)的題干元素;如果該參數(shù)引用聲明需要重新求值則再次調(diào)用對應(yīng)組件的生成值方法并得到返回值,否則得到其當(dāng)前值,用這個值替換參數(shù)引用;一組件,用于提取匹配語言選項的答案組并生成試題選項。如果不存在語言匹配的元素,則選擇第一次出現(xiàn)的題干元素;如果答案是字符串及參數(shù)引用,則用類似方法取得參數(shù)值替換引用,如果是一個公式,則用參數(shù)值替換引用,計算出數(shù)值結(jié)果作為答案選項,如果是字符串及引用參數(shù)的干擾值,則調(diào)用組件的干擾值方法并替換干擾值引用;將獲得的題干和答案按照預(yù)定格式封裝并返回。12、一種基于項目模型生成試題的方法,包括步驟提供服務(wù)組件,用于根據(jù)外部調(diào)用所傳遞的參數(shù)實現(xiàn)由外部訪問接口約定的功能,其中該外部訪問接口約定所述生成試題的系統(tǒng)的功能和訪問參數(shù),以便外部系統(tǒng)通過該4妾口訪問所述系統(tǒng);利用參數(shù)組件制作相應(yīng)的項目模型,其中,所述參數(shù)組件用于生成用于所述項目模型中的模型文件的參數(shù),每個參數(shù)包括描述、生成值和生成干擾值,所述項目模型用于存放模型文件,每個模型文件包括元數(shù)據(jù)描述和參數(shù)聲明;以及利用模型解析組件來解析所述項目模型中的模型文件,根據(jù)模型文件中的元數(shù)據(jù)描述和參數(shù)聲明生成試題,其中,所述參數(shù)組件的功能和訪問參數(shù)由一參數(shù)組件接口來約定,該接口通過調(diào)用方式來提供所述參數(shù)組件中的參數(shù),以將所調(diào)用的參數(shù)用于解析所述項目模型中的模型文件。13、根據(jù)權(quán)利要求12所述的方法,其中,利用包括所述外部訪問接口中的檢索端口,將若千本體作為分類體系存儲在數(shù)據(jù)庫中,將所述自動生成試題的系統(tǒng)中的本體的概念作為類別標(biāo)簽對項目模型分類,并且提供用于查詢的參數(shù)組件;利用包括所述外部訪問接口中的分析端口,分析項目模型的區(qū)分度,該項目模型的區(qū)分度由一個對偶〈G,?〉來表示,其中G為分數(shù),P為0到1之間的數(shù)字,該分析端口能夠統(tǒng)計項目模型的使用頻率、被測者的成績分布;利用包括所述外部訪問接口中的反饋端口,根^居^皮測者的成績向被測者提供反饋信息和建議;并且利用包括所述外部訪問接口中的試題端口,用項目模型生成包括多項選擇和匹配類型的試題,根據(jù)類別標(biāo)簽及其所占的比率選擇相應(yīng)的項目模型,由選定的模型生成試題。14、根據(jù)權(quán)利要求13所述的方法,其中,根據(jù)生成的試題產(chǎn)生一個試巻。15、根據(jù)權(quán)利要求14所述的方法,其中,所述試題或試巻能夠用圖形格式、純文本或標(biāo)準(zhǔn)化格式文本來表示,其中,所述圖形格式包括jpeg、png、bmp、gif、svg才各式,所述標(biāo)準(zhǔn)化才各式文本包括xml、html、xhtml、IMSQTI格式。16、根據(jù)權(quán)利要求12所述的方法,利用模型解析組件來解析所迷項目模型中的模型文件的步驟包括在選擇語言后讀取所有參數(shù)聲明,獲取其對應(yīng)的參數(shù)組件的引用,將參數(shù)初始化并創(chuàng)建參數(shù)列表;根據(jù)語言來選擇模型中的題干元素,如果不存在和給定語言匹配的元素則選擇第一個出現(xiàn)的題干元素,在題干中找出所有參數(shù)引用,如果該參數(shù)引用聲明需要重新求值則再次調(diào)用對應(yīng)組件的生成值方法并得到返回值,否則得到其當(dāng)前值,用這個值替換參數(shù)引用;以及根據(jù)語言來提取答案組元素,如果不存在和給定語言匹配的元素則選擇第一個出現(xiàn)的答案組元素,如果答案是字符串及參數(shù)引用,則用類似方法取得參數(shù)值替換引用,如果是一個公式,則用參數(shù)值替換引用,計算出數(shù)值結(jié)果作為答案選項,如果是字符串及引用參數(shù)的干擾值,則調(diào)用組件的干擾值方法并替換干擾值引用。17、一種基于項目模型生成試題的方法,包括步驟提供參數(shù)組件,用于生成試題中需要的參數(shù);制作項目模型,其中所用的參數(shù)由參數(shù)組件隨機生成;提供一組服務(wù)組件解析項目模型生成試題;以及通過一中間件系統(tǒng)平臺,將所述服務(wù)組件和參數(shù)組件部署在一個或多個中間件系統(tǒng)中,并將服務(wù)組件的方法輸出供外部系統(tǒng)訪問,所述中間件系統(tǒng)平臺包括分布式組件、事務(wù)組件和應(yīng)用服務(wù)器。18、根據(jù)權(quán)利要求17所述的方法,其中,所述參數(shù)組件提供描迷、生成值及生成干擾值接口,其中描述返回一個本體的概念,用來說明參數(shù)組件涉及的主題,生成值根據(jù)給定參數(shù)產(chǎn)生一個字符串,干擾值產(chǎn)生多個互不相同并且和最近調(diào)用的生成值返回結(jié)果不相同的字符串。19、根據(jù)權(quán)利要求18所述的方法,其中,所述參數(shù)組件是有狀態(tài)的組件,其在調(diào)用生成值方法之后調(diào)用干擾值,其中該生成值方法返回當(dāng)前值或者根據(jù)其參數(shù)重新求值,該干擾值每次被調(diào)用都會重新求得新的元素。20、根據(jù)權(quán)利要求18所述的方法,其中,所述參數(shù)組件是預(yù)定義的整數(shù)和實數(shù)組件,由用2個數(shù)字參數(shù)表示其生成值的區(qū)間,能夠隨機生成在一定區(qū)間的數(shù)字,其干擾值可生成與當(dāng)前值不同的數(shù)字。21、根據(jù)權(quán)利要求18所述的方法,其中,所述參數(shù)組件是預(yù)定義的字符串組件,由空格區(qū)分的字符串序列和一個索引整數(shù)參數(shù)作為其參數(shù),其中,作為參數(shù)的字符串序列可以轉(zhuǎn)義空格字符,其中生成值返回隨機位置或整數(shù)參數(shù)所在位置的字符串,干擾值則返回與當(dāng)前值不同的字符串。22、根據(jù)權(quán)利要求17所述的方法,其中,所述項目模型包括參數(shù)聲明部分、題干、和答案組,其中,所述參數(shù)聲明部分由一系列參數(shù)定義構(gòu)成,每個參數(shù)定義說明了其使用的參數(shù)組件,后面定義的參數(shù)可以應(yīng)用之前的參數(shù)作為其對應(yīng)組件的參數(shù);參數(shù)可以公式,包括四則運算、冪運算、常用函數(shù)及隨機數(shù)發(fā)生器,預(yù)先定義的整數(shù)、實數(shù)參數(shù)可以作為公式中參與運算的單元。所述題干由字符串和引用聲明的參數(shù)構(gòu)成;所述答案組中的元素包括下列形式1)引用一個參數(shù)、由參數(shù)引用及算術(shù)運算構(gòu)成的公式;2)多項選擇題的唯一正確答案或者多個正確答案,其中在干擾項中調(diào)用參數(shù)組件的干擾值方法;3)對于一個序列的元素和另外一個序列的元素進行匹配的配對問題,其中,用語言屬性來區(qū)分多個參數(shù)聲明、題干和答案組元素。全文摘要本申請公開了一種基于項目模型的試題自動生成系統(tǒng)(100)和試題自動生成方法。該系統(tǒng)可以將每個項目模型解析成多個不同的試題;用本體來標(biāo)注、查詢項目模型,以及作為組卷的約束條件;可以分析項目模型的區(qū)分度;根據(jù)被測者成績提供多種方面的反饋信息。文檔編號G09B7/00GK101308486SQ20081008732公開日2008年11月19日申請日期2008年3月21日優(yōu)先權(quán)日2008年3月21日發(fā)明者薇何,犇劉,陳鶴杰申請人:北京印刷學(xué)院