張海騰,翟 潔,冷春霞
(華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海200237)
電子作業(yè)相似性檢測技術(shù)的研究與實現(xiàn)
張海騰,翟 潔,冷春霞
(華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海200237)
隨著作業(yè)數(shù)據(jù)的電子化,為了能夠更好地監(jiān)督學(xué)生的抄襲行為,本文研究了電子作業(yè)相似性檢測的相關(guān)技術(shù),分析了作業(yè)檢測的流程,給出了文本內(nèi)容提取、中文分詞、文本特征提取和文本相似性計算4個部分的關(guān)鍵技術(shù)和實現(xiàn)算法,并在此基礎(chǔ)上開發(fā)了一個作業(yè)相似性檢測系統(tǒng),實現(xiàn)了對作業(yè)文檔的對比和檢測,系統(tǒng)的實現(xiàn)為將來作業(yè)電子化進(jìn)一步發(fā)展提供了技術(shù)指導(dǎo)和理論依據(jù)。
電子作業(yè);相似性;文本檢測;作業(yè)抄襲
Abstract:With the electronic of student homework,in order to better monitor the students'copying behavior, this paper studied the related technologies of similarity detection in electronic work, analyzed the work flow of electronic homework similarity detection,and presented the key technologies of text content extraction, Chinese word segmentation, text feature extraction and text similarity calculation.On the basis of this,a homework similarity detection system was developed to implement the comparison and detection of the homework documents,the realization of the system provided the technical guidance and theoretical basis for the better development of the electronic homework in the future.
Key words:electronic homework; similarity; text detection; plagiarism
作業(yè)是老師檢驗學(xué)生學(xué)習(xí)效果的一種重要手段,當(dāng)前隨著網(wǎng)絡(luò)的不斷普及,大學(xué)教學(xué)當(dāng)中,老師和學(xué)生之間作業(yè)的互動模式也產(chǎn)生了很大的變化,很多時候,學(xué)生的作業(yè)不再需要手工書寫去完成,而是借助于各種電子寫作工具去完成,學(xué)生提交作業(yè)不再是手工提交,而是借助于各種作業(yè)管理平臺進(jìn)行在線提交[1]。但是,隨著師生之間作業(yè)互動模式發(fā)生變革的同時,也產(chǎn)生了一些新的問題,一些學(xué)生會以其他學(xué)生的作業(yè)文檔作為模板,只做少量甚至不做修改就交給老師,這種行為嚴(yán)重地影響了老師的教學(xué)效果,對學(xué)生自身的學(xué)習(xí)也是有害的。
綜上所述,在當(dāng)今的信息時代,如何針對作業(yè)大數(shù)據(jù)進(jìn)行相似性檢測成為了一個重要的研究課題,也是提高高校教育教學(xué)效率和質(zhì)量的一個重要課題[2]。因此,針對上述問題,設(shè)計一個電子作業(yè)相似性檢測系統(tǒng),實現(xiàn)對學(xué)生的作業(yè)相似性進(jìn)行自動比對,這樣一方面能夠幫助教師從大量作業(yè)中找出有抄襲嫌疑的作業(yè)對象,減輕教師的工作負(fù)擔(dān),提高教師工作效率;另一方面,作業(yè)相似性檢測系統(tǒng)的使用也可以較好地遏制學(xué)生抄襲作業(yè)的行為,促進(jìn)學(xué)生去獨(dú)立完成作業(yè),對提高學(xué)生的學(xué)習(xí)成績也有很大的幫助。
實現(xiàn)作業(yè)相似性檢測的主要目的就是針對一個作業(yè)集當(dāng)中的作業(yè)進(jìn)行兩兩比對,度量兩個文檔內(nèi)容之間的相關(guān)程度,并用一個具體的數(shù)值量化這兩個文檔間的相似性。相似性越高,表示這兩個作業(yè)中共同的元素越多,作業(yè)抄襲的可能性就越大,反之,相似性越低,則表示這兩個作業(yè)文檔的內(nèi)容重復(fù)性較少,作業(yè)抄襲的可能性就越小。
實現(xiàn)作業(yè)相似性檢測的工作流程如圖1所示。首先要提取出作業(yè)文本中的主要內(nèi)容,并對這些文本進(jìn)行分詞操作,切割出文檔中的關(guān)鍵詞語,統(tǒng)計出有效的關(guān)鍵詞作為文本的特征項,然后計算出這些特征項的權(quán)重,并利用信息模型領(lǐng)域廣泛使用的向量空間來表示文本的內(nèi)容,文本就可以被看作是由一組互相獨(dú)立的詞項組成的向量空間集,每個文本被表示成文本特征項及相應(yīng)權(quán)重所組成的一個向量,這樣通過向量間距離的計算就可以求得兩個文本之間的相似性。
圖1 作業(yè)相似性檢測流程圖
對于作業(yè)文本,相似性檢測的首要工作就是要提取出相應(yīng)電子文本的正文內(nèi)容,這是文本相似性檢測的前提。要想提取文本的主題內(nèi)容就必須首先分析文本內(nèi)容的語法結(jié)構(gòu)。實際操作中,學(xué)生提交的作業(yè),一般是兩種類型的文檔,一種是Word文檔,一種是PDF文檔。
Word文檔中包含了一系列可操作的對象庫,例如,Application對象用來表示W(wǎng)ord應(yīng)用程序,Document對象用來表示當(dāng)前文檔,Paragraph對象用來表示選定的內(nèi)容或者段落。了解了Word文檔的這些可操作對象庫以后,就可以通過操作不同的對象來對文檔進(jìn)行相應(yīng)的操作。目前針對Word文檔的讀取操作主要采用第三方的Apache POI[3]組件,該組件是一個Apache的開源項目,它提供了API給Java語言,以實現(xiàn)對Microsoft的Office文檔進(jìn)行讀寫操作。
PDF文檔也是常見的作業(yè)文檔提交形式,如果要抽取它的文本內(nèi)容,需要解析PDF文檔的格式。PDF文檔包含了多種對象類型,并且將文字、格式、字型、顏色以及獨(dú)立于設(shè)備和分辨率的多種圖形圖像元素封裝起來。對于PDF文檔內(nèi)容的提取,可以借助PDFBox[4]完成,PDFBox也是一個開源項目,它為開發(fā)人員讀取和創(chuàng)建PDF文檔提供了純Java類庫。它具有提取PDF文檔的文本內(nèi)容、對PDF文檔文檔進(jìn)行加密和解密,將一個PDF文檔切割成多個文檔,將PDF文檔轉(zhuǎn)換成文本文檔或者將文本文檔轉(zhuǎn)換成PDF文檔等多個特性。
中文分詞是作業(yè)文本處理中的一個重要環(huán)節(jié),分詞的主要目的是采用某種技術(shù)和方法將指定的文本序列切割成有一個個具有獨(dú)立意義的詞語[5]。除此之外,中文分詞還包括去除停用詞、去除標(biāo)點(diǎn)符號等多個方面的工作。
中文分詞領(lǐng)域里廣泛采用的方法是基于詞典的分詞方法[6]。該方法的基本思想是以漢語詞典作為基礎(chǔ),采用一定的匹配策略將需要分詞的作業(yè)文本串與詞典當(dāng)中的詞條進(jìn)行匹配,如果能在詞典中匹配到某個字符串,就把相應(yīng)的字符串切割出來[7]。本文在匹配時采取了正向掃描和最大匹配的策略。首先從左至右對作業(yè)文本中的字符串逐一進(jìn)行掃描,取出文本中的第一個字,將這個字與詞典中的詞條進(jìn)行匹配,查看該字是否存在于詞典當(dāng)中,如果不存在,則該字被舍棄掉,如果存在,則標(biāo)記這個字,繼續(xù)從文本中讀出下一個字,與前面的字組成新詞,并與詞典中的詞條再次匹配,依此類推,逐字增加,直到不能匹配到為止,這些字組成的最大匹配詞被分割出來,一次分詞結(jié)束。繼續(xù)掃描剩余的文本內(nèi)容,重復(fù)上面的操作,直到文本末尾,這樣,作業(yè)文本中的詞條被一個個切分出來。基于詞典的分詞方法實現(xiàn)起來較為簡單,分詞也較為準(zhǔn)確,與其他方法比較具有較為明顯的優(yōu)點(diǎn),因此本文中使用該方法完成作業(yè)文本內(nèi)容的分詞操作。
作業(yè)文本相似性檢測中,如果對兩個完整的作業(yè)文本中的所有詞條進(jìn)行完全比對,計算的復(fù)雜度比較大,因此需要從待檢測文檔中抽取出最具有代表性的詞條組成文本的特征項集合,這些特征項集合能夠反映出整篇文本的內(nèi)容和特點(diǎn)。實際操作中,文本特征提取的常用方法是:首先通過中文分詞方法得到文檔中的所有詞條,剔除不必要的詞,并計算每個詞條的權(quán)重,當(dāng)某些詞條被賦予了較低的權(quán)重時,表示它們在整個文檔中具有較少的代表性,不適合將這些詞作為特征項,需要將這些詞條從原始的特征空間當(dāng)中剔除。通過這種方法,可以有效地降低特征空間的維數(shù)。
目前計算文檔中詞條權(quán)重最為廣泛使用的方法是TF-IDF (Term Frequency-Inverse Document Frequency)方法[8],TF(Term Frequency)稱為詞頻,指某個詞條在給定文本中出現(xiàn)的頻數(shù),頻數(shù)越高,表明該詞條在給定文本中的重要性越大。IDF(Inverse Document Frequency)稱為反文檔頻度,用來表示一個特定詞條在整個文本集中出現(xiàn)的頻數(shù),該詞條在文本集中出現(xiàn)的頻數(shù)越高,則表示該詞條的區(qū)分能力越弱[9]。本文中使用TF-IDF方法計算權(quán)重的公式為wi=tfi×idfi;其中wi表示文本中第i個特征項的權(quán)重,tfi表示第i個特征項在文本中的頻數(shù),idfi表示第i個特征項的反比文本頻數(shù)。TF-IDF方法表明,如果某個詞條在當(dāng)前文本中出現(xiàn)的頻數(shù)較高,而在整個文本集中出現(xiàn)的頻數(shù)較低,說明這個詞條表達(dá)該文本主題內(nèi)容的能力越強(qiáng)[10]。
將特征項和特征項的權(quán)重綜合起來,一個作業(yè)文檔就可以表示為:D=(t1,w1;t2,w2;…;ti,wi;…;tn,wn),其中ti表示第i個特征項,wi表示ti在文檔D中的權(quán)重值。 如果把 t1,t2,…ti,…tn,看作一個 n 維坐標(biāo)系中的坐標(biāo)軸,w1,w2,…,wi…wn是對應(yīng)的坐標(biāo)值,那么由 t1,t2,…ti,…tn分解得到的正交矢量組就構(gòu)成了一個文檔的向量空間。應(yīng)用向量空間來表示作業(yè)文檔,能夠較為準(zhǔn)確地體現(xiàn)出文檔的特征,還能方便地用它來完成對文檔的分類和聚類等工作,所以本文中采用向量空間模型來表示文本是較為理想的方法。
當(dāng)把每個作業(yè)文本用特征項及其權(quán)重表示為一個向量空間后,作業(yè)文本相似性檢測的問題就轉(zhuǎn)換為了向量空間的運(yùn)算問題[11]。兩個文檔內(nèi)容間的相似性,可以借助于向量之間的距離來表示[12]。向量之間的距離通常用向量之間的內(nèi)積或者夾角余弦值來度量[13]。
假設(shè)兩個作業(yè)文本 D1(w11,w12,…w1i,…,w1n)和D2(w21,w22,…w2i,…,w2n),w1i表示文本 D1中特征項的權(quán)重,w2i,表示文本D2中特征項的權(quán)重,則兩個文本的相似性用向量的內(nèi)積來計算得到,公式為:也可以使用夾角余弦值計算得到,公式為
除此之外,還有一些采用其他的文檔距離計算方法,如:數(shù)量積法、相關(guān)系數(shù)法、指數(shù)相似系數(shù)法、最大-最小法、幾何平均最小法、算術(shù)平均最小法等,這些算法可以用來更好的改進(jìn)文本相似度的計算結(jié)果[14]。
基于以上技術(shù)的分析,本文基于JAVA EE[15]實現(xiàn)了一個B/S結(jié)構(gòu)的電子作業(yè)相似性檢測系統(tǒng),當(dāng)用戶登錄成功后,點(diǎn)擊作業(yè)檢測功能,出現(xiàn)作業(yè)檢測頁面如圖2所示。用戶可以在左右兩側(cè)分別提交需要進(jìn)行相似性檢測的兩個文檔,文檔類型可以為Word或者PDF格式。文檔提交后,系統(tǒng)可以自動提取出文檔的內(nèi)容,并顯示出來。點(diǎn)擊開始比較按鈕后,系統(tǒng)開始進(jìn)行文檔的相似性檢測,并顯示出檢測結(jié)果。如圖2所示,文檔中不相同的部分,用帶下劃線的文字在兩個文檔中顯示出來。
圖2 作業(yè)相似性檢測結(jié)果
本文分析了當(dāng)前電子作業(yè)存在的問題,給出了電子作業(yè)相似性檢測的工作流程,并對其中涉及到的關(guān)鍵技術(shù),如文本內(nèi)容提取、中文分詞、文本特征提取和文本相似性計算方法進(jìn)行了研究和探討,最后綜合運(yùn)用以上技術(shù)實現(xiàn)了一個作業(yè)相似性檢測系統(tǒng),并給出了檢測結(jié)果顯示,為作業(yè)電子化的進(jìn)一步發(fā)展提供了強(qiáng)有力的技術(shù)保障。
[1]馮凌凌,劉海霞.大數(shù)據(jù)環(huán)境下作業(yè)抄襲檢測研究[J].考試周刊,2015(51):128-129.
[2]劉曉環(huán),梁云,吳穎.自然語言文檔復(fù)制檢測技術(shù)研究[J].電信技術(shù)研究,2011(4):15-20.
[3]apache.The Apache POI project[EB/OL].http://poi.apache.org/,2012-02-01.
[4]牛永潔,薛蘇琴.基于PDFBox抽取學(xué)術(shù)論文信息的實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2014,24(12):61-63.
[5]莫建文,鄭陽,首照宇,等.改進(jìn)的基于詞典的中文分詞方法[J].計算機(jī)工程與設(shè)計,2013,34(5):1802-1807.
[6]江華麗.中文分詞算法研究與分析[J].物聯(lián)網(wǎng)技術(shù),2016,6(1):87-89.
[7]馮永,李華,鐘將,等.基于自適應(yīng)中文分詞和近似SVM的文本分類算法[J].計算機(jī)科學(xué),2010(1):251-254.
[8]王慶福,常廣炎.基于TF-IDF優(yōu)化算法在文本分類中的應(yīng)用研究[J].電腦編程技巧與維護(hù),2014(10):11-12.
[9]張瑾.基于改進(jìn)TF-IDF算法的情報關(guān)鍵詞提取方法[J].情報雜志,2014,33(4):153-155.
[10]張保富,施化吉,馬素琴.基于TF-IDF文本特征加權(quán)方法的改進(jìn)研究[J].計算機(jī)應(yīng)用與軟件,2011,2(2):17-20.
[11]趙華茗.分布式環(huán)境下的文檔相似度研究與實現(xiàn)[J].現(xiàn)代圖書情報技術(shù),2011(7):14-20.
[12]薛蘇琴,牛永潔.基于向量空間模型的中文文本相似度的研究 [J].電子設(shè)計工程,2016,24(10):28-31.
[13]胡偉偉,孫遜,王婷婷.基于向量空間模型的項目申報書查重系統(tǒng)設(shè)計[J].天津科技,2015,42(8):33-34.
[14]李連,朱愛紅,蘇濤.一種改進(jìn)的基于向量空間文本相似度算法的研究與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2012,29(2):282-284.
[15]王國輝.Java Web開發(fā)實戰(zhàn)寶典[M].北京:清華大學(xué)出版社,2010.
Research and implementation on similarity detection of electronic homework
ZHANG Hai-teng, ZHAI Jie, LENG Chun-xia
(Academy of Information Science and Engineering,East China University of Science and Technology,Shanghai200237,China)
TN02
A
1674-6236(2017)19-0043-03
2016-08-03稿件編號201608026
上海市經(jīng)濟(jì)和信息化委員會軟件集成電路專項資金(150809)
張海騰(1976—),女,山西孝義人,博士,講師。研究方向:服務(wù)計算,智能學(xué)習(xí)。