基于指纹特征的文本复制检测系统及方法
【专利摘要】本发明公开了基于指纹特征的文本复制检测系统及方法。本发明系统包含:文本预处理模块,对文本进行格式转换,过滤文本中的噪声,将单词归一化,去除英语字母大小写的干扰;单词编码模块,依据单词的原生特点,将预处理后文本的单词进行编码;字典排序模块,以句子为单位,按字典方式进行排序,并去除文本中的标点;散列值映射模块,利用滚动哈希函数进行散列值计算,得到散列值序列;指纹提取模块,基于文本内容选取触发条件,并依据触发条件进行分块;利用哈希函数计算文本块的哈希值,并选取哈希值的特定位置的若干位转换为ASCII码,作为指纹特征;相似度计算模块,用于文本指纹的相似性比对,利用相似度算法计算文本指纹的相似程度。
【专利说明】
基于指纹特征的文本复制检测系统及方法
技术领域
[0001] 本发明属于文本复制检测技术领域,具体涉及一种基于指纹特征的文本复制检测 系统及方法。
【背景技术】
[0002] 文本复制检测技术目前已广泛应用在多种领域,例如,数字化图书馆、信息检索、 学术论文、垃圾邮件过滤、恶意代码等,为用户减小信息冗余度,提高信息检索的满意度,防 止学术论文、垃圾邮件、恶意代码和网页去重提供了有效的解决方案。但是,随着文本数据 量的剧增,传统的文本复制检测技术的检测效率不高。为了提高复制检测效率,一些检测方 法引入了指纹技术。
[0003] 基于指纹特征的文本复制检测技术是一种新颖的文本复制检测方法,该方法借鉴 了传统哈希算法的理论,在保证文本信息的前提下,将文本通过一定的规则映射为一组字 符或数字序列,也可称为文本指纹,用来表示文本的内容特征。相似的文本将被映射为相近 的指纹,计算指纹之间的相似度,达到复制检测的目的,其具有简单、高效等优点。但是,现 有基于指纹特征的文本复制检测技术仍存在指纹特征选取效率低的问题。
[0004] 模糊哈希又称为"基于内容的分块哈希",是2006年Kornblum等人提出的一种哈希 算法。该算法包含两种普通哈希算法:滚动哈希算法,用于选取触发条件对输入数据进行分 块;任何一种普通哈希算法,用于计算每块数据的哈希值。模糊哈希算法是基于块来计算输 入数据的指纹,属于局部哈希算法,不注重于数据的细节变化。假如对输入数据进行插入、 删除、修改操作后,数据的局部会发生变化,而数据的大部分还是保持不变。
[0005] 模糊哈希算法被提出的初衷是用于计算机取证技术,目的是提高大数据下取证的 效率。后来学术界有一些学者将其用于恶意代码及抄袭文本的检测,但是模糊哈希算法在 提取指纹特征时,受滑动窗口宽度及两个设定值的影响较大,可能导致输入数据都没有触 发分块条件或者频繁触发分块条件,造成指纹特征数量不固定,需要重新调整触发条件,指 纹特征提取效率较低。
【发明内容】
[0006] 为了克服现有文本复制检测技术中,指纹特征提取效率低的缺陷,本发明提供了 一种基于指纹特征的文本复制检测系统及方法,本发明方法根据单词特点构建单词编码模 型,并基于文本内容选取触发条件,提取指纹,克服了指纹特征提取效率低的不足,提高了 指纹特征提取效率,从而提尚文本复制检测用户满意度。
[0007] 为达到上述目的,本发明通过以下技术方案来实现:
[0008] 基于指纹特征的文本复制检测系统,含有以下几个模块:文本预处理模块、单词编 码模块、字典排序模块、散列值映射模块、指纹提取模块、相似度计算模块,详细介绍如下:
[0009] 文本预处理模块,用于对文本进行格式转换,过滤待检测文本中的数字、停用词、 介词和特殊符号等噪声,将单词归一化,去除英语字母大小写的干扰。
[0010] 单词编码模块,依据单词的原生特点,按设定的规则:如特定位置单词的字母(例 如单词尾字母或单词首字母等)或特定位置单词的字母以及单词长度组合的规则,将预处 理后文本的单词进行编码。
[0011] 字典排序模块,将编码后的文本,以句子为单位,按字典方式进行排序,并去除文 本中的标点。
[0012] 散列值映射模块,将按字典排序后的文本,利用滚动哈希函数进行散列值计算,得 到散列值序列。滚动哈希函数可以将长度为k的字符串映射为一个整数 X(0<X<bk),设asc (c)为字符c的ASCII值,则将文本T[l,. . .,n]中长度为k的子串. . .,Tk映射为一个散 列值的计算公式如下:
[0013] H(Ti,T2, . . . ,Tk)=asc(Ti)bk_1+asc(T2)bk_2+. . ,+asc(Tk) (1) 那么H(T2, . . .,Tk,Tk+i)可表示为:
[0014] H(T2, . . . ,Tk,Tk+i) = (H(Ti,T2, . . . ,Tk)-asc(Ti)bk_1)b+asc(Tk+i) (2)
[0015] 指纹提取模块,基于文本内容选取触发条件,并依据触发条件进行分块。利用哈希 函数如MD5计算文本块的哈希值,并选取哈希值的特定位置的若干位转换为ASCII码,作为 指纹特征。
[0016] 相似度计算模块,用于文本指纹的相似性比对,利用相似度算法如编辑距离算法 等计算文本指纹的相似程度,来衡量文本之间的相似度,判断两文本之间是否存在复制行 为,进而判断文本之间是否存在抄袭现象。
[0017] 编辑距离算法(Levenshein Distance)是一种计算字符串相似度的算法,例如字 符串S和T,编辑距离算法的思想是通过计算字符串S,需要最少经过多少步编辑操作变为T, 得出的步数即为距离,其中编辑操作主要有插入、删除和替换等。编辑距离的计算公式如 下: \Ma.\\i^j) j) = 0
[0018] edit. - < (3) '.丨[Miriiedit^j +1, editUJ^ +1, -\- JLj )i, j>0
[0019] 可表示为:
[0 s,t ~t,
[0020] j) / = i (/ = 1,2,3,..,,m; j = 1,2,3,,.,;n) (4) 1 sd ^tj
[0021] 其中editu表示两字符串第i和j位置的编辑距离,f1;#lj断Sl,tj是否相同。
[0022] 通过式(3)可以计算出字符串之间的最小距离即编辑距离,通过计算式(5)可以得 出相似度。
⑶
[0024]其中Sim(S,T)表示相似度,e(S,T)表示编辑距离,h,l2为S,T的长度。
[0025]优选的,对于预处理后得到的文本,依据单词的原生特点,对单词进行编码,单词 编码的好坏主要受重码率、码长、规则、记忆量等因素的影响,由于这些指标是相互矛盾的, 所以重码率最低,码长最短,规则最少,记忆量最少的编码是不存在的。在具体实现中,根据 不同的应用场景,选取合适的编码方式。单词编码方式有两种形式:1)由单词特定位置的若 干个字母组成;2)由单词特定位置的若干个字母及长度组成。
[0026] 优选的,在文本散列值序列中,利用混合窗口技术选取触发条件,进行分块。通过 哈希函数计算每个文本块的散列值,并选取散列值的若干位将其转换为对应的ASCII码,则 文本指纹由所有ASCII码构成。
[0027] 本发明还公开了一种基于指纹特征的文本复制检测方法,其按如下步骤进行:
[0028] S1、对输入文本进行预处理,获取去除噪声干扰的文本。
[0029] S2、利用单词编码模块对步骤S1得到的文本,进行编码。
[0030] S3、利用字典排序模块对步骤S2所得到的单词编码序列进行排序。
[0031] S4、对步骤S3所得到的单词编码序列,通过滚动哈希计算哈希值,得到文本的一组 散列值序列H。
[0032] S5、定义一个字符数组,用于指纹特征映射。
[0033] S6、利用混合窗口技术对步骤S4所得到的散列值序列H进行分块,并通过哈希函数 计算文本块的哈希值。
[0034] S7、选取步骤S6得到的哈希值的特定位置的若干位,并通过S5定义的字符数组将 其映射为某个字符。
[0035] 38、重复步骤36、37。
[0036] S9、采用相似度算法计算文本指纹之间的相似度。
[0037]优选的,S1步骤具体如下:
[0038]步骤1:对可疑文本进行格式转换;
[0039]步骤2:采用正则表达式的方法去除噪声;
[0040] 步骤3:将英语字母归一化,防止字母大小写的干扰;
[0041] 步骤4:通过停用词表,过滤掉文本中的停用词。
[0042] 优选的,S2步骤中,单词编码方式有两种形式:1)由单词特定位置的若干个字母组 成;2)由单词特定位置的若干个字母及长度组成。
[0043] 本发明基于指纹特征的文本复制检测系统及方法,为在海量的文本中快速的进行 复制检测提供解决方案。本发明系统及方法的指纹检测原理与传统指纹检测不同,采用单 词编码模型对文本单词进行编码,减少了文本内容,并利用混合窗口技术选择触发条件,进 行分块,提高了指纹特征提取效率。
[0044] 本发明在进行文本复制检测时,利用单词编码模块对输入文本进行编码,减少了 文本信息;基于文本内容选择触发条件进行分块,加快了指纹特征提取效率。
【附图说明】
[0045] 图1为本发明实施例文本复制检测装置的结构示意图。
[0046] 图2为本发明实施例文本复制检测装置的详细结构示意图。
[0047]图3为本发明实施例文本预处理模块的详细示意图。
[0048] 图4为本发明实施例单词编码模块的详细示意图。
[0049] 图5为本发明实施例指纹提取模块的详细示意图。
【具体实施方式】
[0050] 以下结合附图对本发明优选实施例作进一步说明。
[0051] 如图1所示,本实施例基于指纹特征的文本复制检测系统,含有以下几个模块:
[0052] 文本预处理模块,用于对文本进行格式转换,过滤待检测文本中的数字、停用词、 介词和特殊符号等噪声,将单词归一化,去除英语字母大小写的干扰。
[0053]单词编码模块,依据单词的原生特点,按设定的规则将预处理后文本的单词进行 编码。
[0054]字典排序模块,将编码后的文本,以句子为单位,按字典方式进行排序,并去除文 本中的标点。
[0055]散列值映射模块,将按字典排序后的文本,利用滚动哈希函数进行散列值计算,得 到散列值序列。
[0056]指纹提取模块,基于文本内容选取触发条件,并依据触发条件进行分块。利用哈希 函数(如md5)计算文本块的哈希值,并选取哈希值的特定位置的若干位转换为ASCII码,作 为指纹特征。
[0057]相似度计算模块,用于文本指纹的相似性比对,利用相似度算法计算文本指纹的 相似程度,来衡量文本之间的相似度,判断两文本之间是否存在复制行为,进而判断文本之 间是否存在抄袭现象。
[0058]如图2-5所示,本发明实施例基于指纹特征的文本复制检测方法,按如下步骤: [0059] (1)文本预处理,参照图3,有以下步骤:
[0060]步骤1:对可疑文本进行格式转换。
[0061] 步骤2:采用正则表达式的方法去除数字、特殊符号等噪声。
[0062] 步骤3:将英语字母归一化,防止字母大小写的干扰。
[0063] 步骤4:通过停用词表,过滤掉文本中的停用词。
[0064] (2)参照图4,对于预处理后得到的文本,依据单词的原生特点,对单词进行编码, 单词编码的好坏主要受重码率、码长、规则、记忆量等因素的影响,由于这些指标是相互矛 盾的,所以重码率最低,码长最短,规则最少,记忆量最少的编码是不存在的。在具体实现 中,根据不同的应用场景,选取合适的编码方式。单词编码方式有两种形式:1)由单词特定 位置的若干个字母组成;2)由单词特定位置的若干个字母及长度组成。
[0065] (3)按照字典方式排序;
[0066] (4)利用滚动哈希函数对单词编码序列进行散列值计算,得到散列值序列H。
[0067] (5)参照图5,利用混合窗口技术对散列值序列H进行分块,生成文本指纹,详细步 骤如下:
[0068] 步骤1:从固定窗口Hi = {hi,hi+i. . .hi+Fixed-1}中提取指纹特征,利用滑动窗口在Hi 中滑动。
[0069] 步骤2:滑动窗口每滑动一次,判断该窗口内的最小值是否同上个窗口的最小值相 同,如果相同,则该散列值的步长加1。否则,保存上个窗口最小散列值及其步长,并选取该 散列值为基准,初始化其步长。
[0070] 步骤3:重复步骤2,当滑动窗口和固定窗口的右边界重合时,选取步长最长的散列 值hi〇
[0071] 步骤4:将匕作为触发条件进行分块,则文本块奶的内容为{h^hs. . .lu},利用哈希 函数计算奶的散列值。
[0072] 步骤5:将匕+1作为下个固定窗口的左边界。
[0073] 步骤6:将得到的每个文本块的哈希值进行转换,得到对应的字符。
[0074]步骤7:重复步骤1-6,直到文本结束。
[0075] 步骤8:将步骤6得到的每个字符连接,最终形成一组字符序列,即文本指纹。
[0076] (6)利用相似度算法计算文本指纹之间的相似度。文本指纹代表文本的特征,所以 利用指纹之间的相似性作为文本之间的相似程度的指标。
[0077] 综上,本发明实施例提供的文本复制检测方法及装置,与现有的复制检测方法相 比,本发明在进行指纹特征提取时,增加了文本单词编码步骤,单词编码是基于单词特点的 一种编码形式,可以降低处理文本的内容。在基于单词编码的基础上进行文本散列值计算, 可以减少计算次数。本发明通过固定窗口和滑动窗口相混合技术进行文本分块,提取指纹 特征,在基于文本内容分块的基础上,可以保证分块粒度稳定,提高了分块效率,有效控制 文本块的数量,并且能够保证得到的文本块序列具有同步性,正是由于同步性关系的存在, 才可以有效地进行文本指纹提取。
[0078] 本发明可以有效的克服文本复制检测中,指纹特征提取效率低的缺陷,在保证复 制检测准确性的如提下,能够保证适当的分块粒度,提尚指纹特征提取效率。
[0079] 以上所述仅为本发明优选实施例。但本发明的保护范围并不局限于此,任何熟悉 本技术领域的技术人员在本发明揭露的技术范围内,轻易想到的变换,都应涵盖在本发明 的保护范围之内。
【主权项】
1. 基于指纹特征的文本复制检测系统,其特征是包含有以下几个模块: 文本预处理模块,用于对文本进行格式转换,过滤待检测文本中的噪声,将单词归一 化,去除英语字母大小写的干扰; 单词编码模块,依据单词的原生特点,按设定的规则将预处理后文本的单词进行编码; 字典排序模块,将编码后的文本,以句子为单位,按字典方式进行排序,并去除文本中 的标点; 散列值映射模块,将按字典排序后的文本,利用滚动哈希函数进行散列值计算,得到散 列值序列; 指纹提取模块,基于文本内容选取触发条件,并依据触发条件进行分块;利用哈希函数 计算文本块的哈希值,并选取哈希值的特定位置的若干位转换为ASCII码,作为指纹特征; 相似度计算模块,用于文本指纹的相似性比对,利用相似度算法计算文本指纹的相似 程度,来衡量文本之间的相似度。2. 如权利要求1所述的基于指纹特征的文本复制检测系统,其特征是:所述的噪声包括 待检测文本中的数字、停用词、介词、特殊符号。3. 如权利要求1所述的基于指纹特征的文本复制检测系统,其特征是:单词编码方式有 两种形式:1)由单词特定位置的若干个字母组成;2)由单词特定位置的若干个字母及长度 组成。4. 如权利要求1所述的基于指纹特征的文本复制检测系统,其特征是:在文本散列值序 列中,利用混合窗口技术选取触发条件,进行分块。5. -种基于指纹特征的文本复制检测方法,其特征是按如下步骤进行: 51、 对输入文本进行预处理,获取去除噪声干扰的文本; 52、 利用单词编码模块对步骤Sl得到的文本,进行编码; 53、 利用字典排序模块对步骤S2所得到的单词编码序列进行排序; 54、 对步骤S3所得到的单词编码序列,通过滚动哈希计算哈希值,得到文本的一组散列 值序列H; 55、 定义一个字符数组,用于指纹特征映射; 56、 利用混合窗口技术对步骤S4所得到的散列值序列H进行分块,并通过哈希函数计算 文本块的哈希值; 57、 选取步骤S6得到的哈希值的特定位置的若干位,并通过S5定义的字符数组将其映 射为某个字符; 38、重复步骤36、37; S9、采用相似度算法计算文本指纹之间的相似度。6. 如权利要求5所述的基于指纹特征的文本复制检测方法,其特征是: Sl步骤具体如下: 步骤1:对可疑文本进行格式转换; 步骤2:采用正则表达式的方法去除噪声; 步骤3:将英语字母归一化,防止字母大小写的干扰; 步骤4:通过停用词表,过滤掉文本中的停用词。7. 如权利要求5所述的基于指纹特征的文本复制检测方法,其特征是: S2步骤中,单词编码方式有两种形式:I)由单词特定位置的若干个字母组成;2)由单词 特定位置的若干个字母及长度组成。
【文档编号】G06F17/22GK105912514SQ201610273935
【公开日】2016年8月31日
【申请日】2016年4月28日
【发明人】吴国华, 付二帅, 王玉娟
【申请人】吴国华