亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        相似度算法在源程序比較中的應(yīng)用

        2016-10-18 23:20:17朱利龍
        電腦知識與技術(shù) 2016年21期
        關(guān)鍵詞:相似度

        朱利龍

        "

        摘要:在計算機(jī)程序課的教學(xué)過程中,時常需要對學(xué)生所提交的源程序進(jìn)行檢查,特別是源程序的重復(fù)率檢查。純?nèi)斯Ρ炔坏ㄙM時間長,而且效率低下。因此,本文提出利用文本相似度算法解決源程序?qū)Ρ鹊姆椒?,并設(shè)計出相應(yīng)的源程序比較系統(tǒng),來幫助老師從繁重的工作中解脫出來。

        關(guān)鍵詞: 相似度;距離編輯算法;源程序?qū)Ρ?/p>

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)21-0214-01

        源程序?qū)Ρ确治鍪且粋€復(fù)雜的過程,不僅需要考慮實用性和考慮準(zhǔn)確性,而且還要兼顧運行效率等問題。在程序上機(jī)課的過程性考核中,很多同學(xué)提交的程序源代碼之間重復(fù)率很高。本文借助計算機(jī)實現(xiàn)源程序的自動對比,不但可以降低勞動強(qiáng)度,提高工作效率,而且可以減少誤判的可能性,進(jìn)一步保證源程序?qū)Ρ冉Y(jié)果的正確性。

        1 特征提取

        要獲取源程序重復(fù)率,判斷是否抄襲程度,可以通過計算源程序的相似率來代替。相似率越高說明源程序重復(fù)部分越多,學(xué)生抄襲的可能性越高。要計算代碼的相似率,就得提取源代碼的有關(guān)特征參數(shù)。

        根據(jù)源程序塊粒度大小不同,可以利用源程序中諸如換行符之類的分割符來分解成程序語句,分解得到的每一部分稱為一個程序塊。源程序塊的選擇將在很大程度上影響程序的效率,要比較源程序部分復(fù)制,就必須減少源程序塊的長度。本文將每一個語句看成一個源程序塊,即粒度大小為一條語句。于是,源程序就被分解為語句集合,源程序的相似程度便可以由語句的相似率來計算。因此,對于源程序的對比,選擇程序語句作為源程序的對比粒度塊是具有可行性的。

        本文系統(tǒng)采用的是距離編輯算法,利用字符串的模式匹配實現(xiàn)對源程序相似度進(jìn)行判斷。把兩篇源程序進(jìn)行全文對比得出相似度;得出相似度后,根據(jù)源程序分隔符把兩源程序分割成逐條語句的,然后對這些語句進(jìn)行一一對比,得出語句的相似度;比較出來的超過語句的相似度的語句稱為相似句,把相似句對應(yīng)的原句進(jìn)行紅色標(biāo)記;統(tǒng)計出相似句對應(yīng)原句占原源程序的比例,在比較中可以通過紅色顯示相同。

        2 距離編輯算法

        距離編輯算法,簡稱為LD算法。該方法主要從源程序中選取一些源程序塊,利用LD算法比較兩源程序塊字符串的相似性,由此得出比較子串相似度(即子串間的距離)。兩個字符串距離就是一個字符串轉(zhuǎn)換成另一個字符串過程中,進(jìn)行添加、刪除、修改等基本操作的次數(shù),將源程序的語句作為字符串,借助LD算法對比代碼間的距離,然后計算取其占代碼長度的比例作為判斷代碼重復(fù)率,從而即可得到學(xué)生源程序的抄襲程度。如果兩個源程序字符串的距離越大,就說明他們越不同。

        該算法對兩個字符串(句子或整篇源程序)進(jìn)行對比,得出兩個字符串之間的“距離”,然后根據(jù)相似度計算公式計算出兩個字符串之間的相似度。下面給出了在Visual Basic編程環(huán)境下,利用遞歸法實現(xiàn)的算法代碼。

        Dim mA() As Byte,mB() As Byte 模塊級變量,存放語句單元

        計算編輯距離函數(shù)LD

        Public Function LD(ByVal A As String,ByVal B As String) As Integer

        mA = StrConv(A,vbFromUnicode) :mB = StrConv(B,vbFromUnicode)

        ReDim L(Len(A),Len(B)) As Integer

        For i = 1 To Len(A)

        L(i, 0) = i

        Next

        For j = 1 To Len(B)

        L(0, j) = j

        Next

        For I = 1 To Len(A)

        For j = 1 To Len(B)

        If mA(I - 1) = mB(j - 1) Then

        L(I, j) = L(I - 1, j - 1)

        Else

        L(I, j) = Min(L(I - 1, j - 1), L(I - 1, j), L(I, j - 1)) + 1

        End If

        Next

        Next

        LD = L(Len(A), Len(B))

        End Function

        計算最小值函數(shù)Min

        Public Function Min(ByVal A As Integer,ByVal B As Integer,ByVal C As Integer) As Integer

        Min = IIF(A > B,A,B) :Min = IIF(Min < C,Min,C)

        End Function

        3 源程序比較過程

        在上述算法的基礎(chǔ)上,本文所設(shè)計的源程序比較系統(tǒng)主要有三個步驟,該系統(tǒng)所對應(yīng)的流程圖見圖1。

        1)從存放源程序的數(shù)據(jù)庫里取出程序代碼,構(gòu)成源程序集合。學(xué)生提交的程序代碼都會被提煉出主要部分匯總到程序數(shù)據(jù)庫中。在后期進(jìn)行代碼對比時,就可以直接從數(shù)據(jù)庫中讀取學(xué)生提交的源代碼,甚至可以用于年級之間學(xué)生編程能力的縱向比較。

        2)分割源程序并從中提取特征參數(shù)。本文使用語句結(jié)束標(biāo)記或其他代碼間隔符(如“空格”“換行”等)作為語句的天然分割符,刨除源程序中影響對比操作的無用代碼,即程序通用框架部分,例如集成開發(fā)工具產(chǎn)生的代碼,只保留學(xué)生自己編寫的主要代碼,然后借助系統(tǒng)提取相關(guān)的特征參數(shù)。

        3)計算源程序相似度。從上一步分割得到的語句集合,計算出語句之間的編輯距離,其占語句長度的百分比即為語句相似度;將所有語句間的編輯距離累加作為源程序間的編輯距離,其占源程序代碼長度的百分比就是源程序間的相似度;若相似度量值大于教師所給定的臨界值,說明程序代碼間的重復(fù)率過高,學(xué)生存在復(fù)制抄襲的可能,并通過顏色標(biāo)示出重復(fù)部分,從而達(dá)到系統(tǒng)自動對比源程序的目的,而且可以提高學(xué)生的自律性和積極性。

        4 總結(jié)

        本文所設(shè)計的源程序比較系統(tǒng),在程序類課程的教學(xué)過程中,已經(jīng)作為該類課程過程考核手段之一,不僅幫助老師從繁重的工作中解脫出來,而且提高了學(xué)生的學(xué)習(xí)積極性。在今后將逐步引入數(shù)據(jù)挖掘的處理過程,以便可以實現(xiàn)程序類課程教學(xué)效果的縱向?qū)Ρ?,從而更好促進(jìn)程序類教學(xué)。

        參考文獻(xiàn):

        [1] 李俊民,趙東. 零基礎(chǔ)學(xué)Visual Basic[M].北京:機(jī)械工業(yè)出版社,2010.

        [2] 劉宏哲. 文本語義相似度計算[M]. 北京:電子工業(yè)出版,2014.

        [3] 張憲超. 數(shù)據(jù)結(jié)構(gòu)、算法及應(yīng)用[M].北京:科學(xué)出版社,2012.

        [4] 程海濤,王俏,盧亮,等.探索Visual Basic教學(xué)方法改革[J].科技信息,2011(12):225.

        猜你喜歡
        相似度
        改進(jìn)的協(xié)同過濾推薦算法
        模糊Petri網(wǎng)在油田開發(fā)設(shè)計領(lǐng)域的應(yīng)用研究
        基于混合信任模型的協(xié)同過濾推薦算法
        基于灰度的圖像邊緣檢測與匹配算法的研究
        句子比較相似度的算法實現(xiàn)?
        影響母線負(fù)荷預(yù)測的因素及改進(jìn)措施
        科技視界(2016年10期)2016-04-26 11:40:14
        基于粗糙集的麗江房價研究
        一種基于深網(wǎng)的個性化信息爬取方法
        復(fù)雜網(wǎng)絡(luò)全局拓?fù)湎嗨贫扔嬎惴椒▽嵶C研究
        軟件(2015年9期)2015-12-25 07:46:49
        基于貝葉斯網(wǎng)絡(luò)的協(xié)同過濾推薦算法
        中国少妇内射xxxx狠干| 日韩精品一区二区三区av| 国产精品亚洲一区二区三区16| 凹凸国产熟女精品视频app| 国产乱色精品成人免费视频| 亚洲中文欧美日韩在线人| av在线男人的免费天堂| 亚洲悠悠色综合中文字幕| 在线成人一区二区| 色诱久久av| 伊人影院在线观看不卡| 精品人妻一区二区三区视频| 中文字幕乱码无码人妻系列蜜桃 | 国产成人自拍视频在线免费| 日本成人午夜一区二区三区| 国产免费艾彩sm调教视频| 欧美国产日产一区二区 | 狠狠色欧美亚洲狠狠色www| 天堂8中文在线最新版在线| 秋霞日韩一区二区三区在线观看| 精品久久人妻一区二区| 无码乱肉视频免费大全合集| 亚洲熟伦熟女新五十路熟妇| 无码吃奶揉捏奶头高潮视频| 人妻精品一区二区三区蜜桃| 少妇人妻在线无码天堂视频网| 久久久国产精品ⅤA麻豆| 永久免费在线观看蜜桃视频| 蜜桃一区二区三区视频网址| 色一情一乱一乱一区99av| 精品熟女少妇免费久久| 国产在线观看女主播户外| 亚洲女同一区二区| a毛片全部免费播放| 亚洲高清av一区二区| 国产在线观看免费视频软件| 亚洲午夜精品a片久久www慈禧| 五月天综合社区| 婷婷开心五月亚洲综合| 亚洲乱亚洲乱妇| 欧美亚洲午夜|