时间:2014-05-01 编辑整理:早检测网 来源:早检测网
剽窃他人研究成果,篡改或伪造数据并继续发表,给学术研究带来严重危害。建立一种快速、准确的论文抄袭检测模型具有现实意义,论文抄袭检测算法已成为当前研究的热点。与英文学术论文不同,中文学术论文语法形式灵活多变,语用歧义性大,且词与词之间无明显分隔,所以检测难度较大。目前针对中文的检测方法主要包括篇章结构相似度方法、段落相似度方法和句子相似度方法[1]。其中句子相似度方法结构划分合理,检测精度较高,较其他方法有明显优势。句子相似度的计算方法主要有词频统计方法、语义词典方法、依存树方法和编辑距离方法。词频统计方法[2]采用基于向量空间模型的TF-IDF 方法,将句子看作由独立词条组成的向量空间,用点积法和余弦法计算相似度。该方法丢失文档结构信息,且检测速度较低。语义词典方法[3]主要利用语义资源,通过计算句中词语相似度来计算句子的相似度。该方法对于一些存在对义或反义的词语识别率较低,不利于词语的极性判断。依存树方法[4]的句法结构用句子谓语中心词及其直接支配成分来表示,分析结果可看作一棵简化了的依存树,以此计算依存树之间的相似度。该方法对句子各成分间依存关系分析的准确率不高,导致实际应用性不强。编辑距离方法[5]以普通编辑距离算法为基础,用词语取代单个的汉字或字符作为基本的编辑单元参与运算,加入词语的语义相似信息确定词语之间的替换代价。该方法没有考虑句子中不同词语对整体文档贡献的不一致,也未能兼顾归一化问题。上述算法适用于词条空间维数小且依赖程度较高的样本,侧重理解句子的语义信息,计算代价较高。
本文提出了一种新的论文抄袭检测模型,首先通过局部词频指纹算法(Local Word-Frequency Fingerprint,LWFF)对大规模文档进行快速检测,找出疑似抄袭文档。然后利用最长有序公共子序列算法(Longest Sorted Common Subsequence,LSCS)对疑似抄袭文档内容进行精确检测,标注抄袭细节。该模型改进了前面几种检测方法结构不合理、精度不高等问题,在标准中文数据集SOGOU-T上进行的实验表明,该算法具有较高的准确率和召回率。
局部词频指纹算法的思想是将句子看成文档的基本构成元素,对其进行有效关键词提取,并排序重构,根据编码和词频联合方式获取句子指纹,以此计算文本间相似度。以句子为单位生成向量空间模型,将一篇文档看作若干句子的集合D,D=i = 1NSi 。其中,N 为句子个数,Si = (w1....w2....wj....wn) ,wj 为句子Si 中第j 个非重复关键词的权重,根据公式(1)计算
权重。
其中,Enc(kj) 为关键字词kj 的编码,tfj(S) 为关键词kj 在句子中出现的频率,N 为文档中句子的总数,nj 为kj 出现的次数。根据公式(2)计算每个向量的指纹fpi 。
其中,n 为句子Si 中非重复关键词的个数,p 为一个32 位或64位的大质数。选取全指纹,将待检测文档与样本库中每一文档进行检测。利用公式(3)计算文档相似度[6]。
其中,FP(Ax) 和FP(Bx) 为文档A、B 生成的指纹集合。利用d(AB) = 1 - sim(AB) 计算文档之间的相似距离,根据相似距离d(AB) 确定文档抄袭程度。
LWFF算法能够从大规模样本中快速检测出疑似抄袭文档,但并未对局部语句相似作进一步研究,没有给出抄袭细节,而对句子相似度的检测能够解决这个问题。由LWFF算法确定被检测目标文档属于抄袭后,利用最长有序公共子序列算法来计算句子相似度,标注抄袭细节。
最长公共子序列[7]是计算文档句子相似度的有效手段,解最长公共子序列问题的常规方法是穷举搜索法,但该方法需要指数时间。最长公共子序列问题存在最优子结构性质[8],设序列X =< x1x2xm > 和Y =< y1y2yn > 的一个最长公共子序列Z =< z1z2zk > ,则:
若xm = yn ,则zk = xm = yn 且zk - 1 是Xm- 1 和Yn - 1 的最长公共子序列;
若xm ¹ yn 且zk ¹ xm ,则Z 是Xm- 1 和Y 的最长公共子序列;
若xm ¹ yn 且zk ¹ yn ,则Z 是X 和Yn - 1 的最长公共子序列。
其中Xm- 1 =< x1,x2,....xm- 1 >,Yn - 1 =< y1,y2,.....y n - 1>,Zk - 1 =< z1z2.....z k - 1> 。
要找出X =< x1x2xm > 和Y =< y1y2yn > 的最长公共子序列,可按以下方式递归地进行:当xm = yn 时,找出Xm- 1和Yn - 1 的最长公共子序列,然后在其尾部加上xm 或yn 即可得到。当xm ¹ yn 时,必须解两个子问题,即找出Xm- 1 和Y 的个最长公共子序列及X 和Yn - 1 的一个最长公共子序列,这两个公共子序列中较长者即为X 和Y 的一个最长公共子序列。由于在所考虑的子问题空间中,总共有θ(m´ n) 个不同的子问题,算法的时间复杂度要达到O(mn) 。
用动态规划算法自底向上计算最优值能提高算法的效率,将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从m´ n 个子问题的解得到原问题的解。对于重复出现的子问题,只在首次出现时对它求解,并将结果保存,当再次遇到时直接引用结果,利用动态规划算法可将时间复杂度减少至O(m´ n) 。
通过计算两个句子的最长公共子序列,可以获取语句间的重复信息,但动态规划算法计算代价较高,不适合用于大规模文档检测,为此本文提出了一种有序的最长公共子序列算法。
定义1 经过LWFF算法检测属于抄袭的文档称为目标文档(Destination Text,DT)。作为检测依据的文档称为源文档(Source Text,ST)。
设DT 中任一语句块X =< x1x2xm > 和ST 中任一语句块Y =< y1y2yn > 已具有相同次序,其中xi(i = 12m)和yj( j = 12n) 分别为语句块X 和Y 中的有效词元素,并已按关键词词性ID[9]排序。接下来计算X 和Y 的最长公共子序列。此问题归结为串匹配问题,一个典型的计算方法是Brute-Force 方法,从目标串S = "s0s1sn - 1" 的第一个字符开始和模式串T = "t0t1tm- 1" 中的第一个字符比较,若相等,则继续逐个比较后续字符,否则,从目标串S 的第2 个字符开始重新与模式串T 的第一个字符进行比较,依次类推,若从模式串S的第i 个字符开始,每个字符依次和目标串T 中的对应字符相等,则匹配成功,否则失败。由于已对语句块元素进行排序,所以不存在指针回溯问题,使该算法效率大大提高,时间复杂度可以达到O(m+ n) 。
步骤1 将源文档ST 和目标文档DT 以句子为单位进行预处理,分词,去除虚词和停用词,保留部分记为关键词。
步骤2 将每句看作一个语句块,并按关键词词性ID 排序。
步骤3 从目标文档DT 中提取句子Xi ,从源文档ST 中提取句子Yj 计算最长公共子序列Zk 。
步骤4 根据Zk ,计算Xi 和Yj 的相似度:
步骤5 句子相似度阈值为k ,若大于k ,则认为两句相似,输出XiYj 以及公共序列Zk ;否则,认为两句不相似,进行下一句判断。
根据LSCS算法,能够得到两篇论文的语句相似信息和重复内容依据,为检测抄袭行为提供更细致的证据。
本文实验所用语料为标准中文数据集SOGOU-T,从中选取800 篇文档作为基础数据集(Fundamental Datasets,FD),经LWFF 算法预处理后形成指纹存入数据库,作为抄袭检测依据。测试文档集由两部分文档组成:一部分从基础数据集中选取(400 篇),并作定不同种类的修改,构成论文抄袭集(Mod-ify Texts,MT);另一部分从SOGOU-T中随机选取(80 篇),构成随机测试集(Random Texts,RT)。定义2 RTn 表示从随机集RT 中选取n 个文档;MTin 表示从抄袭集MT 中选取n 个作第i 类修改的文档,操作种类见表1 。
实验中采用通用的准确率、召回率和F1 作为评价指标[10]。
A =检测相似且实际也相似的文档数
B =检测相似但实际不相似的文档数
C =实际相似但检测不相似的文档数
实验环境为CPU Pentium 2.93 GHz ,内存1 GB ,操作系统Windows XP。语句相似距离阈值k 取0.4 。表2 给出了本文模型在作不同修改测试集上进行检测的准确率、召回率和F1 值。
表3 给出了本文模型和其他算法在准确率、召回率和F1值三个检测参数上的对比。
实验结果表明,本文模型较词频统计和语义词典方法有较高的准确率、召回率和F1 值,弥补了其他方法对语句表层信息挖掘能力的不足,实现了对目标文档的局部精确检测,并对抄袭内容作详细标注。检测速度高于语义词典,但略低于词频统计方法,其原因是本文模型除了词频统计外,还要作疑似抄袭文档的精确检测。
提出了一种基于句子相似度的论文抄袭检测模型,首先用LWFF算法确定被检测目标文档是否属于抄袭,然后利用最长有序公共子序列算法来计算句子间相似度,实现了对目标文档(DT)抄袭细节的标注。在一定程度上克服了其他算法对句子局部信息挖掘能力的不足,提高了检测精度。在标准中文数据集SOGOU-T上的检测结果验证了该模型的有效性,一定程度上优于词频统计方法和语义词典方法,但有些问题还有待进一步研究,如构建句子语义相似度快速检测模型,以及求解某一语句唯一最长有序公共子序列等。
冷强奎1,秦玉平1,王春立2
1.渤海大学信息科学与工程学院,辽宁锦州121000
2.大连海事大学信息科学技术学院,辽宁大连116026