CN106909609B - 确定相似字符串的方法、文件查重的方法及系统 - Google Patents

确定相似字符串的方法、文件查重的方法及系统 Download PDF

Info

Publication number
CN106909609B
CN106909609B CN201710012780.5A CN201710012780A CN106909609B CN 106909609 B CN106909609 B CN 106909609B CN 201710012780 A CN201710012780 A CN 201710012780A CN 106909609 B CN106909609 B CN 106909609B
Authority
CN
China
Prior art keywords
file
sub
matrix
similar
sample
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710012780.5A
Other languages
English (en)
Other versions
CN106909609A (zh
Inventor
杨冬菊
赵卓峰
李成龙
冯凯
邓崇彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jinyuze Technology Co ltd
Original Assignee
North China University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by North China University of Technology filed Critical North China University of Technology
Priority to CN201710012780.5A priority Critical patent/CN106909609B/zh
Publication of CN106909609A publication Critical patent/CN106909609A/zh
Application granted granted Critical
Publication of CN106909609B publication Critical patent/CN106909609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Abstract

本发明提供一种确定相似字符串的方法,该方法包括:获取样本文件的字符数组和待检测的目标文件的字符数组;构建矩阵M,其中,矩阵M的行和列分别对应所述样本文件的字符数组和所述目标文件的字符数组;在所述矩阵M中查找满足相似字符串条件的子方阵,其中,所述相似字符串条件设置为:如果该子方阵中的元素
Figure DDA0001205361200000011
…、
Figure DDA0001205361200000012
对应的行和列的字符相同,则
Figure DDA0001205361200000013
…、
Figure DDA0001205361200000014
所映射的字符串被确定为相似字符串,其中,k表示该子方阵的阶数,j1、j2、j3、…jk是1、2、…、k的一个排列。利用本发明的确定相似字符串的方法进行文件查重可以提高文件的查全率和查准率。

Description

确定相似字符串的方法、文件查重的方法及系统
技术领域
本发明涉及论文查重技术领域,尤其涉及一种基于分词模糊匹配的文件查重的方法和系统。
背景技术
目前,论文/文件的重复率检测主要是采用PaperPass、万方、知网等论文检测系统,通过字符串匹配算法来计算待检测的文件相对于文件库中的目标文件的相似比。
字符串匹配算法是以一段文字完全一致作为衡量论文重复的标准,然而,由于中文语言的复杂性和表达方式的多样性,对于实质内容相同的两段文字,往往会因为中间出现一些无意义的“停词”或虚词或者主谓宾顺序不一致等情况,而将其错误地判断为不属于重复内容,因此,采用现有技术中的字符串匹配算法可能会导致查全率和查准率不高。而且,字符串匹配算法对字符串的选取要求严格,算法本身复杂度较高,需要相对大的资源开销和较长的计算时间,因此,查重的效率也不高。
此外,近年来,随着科技项目申报、学术论文和学位论文等的数量大幅增长,迫切需要支持大数据量下,查重结果准确、高效的文本数据查重的方法。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种基于分词模糊匹配的方法来确定相似字符串,从而确定文件相对于样本文件的重复率。
根据本发明的第一方面,提供了一种用于确定相似字符串的方法。该方法包括:
步骤1:获取样本文件的字符数组和待检测的目标文件的字符数组;
步骤2:构建矩阵M,其中,矩阵M的行和列分别对应所述样本文件的字符数组和所述目标文件的字符数组;
步骤3:在所述矩阵M中查找满足相似字符串条件的子方阵,其中,所述相似字符串条件设置为:如果该子方阵中的元素a1j1、a2j2、a3j3…akjk对应的行和列的字符相同,则a1j1、a2j2、a3j3…akjk所映射的字符串被确定为相似字符串,其中,k表示该子方阵的阶数,j1、j2、j3、…jk是1、2、…、k的一个排列。
优选地,所述样本文件的字符数组和所述目标文件的字符数组中的每个元素对应对文件内容进行分词处理之后的字符。
优选地,步骤2包括:对于所述矩阵M中的每个元素,如果行对应的字符和列对应的字符相等,则将该元素设置为1,否则设置为0。
优选地,所述在矩阵M中查找满足相似字符串条件的子方阵的步骤包括:
步骤11:设置待查找的子方阵A1的阶数k;
步骤12:遍历矩阵M,以查找符合所述相似字符串条件子方阵A1,其中,子方阵A1中的元素满足
Figure GDA0001259789720000021
不为0;
步骤13:基于所找到的子方阵A1进一步查找满足所述相似字符串条件的子方阵A2,其中,A1是子方阵A2的子集;
步骤14:确定所述子方阵A2映射的相似字符串和该相似字符串在所述目标文件中的位置。
优选地,所述子方阵A1的阶数k大于预定的阈值。
根据本发明的第二方面,提供了一种用于文件查重的方法。该方法包括:
步骤21:利用本发明的确定相似字符串的方法查找所述目标文件和所述样本文件中的相似字符串;
步骤22:根据所述相似字符串计算所述样本文件和所述目标文件的相似比。
根据本发明的第三方面,提供了一种利用hadoop集群进行文件查重的方法,包括以下步骤:
步骤31:利用map函数将查找一个目标文件相对于多个样本文件的查重任务分解为多个查找一个目标文件相对于一个样本文件的子任务;
步骤32:利用reduce函数根据本发明的用于文件查重的方法并行查找对应每个子任务的相似比。
优选地,在步骤32之后,还包括当所述相似比超过相似比阈值时,输出所述目标文件与每个样本文件的相似比列表。
优选地,所述相似比列表包括章节相似比和全文相似比。
根据本发明的第四方面提供了一种用于文件查重的系统,包括:用于利用本发明的确定相似字符串的方法查找所述目标文件和所述样本文件中的相似字符串的模块;用于根据所述相似字符串计算所述样本文件和所述目标文件的相似比的模块。
与现有技术相比,本发明的优点在于:本发明的确定相似字符串的方法是通过模糊分词匹配的方式来查找相似字符串,可以提高确定相似字符串或者文件重复的准确率;通过采用map/reduce模型计算一个目标文件相对于多个样本文件的相似比可以高效、快速地完成文件查重的任务。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1示出了根据本发明一个实施例的确定相似字符串的方法的示意流程图。
图2示出了根据本发明的一个实施例的用于文件查重的方法的示意流程图。
图3示意性示出了使用hadoop集群系统进行论文/文件查重的信息交互过程。
图4示出了根据本发明的另一实施例利用hadoop集群进行论文查重的方法的流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现参照附图对本发明提出的基于模糊匹配方法确定相似字符串的过程作进一步详细说明。
图1示出了根据本发明的一个实施例的确定相似字符串的方法的示意流程图。具体包括以下步骤:
1)步骤S110,获取样本文件和待检测的目标文件的字符数组。
在本说明书中,将待检测的文件称为目标文件,与该目标文件进行比对的文件称为样本文件。文件类型可以包括多种形式,例如,PDF文件、WORD文件或文本类型文件等。
文件的字符数组是通过将文件的文字内容进行分词处理而获得。分词处理的具体过程是,分别提取样本文件和目标文件中的文字内容并进行分词,例如,根据自然语言的特点或常用的表达习惯进行分词,将提取的文字内容转换成字符型的数组,并且记录每个词语在文件中的开始位置。通过这种方式,可以获得两个开始位置由小到大排列的字符数组。
例如,对于文字内容“这是一个中文分词的例子,我爱北京动物园!IKAnalyer cananalysis english text too”,分词处理以后的结果是“这是/一个/中文/分词/例子/我/爱/北京/动物园/IKAnalyer/can/analysis/English/text/too”。
在实际的应用中,可以采用现有的分词软件或对其改进来进行分词,例如,可以采用开源的基于java语言的分词工具包IKAnalyer。
为了便于分析和处理,可以将分词结果按照下表1的形式保存,即保存每个词语和其对应的类型以及其在字符数组中的位置,其中,类型例如包括中文词汇、中文字符、英文字母、数字等,分词的位置是指在上述例句中的实际位置,标点符号和“停词”也占位置。
表1分词结果
Figure GDA0001259789720000041
Figure GDA0001259789720000051
2)步骤S120,构造用于描述字符数组的矩阵
为了便于将样本文件和目标文件进行对比,构造矩阵来描述分词结果。
例如,分词之后样本文件和目标文件的字符数组的长度分别是m和n,则将两个数组分别作为横轴和纵轴,形成m*n维的矩阵M。
例如,如果分词以后的结果分别是BDCABA和ABCBDAB,其中,每个字母代表分词后的中文或英文词语,对于矩阵中的每一个元素,如果满足“行对应的词”与“列对应的词”相同,将该元素置为1,否则置为0,因此,构造的矩阵M是:
Figure GDA0001259789720000052
3)步骤S130,设置相似字符串的判决条件。
本发明将判断字符串的相似条件规定为:如果矩阵M中的子方阵的元素
Figure GDA0001259789720000053
对应的行和列的分词相同,则,
Figure GDA0001259789720000054
所映射的字符串确定是相似字符串,其中,k表示所述子方阵的阶数,j1、j2、j3、…jk是1、2、…、k的一个排列。如果按照上述规则设置矩阵M中元素的取值,即相似条件是
Figure GDA0001259789720000055
不为零。其中,k表示所述子方阵的阶数,j1、j2、j3、…jk是1、2、…、k的一个排列。
例如,如果子方阵A是4×4维的矩阵,如下:
Figure GDA0001259789720000056
由于存在一个乘积a13*a22*a34*a41=1,而j1、j2、…、jk表示的排列是{3、2、4、1},因此,子方阵A满足相似条件,其映射的字符串被确定是相似的字符串。
又如,如果子方阵A是4×4维的矩阵,形式如下:
Figure GDA0001259789720000061
由于存在一个乘积a11*a22*a34*a43=1,而j1、j2、…、jk表示的排列是{1、2、4、3},所以子方阵A满足相似条件。
又如,如果子方阵A是一个4×4维的矩阵,形式如下:
Figure GDA0001259789720000062
由于在所有j1、j2、j3、j4的排列中,由于第4列的元素均是0,即在
Figure GDA0001259789720000063
中必有一个元素是0,因此,不存在乘积
Figure GDA0001259789720000064
不为零的情况,子方阵A必定不满足相似条件。
为了尽可能的找出最长的相似字符串,在同一范围内存在多个满足相似条件的子方阵的情况下,选择阶数最大的子方阵对应的相似字符串。
例如,如果M矩阵中存在以下两个满足相似条件的子方阵:
Figure GDA0001259789720000065
Figure GDA0001259789720000066
由于A2包含A1,处于同一范围内,而A2的阶数k=4,A1的阶数k=3,因此,选择A2对应的相似字符串。通过这种方式,可以尽可能的查找出最长的相似字符串,从而提高查重结果的精确度。
为了避免将实际上不相似的字符串被误判为相似的字符串,在实际应用中,可以设置相似性字符串的判决阈值,例如,定义将相似字符串的长度大于3个词语时,认为是相似字符串或重复字符串。
4)步骤S140,遍历矩阵M以查找符合相似字符串判决条件的子方阵。
扫描m*n维矩阵M以查找满足相似条件的子方阵。例如,可以采用行遍历或列遍历的方式来扫描矩阵。
下面仍以字符串BDCAB和CBDAB为例,以行遍历的扫描方式来介绍查找子方阵的过程。即矩阵M是:
Figure GDA0001259789720000071
行遍历的扫描矩阵M的具体步骤包括:
步骤a:遍历行标0到m;
步骤b:用begin表示行标的上界,用end表示行标的下界,将begin初始化为0,并且设置end为begin+len-1,其中,len表示设定的判断是相似字符串的阈值,在本实施例中,以len取值为3为例;
Figure GDA0001259789720000072
上式从begin=1,end=3扫描至begin=2,end=4时的示意。
步骤c:遍历列标,从0~n截取长度为end-begin的两个列标i和j。即选取第begin行到第end行与第i列与第j列之间围成的子方阵,判断这个子方阵是否满足相似条件,如果不满足,则增加i、j继续判断,直到找到满足条件的子方阵,则记录i位置并进行步骤d,如果没有子方阵满足条件,则进行步骤e;
Figure GDA0001259789720000073
步骤d:将begin减一(或减更多,例如减五),end不变,重新进行步骤c,并且将i位置记录传入,仅在i附近去进一步寻找满足条件的子方阵,提高遍历的时间效率,由此可以找到相似字符串开始下标的最小值,进行步骤e;
Figure GDA0001259789720000081
步骤e:将begin不变,end加一(或加更多,可以最多加到m),重新进行步骤c,并且将i位置记录传入,只在i附近去寻找满足条件的子方阵,提高遍历的时间效率,由此可以找到结束下标的最大值。由此,每次找到一个子方阵A既可以对应一个横轴的词的子集合与一个纵轴的词的子集合。
Figure GDA0001259789720000082
步骤d和步骤e目的在于,在找到满足条件子方阵的基础上,通过改变begin和/或end的值在该子方阵的周围进一步查找更大维数的子方阵,即尽量查找最大长度的相似文字。
根据上述步骤找出的子方阵可以映射为原样本文件和目标文件中的一段字符串和该字符串的位置,即找到的相似文字,并将中间结果进行保存。
例如,对于本实施例中的文字,根据本发明的方法找到的相似文字为BDCAB和CBDAB。
Figure GDA0001259789720000091
步骤f:如果begin与end之间没有满足条件的子方阵,则将begin=end+1,执行步骤b。
根据本发明的基于模糊匹配的规则查找相似字符串的方式,可以提高文件查重的精确性,避免因实质上属于重复语句的字符串因中间出现“停词”而遗漏。此外,将分词后的结果存储为矩阵形式,通过合适的扫描方法来查找满足相似条件的子矩阵,可以提高查找的效率和速度。
本领域的技术人员应当理解,本发明的查找相似字符串的方法,不仅仅可以应用在论文查重领域,也可以用于检索,例如,将某段文字作为关键字,根据本发明的方法从文件数据库中查找出包含该关键字的所有文件从而可以提高检索的全面性。
图2示出了根据本发明的一个实施例的用于文件查重的方法流程图。
11)步骤S210、对样本文件和目标文件进行分词预处理。
此步骤的目的是,对样本文件和目标文件进行分词预处理,以获得分词之后的字符数组。
预处理的过程包括:将样本文件和目标文件的每一个文件的内容读取出来,进行分词预处理;将分词之后的字符数组、每个词语的位置、样本文件的原文以及样本文件的基本信息等预处理结果进行存储。
12)步骤S220、将经过分词处理后的样本文件和目标文件进行查重比对。
步骤S220包括:利用样本文件和目标文件的预处理结果,基于本发明上述实施例的分词模糊匹配方法来构建矩阵和查找相似片段(相似字符串);找到相似片段之后,将相似片段、相似片段的冗余、相似片段的位置、相似片段的长度、样本文件的基本信息等进行存储;计算样本文件和目标文件的相似比。
本领域的技术人员应当理解,可以首先计算目标文件的每个章节的相似比,再进行叠加,也可以直接获得全文的相似比。
其中,计算章节相似比的公式如下:
Figure GDA0001259789720000101
其中,BFB表示章节相似比,TXTLEN表示章节长度,n是章节中关键字的个数,KEYLEN表示关键字的长度(即查找出的相似片度的长度)。在本说明书中,关键字是指查出的相似片度或相似字符串。
进一步地,可以根据各个章节的相似比,计算目标文件全文的相似比。
本领域的技术人员还应理解的是,为了保证文件查重的准确率,在进行相似比计算之前可以剔除不参与对比的内容和某些重复数据。例如,在进行相似比计算之前,需要首先将相似内容所包含的模板的数据去除。例如,去掉重复记录,以防止重复数据被计算多次,相似比超过100%的情况。
13)步骤S230、生成检测报告。
目标文件和样本文件的比对结果可以以PDF格式和/或HTML的格式显示给用户。例如,生成的PDF可以包含全文相似比、章节相似比、相似样本的列表以及相似的字符串的列表等。
图3示出了根据本发明的一个实施例应用hadoop集群进行论文查重的交互过程。
Hadoop集群是分布式系统基础架构,是实现云计算的开源平台,其主要包括核心处理模块Map/Reduce、用于存储集群中的文件的分布式文件系统HDFS以及分布式数据库HBase。为了清楚示意信息交互的过程,在图3中,将HBase数据库以独立于hadoop集群的方式示出。
如图3所示,论文查重的基本过程是:文件查重系统(web)接收来自于客户端的样本文件、目标文件以及论文查重任务;文件查重系统对样本文件、目标文件进行处理并控制hadoop集群来完成目标文件和样本文件的相似性的比对的任务;文件查重系统基于hadoop集群返回的比对结果生成最终的查重报告并返回给客户端。在此过程中,产生的结果数据、记录等均可以存储到Hase数据库。应理解的是,图3中的标号仅用于示意论文查重的整体过程,其中,某些步骤可以并行进行。
本领域的技术人员应理解,文本数据查重系统的web页面上提供有供用户操作或选择的选项。在进行论文查重时,用户可以通过web界面进行相关的操作。例如,通过web界面上的不同按钮选择进行同批相似比还是非同批相似比,两者间的区别是文本库不同。例如,可以通过历史记录页面查看提交作业的基本信息、完成信息等,也可以查询记录、重新生成报告、导出excel等。在此,不再作具体介绍。
利用Hadoop集群,可以在不了解分布式底层细节的情况下,开发分布式程序,以提高运算和存储的速度和效率。例如,在文本数据查重系统上可以开发计算机程序来实现基于本发明的分词模糊匹配方法。该程序实现的基本功能是:对样本文件和目标文件进行预处理;实现基于本发明的分词模糊匹配算法;向hadoop集群提交相似性比对任务以控制其利用MapReduce(MR)模型来查找相似性字符串;生成查重结果报告等。
图4示出了示出了根据本发明的另一实施例利用hadoop集群进行论文查重的示意流程图。
31)步骤S410、预处理样本文件和目标文件。
预处理过程即是对样本文件和目标文件进行分词预处理的过程。
以样本文件为例,预处理的过程包括:首先,建立HDFS的样本库,将一批一批的样本文件上传到Hadoop分布式文件系统上;上传完成后,获取HDFS上传的文件名称和路径,将每一个文件的内容读取出来,进行分词预处理;将分词之后的字符数组、每个词语的位置信息、样本文件的原文以及样本文件的基本信息等预处理结果存储到HBase中,并将这些样本文件的路径也存储到HBase之上,使得文本数据查重系统可以根据HDFS的路径就可以获取关于这些样本的全部信息以及预处理的结果。
上述样本文件预处理的过程,可以极大的提高文件查重的效率。这是由于可以将数以万计的样本文件进行预处理,因此,在需要进行查重的时候可以很快的取出预处理的结果。预处理过程可以与查重过程相互独立,并行执行,因此,可以节省时间,提高效率。
32)步骤S420、配置Map/Reduce相关参数。
在此实施例中,通过Map/Reduce来查找相似字符串以及计算目标文件和多个样本文件的相似比。“Map(映射)”就是将一个任务分解成为多个子任务并行的执行,“Reduce”就是将分解后的多个子任务的处理的结果汇总起来,输出最后的分析结果。
在步骤S420中,需要配置Map/Reduce相关的一些参数以及与待查重的目标文件相关的属性。
与Map/Reduce相关的参数包括:指定任务的地址;设置Map任务的数量;设置Reduce任务的数量;指定所有样本文件的路径;添加jar包,jar包中包含了本发明的查重算法。
与待查重的目标文件相关的属性包括:待查重的目标文件的文本字符串;目标文件的文件标号;冗余长度的数值(显示查到结果以后,相似片段的前后多少个词一并作为相似结果进行展示);查询结果片段的最小值(即一段相似文本中,需要至少多少个词才认定其是相似的);词语数组(每个文本段分词后的结果数组);起始位置数组(即分词结果的每个单词在原文的位置)。
33)步骤S430、Map任务处理
文件查重的目标是将待对比的一段文本段与HDFS上的所有文本段进行对比,其中,出现的相同的文本片段数据在HBase数据库中进行存储。HDFS上的全部的样本文件,都需与目标文件进行对比。
在map任务中,读取所有样本文件的路径,并将样本文件的路径作为map的输出,即map的输出键值对应一个样本文件的路径。假设所有的样本文件的路径都存储于数组中,作为map的输出结果(例如,path[i]代表数组path中的第i个元素),也就是说,map任务处理过程是将“一个目标文件对应多个样本文件”的查重任务分解为多个子任务,其中,每个子任务是“一个目标文件对应一个样本文件”的重复性。
34)步骤S440、Reduce任务处理:
Reduce任务处理包括:根据map的输出数组中的路径从HBase上查找单个样本文件的预处理结果;在查到样本文件的预处理结果之后,再通过context上下文,获取HBase中存储的目标文件的预处理结果(分词结果);利用样本文件和目标文件的预处理结果,基于本发明的分词模糊匹配方法来构建矩阵和查找相似片段(相似字符串);找到相似片段之后,将相似片段、相似片段的冗余、相似片段的位置、相似片段的长度、样本文件的基本信息等存储到HBase中。
因此,有多少样本文件就有多少reduce任务,然而,由于是分布式的并行计算,计算之间相互独立、互不影响,再加上HBase的高吞吐率,采用map/reduce模型可以极大的提高论文查重的效率。
35)步骤S450、计算相似比:
在reduce任务查找出相似片段以后,可以存储样本文件编号、每个样本文件对应的相似片段以及目标文件的相似片度等信息,并进一步根据这些信息来计算相似比,其中,计算相似比的过程与基于图2描述的过程相同,在此不再赘述。
在上述计算相似比的过程中,所有的比对结果也都可以保存在HBASE中,以便于之后进行分析和查询。
36)步骤S460、生成检测报告。
目标文件和样本文件的比对结果可以以PDF格式和/或HTML的格式显示给用户。
此外,还可以将PDF或HTML结果集分类处理,例如,显示同批文件和非同批文件的相似比、同一单位和非同一单位文件的相似比、修正章节的相似比,获取关键目录下的所有子目录,并且如果有子目录时,叠加相关子目录下的相似内容长度和章节长度等,遍历子目录集合,避免模板目录文件中的取出的目录不在结果集合而取到,然后修正含有子目录章节的相似比,最后保存修正值。生成的PDF报告分为标题,章节相似比,相似比列表,相似比详细数据等。
37)步骤S470、对查重比对后的结果进行整理记录。
该步骤主要包括记录历史操作、记录筛选以及导出Excel三种功能。
记录历史操作是将检测的结果数据储存到HBase数据库中,例如,编号、名称、类型、年份、提交时间、检测时间、相似比、报告路径、比对范围、目录匹配、错误信息、目前状态等。通过采用HBase可以提高并发写入庞大数据量的效率。
记录筛选是指允许用户在Web端通过选择提交时间、计划类型、数据类型、目录匹配、比对范围、完成状态等筛选操作记录。例如,按提交时间查询每一批次的结果,查询出结果后,可以根据每条记录的复选框选择记录,并且选择批量删除选中记录、导出选中部分为Excel以及重新生成PDF报告等选项;页面会定时刷新,以获取当前执行过程中文件的状态。用户可以根据需要选择刷新频率为15秒、30秒、或者一分钟;页面可以根据需要进行显示全部或者显示指定的部分内容,自动刷新会根据用户上一次的选择,进行已显示的内容的刷新。
导出为excel形式是指用户可在Web端将筛选出的操作记录信息,并保存为Excel格式。例如,客户端将选择的记录的主键封装成一个数组,并传到服务器端;服务器端根据所传的主键,在数据库中找到全部数据,并将查询到的对象生成Excel文件,供客户端下载。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种用于确定相似字符串的方法,包括:
步骤1:获取样本文件的字符数组和待检测的目标文件的字符数组;
步骤2:构建矩阵M,其中,矩阵M的行和列分别对应所述样本文件的字符数组和所述目标文件的字符数组,对于所述矩阵M中的每个元素,如果行对应的字符和列对应的字符相等,则将该元素设置为1,否则设置为0;
步骤3:在所述矩阵M中查找满足相似字符串条件的子方阵,其中,所述相似字符串条件设置为:如果该子方阵中的元素
Figure FDA0002463026450000011
对应的行和列都至少存在一个取值为1的元素,则
Figure FDA0002463026450000012
所映射的字符串被确定为相似字符串,其中,k表示该子方阵的阶数,j1、j2、j3、…jk是1、2、…、k的一个排列。
2.根据权利要求1所述的方法,其中,所述样本文件的字符数组和所述目标文件的字符数组中的每个元素对应对文件内容进行分词处理之后的字符。
3.根据权利要求1所述的方法,其中,在所述矩阵M中查找满足相似字符串条件的子方阵,包括:
如果所述矩阵M中存在不止一个满足所述相似字符串条件的子方阵,选择阶数最大的子方阵对应的相似字符串以作为最长的相似字符串。
4.根据权利要求3所述的方法,其中,所述在矩阵M中查找满足相似字符串条件的子方阵的步骤包括:
步骤11:设置待查找的子方阵A1的阶数k;
步骤12:遍历矩阵M,以查找符合所述相似字符串条件子方阵A1,其中,子方阵A1中的元素满足
Figure FDA0002463026450000013
不为0;
步骤13:基于所找到的子方阵A1进一步查找满足所述相似字符串条件的子方阵A2,其中,A1是子方阵A2的子集;
步骤14:确定所述子方阵A2映射的相似字符串和该相似字符串在所述目标文件中的位置。
5.根据权利要求4所述的方法,其中,所述子方阵A1的阶数k大于预定的阈值。
6.一种用于文件查重的方法,包括:
步骤21:利用权利要求1至5中的任一项所述的方法查找所述目标文件和所述样本文件中的相似字符串;
步骤22:根据所述相似字符串计算所述样本文件和所述目标文件的相似比。
7.一种利用hadoop集群进行文件查重的方法,包括以下步骤:
步骤31:利用map函数将查找一个目标文件相对于多个样本文件的查重任务分解为多个查找一个目标文件相对于一个样本文件的子任务;
步骤32:利用reduce函数根据权利要求6所述的方法并行查找对应每个子任务的相似比。
8.根据权利要求7所述的方法,其中,在步骤32之后,还包括当所述相似比超过相似比阈值时,输出所述目标文件与每个样本文件的相似比的列表。
9.根据权利要求8所述的方法,其中,所述相似比的列表包括章节相似比和全文相似比。
10.一种用于文件查重的系统,包括:
用于利用权利要求1至5中的任一项所述的方法查找所述目标文件和所述样本文件中的相似字符串的模块;
用于根据所述相似字符串计算所述样本文件和所述目标文件的相似比的模块。
CN201710012780.5A 2017-01-09 2017-01-09 确定相似字符串的方法、文件查重的方法及系统 Active CN106909609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710012780.5A CN106909609B (zh) 2017-01-09 2017-01-09 确定相似字符串的方法、文件查重的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710012780.5A CN106909609B (zh) 2017-01-09 2017-01-09 确定相似字符串的方法、文件查重的方法及系统

