基于試題關(guān)鍵字相似性的試題庫中的試題去重方法
【專利摘要】本發(fā)明涉及一種基于試題關(guān)鍵字相似性的試題庫中的試題去重方法,首先對試題進(jìn)行中文分詞得到的分詞結(jié);判斷分詞結(jié)是否為關(guān)鍵詞,若是則將其加入試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫;然后采用內(nèi)積計(jì)算試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫中任意兩個(gè)待檢測試題之間的相似度;其次判斷兩個(gè)待檢測試題是否為非相似試題,并將相似的試題加入重復(fù)試題關(guān)系數(shù)據(jù)庫;再次根據(jù)相似度條件,從重復(fù)試題關(guān)系數(shù)據(jù)庫中查找出重復(fù)試題列表;最后管理人員通過看重復(fù)試題列表進(jìn)行重復(fù)試題確認(rèn),人為判斷試題是否重復(fù)。本發(fā)明對試題的題干、試題候選項(xiàng)和試題答案進(jìn)行中文分詞,針對切詞后的分詞進(jìn)行分析,從而深入分析試題,以便去重更加精準(zhǔn)。因此,本發(fā)明可以廣泛用于試題去重領(lǐng)域。
【專利說明】
基于試題關(guān)鍵字相似性的試題庫中的試題去重方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種試題去重方法,特別是關(guān)于一種基于試題關(guān)鍵字相似性的試題庫 中的試題去重方法。
【背景技術(shù)】
[0002] 隨著歷年各類考試工作的開展,試題庫里面積累的題目也越來越多,逐步形成了 海量的試題庫。由于某一口課程的試題庫中的試題是在不同的時(shí)期,由不同專業(yè)和不同水 平的專家共同努力編撰而成,就導(dǎo)致出現(xiàn)各類形式各異,例如選擇題、填充題、判斷題和解 答題等,并且具有不同的難易度,但是含義類似或相同的重復(fù)試題,雖然重復(fù)試題的表現(xiàn)形 式可能較多,但可歸結(jié)為如下兩類:
[0003] (1)試題文字內(nèi)容完全相同、或者文字內(nèi)容非常相近且答案相同的試題;
[0004] (2)試題的文字表述不同、或者題型不同、但考查的知識(shí)相同;
[0005] 針對現(xiàn)有的試題系統(tǒng)的重復(fù)試題分析僅僅通過分析題干文字是否相同來判斷重 復(fù)試題,從題干文字分析重復(fù)試題的分析能力非常有限,阻礙了對考點(diǎn)分析、試題組卷W及 試題庫建設(shè)等問題。另外,僅僅通過分析題干文字是否相同來判斷重復(fù)試題并不全面,重復(fù) 試題識(shí)別率不高,且精度不夠。
【發(fā)明內(nèi)容】
[0006] 針對上述問題,本發(fā)明的目的是提供一種基于試題關(guān)鍵字相似性的試題庫中的試 題去重方法,W提高重復(fù)試題識(shí)別率不高,且精度不夠的問題。
[0007] 為實(shí)現(xiàn)上述目的,本發(fā)明采取W下技術(shù)方案:一種基于試題關(guān)鍵字相似性的試題 庫中的試題去重方法,它包括W下步驟:1)采用最大正向分詞匹配算法對試題庫中的試題 進(jìn)行中文分詞,中文分詞包括對試題庫中試題的題干、試題候選項(xiàng)和試題答案進(jìn)行中文分 詞,得到的分詞稱之為分詞結(jié);判斷分詞結(jié)是否為試題關(guān)鍵詞庫中的關(guān)鍵詞,若是試題關(guān)鍵 詞庫中的關(guān)鍵詞,則將其加入試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫,且試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫 包括關(guān)鍵字的出現(xiàn)頻率、關(guān)鍵字權(quán)值W及關(guān)鍵字出現(xiàn)的順序;其中,試題關(guān)鍵字庫中預(yù)先設(shè) 定試題關(guān)鍵字;2)采用內(nèi)積計(jì)算試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫中任意兩個(gè)待檢測試題之間的 相似度;3)將W內(nèi)積表示的相似度與重復(fù)試題闊值相比較,若不大于預(yù)先設(shè)定的重復(fù)試題 闊值,則執(zhí)行步驟4);若大于預(yù)先設(shè)定的重復(fù)試題闊值,則執(zhí)行步驟5) ;4)兩個(gè)待檢測試題 為非相似試題,則不做處理;5)兩個(gè)待檢測試題為相似試題,并將相似的試題加入重復(fù)試題 關(guān)系數(shù)據(jù)庫;6)根據(jù)相似度條件,從重復(fù)試題關(guān)系數(shù)據(jù)庫中查找出滿足條件的重復(fù)試題列 表;7)管理人員通過看重復(fù)試題列表進(jìn)行重復(fù)試題確認(rèn),人為判斷試題是否重復(fù)。
[000引所述步驟3)中,判斷試題是否重復(fù)的W內(nèi)積表示的重復(fù)試題闊值為0.80。
[0009]本發(fā)明由于采取W上技術(shù)方案,其具有W下優(yōu)點(diǎn):本發(fā)明首先采用最大正向分詞 匹配算法對試題庫中的試題進(jìn)行中文分詞,得到的分詞稱之為分詞結(jié);判斷分詞結(jié)是否為 試題關(guān)鍵詞庫中的關(guān)鍵詞,若是試題關(guān)鍵詞庫中的關(guān)鍵詞,則將其加入試題與關(guān)鍵字的關(guān) 系數(shù)據(jù)庫;然后,采用內(nèi)積計(jì)算試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫中任意兩個(gè)待檢測試題之間的 相似度;其次,將W內(nèi)積表示的相似度與重復(fù)試題闊值相比較,判斷兩個(gè)待檢測試題是否為 非相似試題,并將相似的試題加入重復(fù)試題關(guān)系數(shù)據(jù)庫;再次,根據(jù)相似度條件,從重復(fù)試 題關(guān)系數(shù)據(jù)庫中查找出滿足條件的重復(fù)試題列表;最后,管理人員通過看重復(fù)試題列表進(jìn) 行重復(fù)試題確認(rèn),人為判斷試題是否重復(fù)。通過W上處理步驟可知,本發(fā)明不但對試題的題 干進(jìn)行中文切詞,還對試題候選項(xiàng)和試題答案進(jìn)行中文分詞,針對切詞后的分詞進(jìn)行全面 分析,從而深入分析試題。另外,采用人工確認(rèn)的方式可W提高重題判斷的準(zhǔn)確率,提高去 除重題的精度。因此,本發(fā)明可W廣泛用于試題去重領(lǐng)域。
【附圖說明】
[0010] 為了更清楚地說明本發(fā)明實(shí)施例或者現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或 者現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅 是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還 可W根據(jù)運(yùn)些附圖獲得其他的附圖。
[0011] 圖1是本發(fā)明的流程圖。
【具體實(shí)施方式】
[0012] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0013]實(shí)施例
[0014] 如圖1所示,本發(fā)明一種基于試題關(guān)鍵字相似性的試題庫中的試題去重方法,它包 括W下步驟:
[0015] 1)采用最大正向分詞匹配算法對試題庫中的試題進(jìn)行中文分詞,中文分詞包括對 試題庫中試題的題干、試題候選項(xiàng)和試題答案進(jìn)行中文分詞,得到的分詞稱之為分詞結(jié);判 斷分詞結(jié)是否為試題關(guān)鍵詞庫中的關(guān)鍵詞,若是試題關(guān)鍵詞庫中的關(guān)鍵詞,則將其加入試 題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫,且試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫包括關(guān)鍵字的出現(xiàn)頻率、關(guān)鍵字 權(quán)值W及關(guān)鍵字出現(xiàn)的順序;其中,試題關(guān)鍵字庫中預(yù)先設(shè)定試題關(guān)鍵字,如Τι,T2,…,Tm。
[0016] 需要說明的是,最大正向分詞匹配算法為本領(lǐng)域技術(shù)人員公知的算法,故不再詳 述。
[0017] A、采用最大正向分詞匹配算法對試題庫中的試題進(jìn)行中文分詞,中文分詞包括對 試題庫中試題的題干、試題候選項(xiàng)和試題答案進(jìn)行中文分詞,得到的分詞稱之為分詞結(jié);
[0018] 本發(fā)明實(shí)施例采用最大正向分詞匹配算法對試題進(jìn)行中文分詞,最大正向分詞匹 配算法為從左到右將待分詞試題中的幾個(gè)連續(xù)字符與詞表匹配,若獲取的字符與詞表內(nèi)的 詞匹配上,則切分出一個(gè)詞;否則,不做處理。若想做到最大匹配,則不是一次匹配就可W進(jìn) 行切分的,通過W下例子進(jìn)行說明:
[0019] 待分詞試題:contend] = {"直","線","桿","塔","的","垂","直","檔","距"," 越","大","絕","緣","子","串","所","受","的","荷","重","就","越","大"},即 content。]為"直",content [2]為"線",content [3]為"桿",content [4]為"塔",content
[5]為"的",content [6]為"垂",content [7]為"直",content [引為"檔",content [9]為" 距",content[10]為"越",content[ll]為"大",content[12]為"絕",content[13]為"緣", content [14]為"子",content[15]為"所",content[16]為"受",content [17]為"的", content[18]為"荷",content[19]為"重",content[20]為"就",content[21]為"越", content [22]為"大"。
[0020]詞表:詞表dict[] = {"直線","桿塔","直線桿塔","絕緣子"},其中,dict[l]為" 直線",dict[2]為"桿塔",dict[3]為"直線桿塔",dict[4]為"絕緣子"。
[0021 ]針對待分詞試題的最大正向分詞匹配算法求解過程如下:
[0022] ①從content。]開始,當(dāng)掃描到content [2]的時(shí)候,發(fā)現(xiàn)"直線"已經(jīng)在詞表diet []中了,因此不能切分出來,因?yàn)椴恢@得的詞是否為更長的詞,即最大匹配,因此需要 繼續(xù)掃描;
[0023] ②繼續(xù)掃描content[3],發(fā)現(xiàn)"直線桿"并不是詞表dict[]中的詞,但是還不能確 定前面找到的"直線"是否已經(jīng)是最大的詞,因?yàn)?直線桿"是dict[3]的前綴,因此需要繼續(xù) 掃描;
[0024] ③繼續(xù)掃描content[4],發(fā)現(xiàn)"直線桿塔"是詞表dict[]中的詞,但是仍不能切分 出來,因?yàn)椴恢@得的詞是否為更長的詞,即最大匹配,因此需要繼續(xù)掃描;
[0025] ④繼續(xù)掃描contends],發(fā)現(xiàn)"直線桿塔的"并不是詞表中的詞,也不是詞的前綴。 因此可W切分出前面最大的詞為"直線桿塔"。
[0026] 針對待分詞試題的最大正向分詞匹配算法求解過程可知,最大匹配出的詞必須保 證下一個(gè)掃描不是詞表中的詞或詞的前綴才可W結(jié)束。
[0027] B、判斷分詞結(jié)是否為試題關(guān)鍵詞庫中的關(guān)鍵詞,若是試題關(guān)鍵詞庫中的關(guān)鍵詞, 則將其加入試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫,且試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫包括關(guān)鍵字的出現(xiàn) 頻率、關(guān)鍵字權(quán)值W及關(guān)鍵字出現(xiàn)的順序;
[0028] 采用化ie樹結(jié)構(gòu)將關(guān)鍵字與試題進(jìn)行存儲(chǔ),采用此種方式存儲(chǔ),使得查找每一個(gè) 詞的時(shí)間復(fù)雜度為〇(word. length),而且可W很方便的判斷是否匹配成功或匹配到了字符 串的前綴。存儲(chǔ)結(jié)構(gòu)為:
[0029] ①每個(gè)結(jié)點(diǎn)都是詞語中的一個(gè)漢字;
[0030] ②結(jié)點(diǎn)中的指針指向了該漢字在某一個(gè)詞中的下一個(gè)漢字。運(yùn)些指針存放在W漢 字為k巧的hash結(jié)構(gòu)中;
[0031] ③結(jié)點(diǎn)中的"#"表示當(dāng)前結(jié)點(diǎn)中的漢字是從根結(jié)點(diǎn)到該漢字結(jié)點(diǎn)所組成的詞的最 后一個(gè)字。
[0032] 2)采用內(nèi)積計(jì)算試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫中任意兩個(gè)待檢測試題之間的相似 度;
[0033] 傳統(tǒng)向量空間模型中,待檢測試題與其比較的待檢測試題都表示成W試題關(guān)鍵詞 為元素組成的向量,每個(gè)試題關(guān)鍵詞根據(jù)詞頻TF與逆文本頻率IDF(TF-IDF,Term frequen巧-inverse document frequency,詞頻-反轉(zhuǎn)文件頻率)被賦予一定的權(quán)值,然后 通過向量元素間余弦角或其它參數(shù)的計(jì)算待檢測試題間的相似度,借用歐氏空間中求向量 夾角余弦的方法得到待檢測試題間的相似度。
[0034] 在試題向量空間模型中,每道試題是由相互獨(dú)立的關(guān)鍵詞Τι,Τ2,…,Tm構(gòu)成,令D = (〇1,〇2, . . .,Dn)是m個(gè)索引關(guān)鍵詞構(gòu)成的η個(gè)試題的集合,其中Dj = (dij,d2j,. . .,dmj)T是試題 向量,dij表示關(guān)鍵詞i發(fā)生在試題中的頻率權(quán)重,且1含i含m,查詢向量Q表示成Q=(qi, Q2, . . .,q")T,qi表示關(guān)鍵詞i出現(xiàn)在查詢中的頻率權(quán)重,運(yùn)樣就定義了一個(gè)m維關(guān)鍵詞內(nèi)容 向量空間,即試題關(guān)鍵字向量空間。
[0035] 對待檢測試題相似度計(jì)算,我們通過內(nèi)積公式進(jìn)行計(jì)算,設(shè)Di與町是試題的集合D 中任意兩個(gè)不相同的試題,且Di=(dii,d2i,. . .,dmi)T,Dj = (dij,d2j,. . .,dmj)T,貝帆與Dj之間 的相似度用內(nèi)積表示如下:
[0036]
[0037] 其中,dk功關(guān)鍵詞k發(fā)生在待檢測試題中的頻率權(quán)重,且1非如。
[0038] 3)將W內(nèi)積表示的相似度與重復(fù)試題闊值相比較,若不大于預(yù)先設(shè)定的重復(fù)試題 闊值,則執(zhí)行步驟4);若大于預(yù)先設(shè)定的重復(fù)試題闊值,則執(zhí)行步驟5);
[0039] 上述夾角余弦用來度量兩組向量之間夾角的大小,亦稱為相和系數(shù),夾角余弦的 幾何意義是在由N個(gè)元素組成的N維空間中,表征兩個(gè)向量之間夾角的余弦值。一般在使用 前需要對向量中的各元素進(jìn)行無量綱化處理,使各元素都為正,運(yùn)時(shí)夾角余弦的取值范圍 為[0,1],取值越大表明兩向量夾角越小,兩者越接近,值為1時(shí),兩向量完全相同。
[0040] 當(dāng)Sim(Di,Dj) <0.80時(shí),則執(zhí)行步驟4);
[0041 ]當(dāng)Sim(Di,Dj) >0.80時(shí),則執(zhí)行步驟5);
[0042] 4)兩個(gè)待檢測試題為非相似試題,則不做處理;
[0043] 5)兩個(gè)待檢測試題為相似試題,并將相似的試題加入重復(fù)試題關(guān)系數(shù)據(jù)庫;
[0044] 6)根據(jù)相似度條件,從重復(fù)試題關(guān)系數(shù)據(jù)庫中查找出滿足條件的重復(fù)試題列表;
[0045] 其中,相似度條件為本領(lǐng)域的技術(shù)人員公知的條件,故不再詳述。
[0046] 7)管理人員通過看重復(fù)試題列表進(jìn)行重復(fù)試題確認(rèn),人為判斷試題是否重復(fù),采 用人工確認(rèn)的方式可W提高重題判斷的準(zhǔn)確率,提高去除重題的精度。
[0047] 上述各實(shí)施例僅用于說明本發(fā)明,其中各部件的結(jié)構(gòu)、連接方式和制作工藝等都 是可W有所變化的,凡是在本發(fā)明技術(shù)方案的基礎(chǔ)上進(jìn)行的等同變換和改進(jìn),均不應(yīng)排除 在本發(fā)明的保護(hù)范圍之外。
【主權(quán)項(xiàng)】
1. 一種基于試題關(guān)鍵字相似性的試題庫中的試題去重方法,它包括以下步驟: 1) 采用最大正向分詞匹配算法對試題庫中的試題進(jìn)行中文分詞,中文分詞包括對試題 庫中試題的題干、試題候選項(xiàng)和試題答案進(jìn)行中文分詞,得到的分詞稱之為分詞結(jié);判斷分 詞結(jié)是否為試題關(guān)鍵詞庫中的關(guān)鍵詞,若是試題關(guān)鍵詞庫中的關(guān)鍵詞,則將其加入試題與 關(guān)鍵字的關(guān)系數(shù)據(jù)庫,且試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫包括關(guān)鍵字的出現(xiàn)頻率、關(guān)鍵字權(quán)值 以及關(guān)鍵字出現(xiàn)的順序; 其中,試題關(guān)鍵字庫中預(yù)先設(shè)定試題關(guān)鍵字; 2) 采用內(nèi)積計(jì)算試題與關(guān)鍵字的關(guān)系數(shù)據(jù)庫中任意兩個(gè)待檢測試題之間的相似度; 3) 將以內(nèi)積表示的相似度與重復(fù)試題閾值相比較,若不大于預(yù)先設(shè)定的重復(fù)試題閾 值,則執(zhí)行步驟4);若大于預(yù)先設(shè)定的重復(fù)試題閾值,則執(zhí)行步驟5); 4) 兩個(gè)待檢測試題為非相似試題,則不做處理; 5) 兩個(gè)待檢測試題為相似試題,并將相似的試題加入重復(fù)試題關(guān)系數(shù)據(jù)庫; 6) 根據(jù)相似度條件,從重復(fù)試題關(guān)系數(shù)據(jù)庫中查找出滿足條件的重復(fù)試題列表; 7) 管理人員通過看重復(fù)試題列表進(jìn)行重復(fù)試題確認(rèn),人為判斷試題是否重復(fù)。2. 根據(jù)權(quán)利要求1所述的基于試題關(guān)鍵字相似性的試題庫中的試題去重方法,其特征 在于:所述步驟3)中,判斷試題是否重復(fù)的以內(nèi)積表示的重復(fù)試題閾值為0.80。
【文檔編號】G06F17/27GK105824798SQ201610117476
【公開日】2016年8月3日
【申請日】2016年3月3日
【發(fā)明人】江龍, 李澤河, 曹俊豪, 張德剛, 王達(dá)達(dá)
【申請人】云南電網(wǎng)有限責(zé)任公司教育培訓(xùn)評價(jià)中心