基于句子相似度语句定位的文本作业检测技术
要:结合词频统计和字符串比较算法优缺点,提出一种改进的基于句子相似度语句定位的文本作业检测技术,技术实现主要包括文本块选择、相似度度量和语句定位等。
关键词:粒度;阀值;相似度;语句定位
中图分类号:tp391.1 文献标识码:a 文章编号:1007-9599 2013 04-0000-02
1 引言
现有文档复制检测技术主要有两大类,分别是基于词频统计法和基于字符串比较的方法。基于词频统计法能够较好的顾及文本的整体信息,对于文档中句子间的部分抄袭现象也能够有效的检测出来,但是该方法的误判率比较高。因为单个词语并不能够准确表达语义关系,因而对于文本内容的信息的判断存在不足,因此该方法检测精度不高。由于学生作业是围绕同一个主题而写的,使用的参考文献也大部分相同,因此其中存在大量的相同关键词,如果仅仅根据相似词语的数量来判断两片文档间的相似程度,而不去考虑语义关系,则将存在很高的误判率,即大部分学生都被误判成相互抄袭。基于字符串比较的方法能够弥补基于词频统计法的不能够准
确表达语义关系的缺陷。并且采用基于字符串比较的方法计算速度也比较块,并且可以很好的顾及文本全局信息。但是对于文本块的选取是一个难点。如果文本块粒度选取太粗,容易检测出文档复制的机率,往往会漏掉对于局部修改复制;如果文本块粒度选取太细,对文档匹配出错机率越大,可能造成误判。如cops系统将一个句子划分成一个文本块,能够很好检测重度抄袭。但是句子做局部修改后,将不能检测出其相似性。
2 算法改进
结合已有算法的优缺点,并在其基础上进行改进,可以设计出一种基于句子相似度语句定位的算法。改进后的文档复制检测算法遵循几个原则:1)对非关键或非重要信息反应不敏锐。在对中文文档进行检测时,如果遇到多余空格或多余标点符号检测结果不会受到影响。2)噪声抑制。字数较少的句子往往不包含任何语义,可以去掉这些句子。然而在对比中往往容易被匹配上而造成误判。因此去除文档中字数较少的句子,能够有效提高检测速率和精确度。3)文本块的独立性和健壮性。文本块的独立性表现在,对作业内容做粗粒度重排列后不会影响到文本块的选取,或影响很小。文本块的健壮性表现在,对文本块内容做少量的修改,如添加或删除某个字词并不影响检测结果或影响很少。4)保持文档的结构特征。文
档结构特征涵盖了文档的全局信息,是判断两篇文档是否抄袭的重要依据。词频统计法忽略了文章中的语义信息,从而忽略了整篇文档的结构特征。因此保持文档的结构特征十分重要。
总之,如果文本块选取粒度过细,则不容易保持文档的结构特征。如果文本块选取粒度太粗,则文本块的独立性和健壮性将会很差,容易造成漏判。应该在两者之间选取一个折衷点。依据上述原则,提出一种改进的基于句子相似度检测的技术。学生提交作业,便将其作业内容存入参照文档库中。对文档进行抄袭检测时,可从参照文档库中直接读取检测文档和参照文档。接着,用标点符号对文档进行分割,将文中句子取出作为文本块。去掉对文档全局信息表达无关的句子,提高检测的速率和精度。然后把处理后的文本块作为文档特征。最后,对提取出来的文档计算相似度,通过两两对比两篇文档的文档特征,统计出相似句子占两篇文档句子总数的比率,然后将比率与用户设定的阈值进行对比,从而判断是否存在抄袭现象。用户可以根据需求查看疑似句子的疑似出处,并定位到被抄袭文档及其句子具体位置,从而对文档的抄袭程度做出准确的检测。
3 技术实现
技术实现的关键技术有文本块选择技术、文档相似度度量技术和相似语句定位技术等。字符串长度统计
3.1 文本块的选择技术。现有的文档文本块选取方法有基于段落的文本块选取、基于句子的文本块选取、基于词语的文本块选取等。文本块选择的粗细程度对检测速率和检测精度都有重要的影响。假如文本块选择粒度太大,相应的文本块的比较次数就很少,就很难发现部分抄袭现象,并且对于文档修改的敏感度太高,容易出现漏判现象;假如文本块选择粒度太小,可以很容易发现部分抄袭行为,但却需要消耗大量性能对文本块进行比较。所以,应该在两者之间到一个平衡点。使用基于句子的文本块选取,由于句子比词语涵盖更多的语义信息,因此能够更好的把握住文档的全局信息,从而顾及文档的结构特征。基于句子划分文本块,使得文本块的划分粒度适中,因此文档的文本块数量不会很大,能够有效的提高对比的速率,划分后的文本块具有较好的健壮性和独立性,对文档基于句子粗粒度重排列后不会影响对比结果。对于句子中词语做同义词替换,可以用计算句子间的相似度来保证精确度。然而使用基于句子的方法划分文本块,对于文档句子的提取一直是个难点。因此对文档特征的提取还要做进一步处理,需要判断其是否具有丰富的语义信息。可以设定一个阈值,把长度小于这个阈值的表达无用信息的句子去掉,从而提高检测效率和检测精度。
3.2 文档相似度度量。在cops原型系统的基础上进行改进,把统计文档相等句子数量的算法改进为统计文档间相似句子的数量,此方法主要通过计算句子间的相似度来实现。计算句子间的相似度来衡量两篇文档间的相似度,克服了cops算法对句子局部信息修改过于敏感的不足,从而提高了检测的精度。如果两个句子有80%的内容是相同的,那么这两个句子的相似度就为80%。按照此方法就能求得文档间所有句子之间的相似度,然后通过计算相似句子的数量占两篇文档中句子数量的比率,作为衡量两篇文档是否相似的标准。对于句子间的相似度的计算,采用基于动态规划的求最长公共子序列长度的方法,根据最长公共子序列长度占两个句子长度的比率,来计算两个句子之间的相似度。要忽略相似度很小的句子。因为两个不相关的句子可能也会存在相似的内容,即使相似的内容很少。所以对于两个无关句子来说,它们之间存在少量相似内容是很正常的现象,对于这种想象,我们应当将其忽略而不做检测。可以设定一个相似度有效的阈值limen,默认设置limen=0.6,对于两个相似度小于limen的句子,可以忽略不作统计。建议每个句子只统计一次。当有两个句子已判定相似,应该把这两个句子排除。
3.3 相似语句定位技术。定位技术是检测技术的重要基础。仅通过两篇文档之间的相似度来评判两篇文档是否相互抄袭是不准确的,因为检测是按照一定算法来判断文档抄袭,在此过
程中往往存在误判,因而对于一些要求严格的文档,教师需要查看详细判断抄袭的依据,即抄袭内容的比对。因此,还需要对抄袭语句进行定位。在检测文档句子对比之前,首先构造一个存放mystr结构体的链表strlist,在显示检测文档每个句子之前,先将检测句子的相关信息(字符串内容、字符串长度、字符串在原文中的位置)放入结构体mystr中。文档中句子间对比过程中,如果句子间的相似度大于阈值,则将与检测句子相似的句子信息放入结构体mystr中。由于与检测句子相似的句子信息只作为显示使用,所以与检测句子相似的所有句子及其相关信息都可以存放在一个字符串属性中。str存放待检测字符串,strlen存放待检测句子的长度,position存放待检测字符串在原文中的位置,oldstr存放进行预处理后的待检测字符串,outstr存放与待检测句子相似的所有句子的相关信息。在显示待检测文档之前,需要将待检测文档句子分割出来,然后遍历文档中的每一个句子并对其进行预处理。对于不存在疑似句子的文档句子则直接显示,对于存在疑似的文档句子则将其与对应的mystr建立映射关系。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。