Publications (2)

Publication Number Publication Date
CN106909609A CN106909609A (zh) 2017-06-30
CN106909609B true CN106909609B (zh) 2020-08-04

Family

ID=59207446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710012780.5A Active CN106909609B (zh) 2017-01-09 2017-01-09 确定相似字符串的方法、文件查重的方法及系统

Country Status (1)

Country Link
CN (1) CN106909609B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885808B (zh) * 2017-11-03 2021-03-30 四川文轩教育科技有限公司 共享资源文件防作弊方法
CN108573045B (zh) * 2018-04-18 2021-12-24 同方知网数字出版技术股份有限公司 一种基于多阶指纹的比对矩阵相似度检索方法
CN108804418B (zh) * 2018-05-21 2022-03-08 浪潮软件股份有限公司 一种基于语义分析的文档查重方法和装置
CN110110744A (zh) * 2019-03-27 2019-08-09 平安国际智慧城市科技股份有限公司 基于语义理解的文本配对方法、装置及计算机设备
CN110717328B (zh) * 2019-07-04 2021-06-18 北京达佳互联信息技术有限公司 文本识别方法、装置、电子设备及存储介质
CN110532352B (zh) * 2019-08-20 2023-10-27 腾讯科技(深圳)有限公司 文本查重方法及装置、计算机可读存储介质、电子设备
CN110941743B (zh) * 2019-10-14 2023-09-15 广西壮族自治区科学技术情报研究所 一种基于深度学习算法自动实现字段权重分配的科技项目查重方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724597A (en) * 1994-07-29 1998-03-03 U S West Technologies, Inc. Method and system for matching names and addresses
CN103399907A (zh) * 2013-07-31 2013-11-20 深圳市华傲数据技术有限公司 一种基于编辑距离计算中文字符串相似度的方法及装置
CN104160396A (zh) * 2012-03-01 2014-11-19 国际商业机器公司 在字符串集之中查找最佳匹配字符串
CN106033416A (zh) * 2015-03-09 2016-10-19 阿里巴巴集团控股有限公司 一种字符串处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724597A (en) * 1994-07-29 1998-03-03 U S West Technologies, Inc. Method and system for matching names and addresses
CN104160396A (zh) * 2012-03-01 2014-11-19 国际商业机器公司 在字符串集之中查找最佳匹配字符串
CN103399907A (zh) * 2013-07-31 2013-11-20 深圳市华傲数据技术有限公司 一种基于编辑距离计算中文字符串相似度的方法及装置
CN106033416A (zh) * 2015-03-09 2016-10-19 阿里巴巴集团控股有限公司 一种字符串处理方法及装置

Also Published As

Publication number Publication date
CN106909609A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN106909609B (zh) 确定相似字符串的方法、文件查重的方法及系统
US10169337B2 (en) Converting data into natural language form
CN108932294B (zh) 基于索引的简历数据处理方法、装置、设备及存储介质
US11550783B2 (en) One-shot learning for text-to-SQL
US10521441B2 (en) System and method for approximate searching very large data
US11853334B2 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
US8375021B2 (en) Search engine data structure
US20090043741A1 (en) Autocompletion and Automatic Input Method Correction for Partially Entered Search Query
KR100627195B1 (ko) 광학문자인식으로 생성된 전자문서 검색방법 및 그 시스템
US20210319039A1 (en) Extraction of a nested hierarchical structure from text data in an unstructured version of a document
Parameswaran et al. Optimal schemes for robust web extraction
CN106570196B (zh) 视频节目的搜索方法和装置
Cryans et al. Adaptation of APriori to MapReduce to build a warehouse of relations between named entities across the web
KR20210129465A (ko) 연구노트 관리 장치 및 이를 이용한 연구노트 검색 방법
US10824606B1 (en) Standardizing values of a dataset
Bartoli et al. Semisupervised wrapper choice and generation for print-oriented documents
WO2014170965A1 (ja) 文書処理方法、文書処理装置および文書処理プログラム
CN114218347A (zh) 多个文件内容的快速索引查找方法
CN113420219A (zh) 用于查询信息纠错的方法、装置、电子设备及可读存储介质
US9483553B2 (en) System and method for identifying related elements with respect to a query in a repository
CN115687580B (zh) 搜索提醒补全的生成和重排序方法、装置、设备及介质
US20240119070A1 (en) System and method for hybrid multilingual search indexing
Knoblock et al. A machine learning approach to accurately and reliably extracting data from the web
CN115952309A (zh) 面向多个多媒体检索任务的结构化多模态检索方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240228

Address after: Room A-8006, Building 3, No. 20 Yong'an Road, Shilong Economic Development Zone, Mentougou District, Beijing, 102300 (cluster registration)

Patentee after: Beijing Jinyuze Technology Co.,Ltd.

Country or region after: China

Address before: 100041 Beijing City, Shijingshan District Jin Yuan Zhuang Road No. 5

Patentee before: NORTH CHINA University OF TECHNOLOGY

Country or region before: China