CN108415889B - 一种基于带权一次置换哈希算法的文本相似性检测方法 - Google Patents
一种基于带权一次置换哈希算法的文本相似性检测方法 Download PDFInfo
- Publication number
- CN108415889B CN108415889B CN201810222522.4A CN201810222522A CN108415889B CN 108415889 B CN108415889 B CN 108415889B CN 201810222522 A CN201810222522 A CN 201810222522A CN 108415889 B CN108415889 B CN 108415889B
- Authority
- CN
- China
- Prior art keywords
- similarity
- partitions
- value
- comparison
- partition
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明公开了一种基于带权一次置换哈希算法的文本相似性检测方法,通过基于One Permutation Hashing算法,并结合权重的思想,将一次随机置换产生的随机序列,先按权重比例t1,t2,…,tm划分m为份,然后在每个划分ti(i∈[0,m])中做不同粒度的分组,将其均匀的划分为ki个区。本发明可以让特征值的不均匀划分,让特征值前少后多。在比对过程中设定相似度很大或者很小的阈值。如果当比对得到的相似度高于某个阈值时,可以提前输出,无需后续的比对的;如果当比对得到的相似度低于某个阈值时,就需要将后续权值较小的区域产生的指纹进行比对。在海量文本相似性比对过程中,这种指纹比对方法能有效地提高指纹比对的效率。
Description
技术领域
本发明涉及一种基于带权一次置换哈希算法的文本相似性检测方法。
背景技术
随着计算机技术和互联网技术的发展,以及大数据时代的到来,越来越多的文献信息被数字化、电子化,一方面给人们交流带来了便利,另一方面也为抄袭、剽窃或者复制他人的学术成果提供了温床。利用非法手段抄袭他人学术研究成果,严重损害了众多专家和学者的知识产权,也为学术界的公平、公正蒙上了阴影。文本相似性检测技术是保护数字产品知识产权的一种有效手段,它被广泛地应用于搜索引擎、反垃圾邮件、反学术成果抄袭、数字图书馆等方面。
早在20世纪70年代便开始了文档相似性检测技术的研究,主要针对的是程序拷贝的问题。直到20世纪90年代,人们才开始针对自然语言文本的复制检测问题进行研究,发展至今文档复制检测技术已逐渐成熟。传统比较两个文本相似性的方法,大多是将文本分词之后,转化为特征向量距离的度量,比如常见的欧氏距离、海明距离或者余弦角度等等。这些算法效率比较低下,检测结果的精确度和准确度也不高,故只能用于文本数据少的情况下,无法将其扩展到海量数据的相似性检测中。海量文档的相似性检测,是将每一个文档通过hash的方式生成一个指纹(fingerprint),然后通过计算指纹相等的次数,来估计相似度。这类算法被称为哈希相似性估计检测算法,最具有代表的是Minwise Hash。
Minwise Hash算法是局部敏感哈希的一种,主要用于估算两个集合的相似度,并以Jaccard相似系数作为相似度的理论值。Minwise哈希算法计算速度快,产生指纹过程简单,被广泛用于网页去重、文本相似性检测等领域。算法在对两个文档集进行相似检测时,是经过K次随机置换产生K个特征值(指纹);然后比对特征值相等的次数,进而估算两个文档集的相似度。在估算文档的相似度时,要想达到很高的精确度和准确度,指纹的数量K要取得足够多,一般地取K=500。常规地,Minwise哈希算法一次随机置换,只能产生一个特征值;也就是说,取指纹的数量K=500时,需要进行K次随机置换。然而,当我们在检测海量文档的相似度时,会花费大量的时间在随机置换上。例如,当需要检测的文档数量D=100万份,取指纹的数量K=500,整个检测过程的随机置换的次数N=D*K=100万*500=5亿。显然,在海量文档相似性检测过程中,花费在随机置换的时间是巨大的。
为了减少Minwise哈希算法随机置换的次数,Li Ping在2012年提出了OnePermutation Hashing算法,简称OPH。该算法只需一次随机置换就能K个指纹值,用这K个指纹值就可以估计文档集合的相似性。OPH将传统Minwise Hash置换次数K=500减少到1,极大地降低了Minwise Hash算法随机置换过程中的时间,同时能保证精度基本不变,甚至略好一些。具体算法过程如下:
表1 π(S1)和π(S2)示例
然后将全集Ω均匀划分成k区域,在每个区域选择第一个非零元素作为一次抽样产生的指纹;如果某区域为空,即该区域不存在非零元素,就以*作为一次抽样产生的指纹。这样OPH的一次随机置换就能通过k区域产生k个指纹值。例如:设集合S1和S2经过一次随机置换产生的随机序列分别为π(S1)={2,4,7,13}和π(S2)={0,3,6,12};令k=4,并在每个区域内选择第一个非零元素作为一次抽样产生哈希值。因此,S1和S2经过OPH算法产生的指纹分别为[2,0,*,1]和[0,2,*,0]。
OPH算法定义Nemp表示两个集合中同时为空的区域的数量,Nmat表示两个集合中,不为空且指纹值相等的区域的数量,如所示:
其中,Ii表示第i个区,Iemp,i和Imat,i的定义如和所示:
S1和S2的One Permutation Hashing相似度估计子为:
One Permutation Hash的无偏估计子为:
其方差为:
与Minwise Hash相比,在产生同样的指纹数目时,OPH将随机置换次数K从500减少到1,虽然极大地降低了随机置换过程的时间,提高了抽样算法的效率,但是OPH必须将一次随机置换产生的随机序列均匀地划分为K个区(bin),然后把每个区的最小非零元素作为一次取样,这样一个集合就能得到K个指纹值,这K个指纹值即为OPH的特征值。但是OPH在度量文本的相似性时,须进行完整的特征值比对,当文本较大时,完整的比对整个文本的特征值将消耗相当多的运算成本。
发明内容
本发明提供一种不均匀地划分为K个区,并在特征值比对过程中提前输出的基于带权一次置换哈希算法的文本相似性检测方法。
为了实现上述技术目的,本发明的技术方案是,
一种基于带权一次置换哈希算法的文本相似性检测方法,包括以下步骤:
步骤一,将需要互相进行文本相似性比对的两个文档分别利用Shingling算法和rabin哈希算法生成两个集合;
步骤二,根据步骤一中两个文档所生成的两个集合汇总得到的全集来生成一个一次随机置换函数,并基于这个函数来使步骤一中的两个集合产生两个包含多个特征值的随机序列;
步骤三,对产生的两个随机序列分别按相同的预设非均匀比例进行划分以得到多个分块,然后再将每个分块进行均匀分区得到多个分区,且在先分块的分区数量小于在后分块的分区数量;
步骤四,对于两个随机序列基于分区来按顺序互相比较特征值,然后根据比较结果计算得出各分区累计下来的相似性,并与预先设置的阈值进行比较,若超出阈值,则以当前相似性作为文档的相似程度值,否则比较完所有分区后输出相似性作为文档的相似程度值;
所述的方法,在步骤四中,根据特征统计的结果计算各分区累计下来的相似性时,先设定判断文档为相似的相似阈值,在计算相似性时,先比较在先分区的特征值来得到在先分区的相似性,如果此时的相似性高于预先设定的相似阈值,则停止计算并以当前相似性的值作为文档的相似程度值并判断两篇文档为相似,否则继续比较在后分区的特征值。
所述的方法,在步骤四中,根据特征统计的结果计算各分区累计下来的相似性时,先设定判断文档为不相似的不相似阈值,在计算相似性时,先比较在先分区的特征值,并得到相似性,如果此时的相似性低于不相似阈值,则停止计算并以当前相似性的值作为文档的相似程度值并判断两篇文档为不相似,否则继续比较在后分区的特征值。
所述的方法,所述的步骤四中,所述的特征值是基于分区进行非零元素抽样得到的指纹值。
所述的方法,所述的步骤四中,所述的指纹值是在每个分区中以第一个非零元素作为抽样产生的指纹值,如果分区不存在非零元素,则以一个固定的预设值作为指纹值。
所述的方法,所述的步骤四中,所述的根据特征值统计的结果计算两个集合的相似性的值,是通过统计两个随机序列中所有同时为空的分区的数量,以及两个随机序列中不为空且指纹值相等的分区的数量,再引入权重值进行除法运算得到的。
本发明的技术效果在于,相对于Minwise Hashing算法,本发明将置换次数K=500减少到1,极大地降低了随机置换的次数,有效地节省了随机置换序列的存储空间,也大大的减少了计算时间。而对于OPH算法,本发明通过不均匀的分区设置,实现了在特征值比对过程中提前输出的目的,能够有效的节约计算成本。同时,根据哈希算法的相似性和精度的关系,如图3所示,在相似性很大或很小时,精度都比较的高。因此,本发明在划分时,可以让特征值的不均匀划分,让特征值前少后多。在特征值比对过程中设定相似度很大或者很小的阈值。如果当比对得到的相似度高于某个阈值时,可以提前输出,无需后续的比对的;如果当比对得到的相似度低于某个阈值时,就需要将后续权值较小的区域产生的指纹进行比对。在海量文本相似性比对过程中,这种指纹比对方法能有效地提高指纹比对的效率。
下面结合附图对本发明作进一步说明。
附图说明
图1为本发明进行分块和分区的示意图,将一次随机置换产生的随机序列,先按比例划分为t1到tm块,然后在每个划分的ti块中均匀的分成ki个区。
图2为One Permutation Hashing算法示意图,通过k1和k2按比例取样构成带权的划分kw。
图3为哈希算法中相似性与精度的关系示意图。
具体实施方式
本发明思想是将一次随机置换产生的随机序列,先按比例划分为t1到tm份,然后在每个划分的比例ti中均匀的分成ki个区。具体划分如图1所示。
其中t={t1,t2,...,tm}为比例划分,其中为每个比例划分中对应的均匀划分区的个数。因此,可以在每个均匀划分ki中,利用公式(1)统计得到Nmatw和Nempw的值,那么本发明的无偏估计子为:
我们在实际应用中利用本发明计算集合S1和S2相似度时,对一次随机置换产生的随机序列,先按比例划分为t1到tm份,然后在每个划分的比例ti中均匀的分成ki个区。本发明实现步骤如下:
输入:集合S1,S2∈Ω={0,1,…,D-1},t={t1,t2,...,tm}和k={k1,k2,...,km}
算法步骤:
(1)产生一次随机置换函数π:Ω→Ω
(2)根据置换函数π,对集合S1和S2产生的随机序列分别为π(S1),π(S-2)
(3)对π(S1)和π(S2)按比例划分为t1到tm份,并在每个比划分ti(i∈[0,m])中均匀的分成ki个区
(4)在每个均匀划分ki中统计得到Nmatw和Nempw的值
输出:Rw
本发明可以设置特征值的不均匀划分,让特征值前少后多。具体可以在每个比例ti中,均匀地分成ki个区时,可以设置k1<k2<…<ki<…<km;ki越小,同比例区域抽样产生的指纹就越少,对集合S的代表性也就越差。如图3所示,在哈希算法中实际相似度很大或者很少时,精度高;而相似度在50%上下时,精度低。因此,在实际应用中,本发明完全可以设置特征值前少后多,并在比对过程中设定相似度很大或者很小的阈值。如果比对得到的相似度高于某个阈值,可以提前输出,无需后续的比对的;如果比对得到的相似度低于某个阈值,就进行后续权值小的区域产生的指纹,进行后续的比对。
为了更直观地证明本发明的正确性:我们假设集合S经过一次随机置换产生的随机序列为π(S),先利用OPH算法分别将随机序列均匀地划分为k1和k2区(bin);从k1取比例t1(0<t1<1)的bins;从k2取比例t2(0<t2<1)的bins,其中t1+t2=1。则有:
kw=t1·k1+t2·k2 (9)
通过从k1和k2按比例取样构成新的划分kw,其中会形成新的权重w1和w2分别为:
具体实现过程如图2所示。
根据OPH算法可以在当k=k1和k=k2时得到Nmat1和Nmat2的值;那么我们就可以根据概率论得到:
Pr(Imat,j=1,j∈[1,kw])=w1Pr(Imat,j=1,j∈[1,t1k1])+w2Pr(Imat,j=1,j∈[t1k1+1,t1k1+t2k2])其中,表示图2中III所有match的概率;
即可以根据之前所取的比例计算得到Nmatw的值,其中:
Nmatw=t1·Nmat1+t2·Nmat2 (11)
同理,根据之前所取的比例也可以得到Nempω的值,其中:
Nempw=t1·Nemp1+t2·Nemp2 (12)
由公式(5)得Nmat1和Nmat2可以写成:Nmat1=R(k1-Nemp1),Nmat2=R(k2-Nemp2)而结合公式(11)的Nmatw=t1·Nmat1+t2·Nmat2,则有:
Nmatw=t1·R·(k1+Nemp1)+t2·R·(k2-Nemp2)
结合公式(12),则本发明的无偏估计子为:
那么,本发明的方差为:
此外,当k2≥k1时,则有Var(Rmat2)≤Var(Rmatω)≤Var(Rmat1),证明如下:由公式(14)和(15)知,
当k2≥k1时,kw=t1·k1+t2·k2,其中t1+t2=1,则k2≥kw≥k1
取k2=c·k1和Nemp2=d·Nemp1其中c,d>0
则有:Nmat1·k2-Nmat1·Nemp2=Nmat2·k1-Nmat2·Nemp1
即,Nmat2·k1-Nmat1·k2=Nmat2·Nemp1-Nmat1·Nemp2
将k2=c·k1和Nemp2=d·Nemp1代入上式,可得:
Nmat2k1-Nmat1·c·k1=Nmat2·Nemp1-Nmat1·d·Nemp1
则有:k1·(Nmat2-c·Nmat1)=Nemp1·(Nmat2-d·Nmat1)
令c=x·d,则有:
将k2=c·k1和Nemp2=d·Nemp1代入,可得:
此外,由Li Ping 2012年在One Permutation Hashing的Lemma 8可知
Nemp2≥Nemp1则d≥1,所以就有Nemp2≥Nmat1
因此,当k2≤k1时,kw=t1·k1+t2·k2,其中t1+t2=1,则k2≥kw≥k1
且由公式(11)可知,Nmatw=t1·Nmat1+t2·Nmat2,则有Nmat2≥Nmatω≥Nmat1
则有Var(Rmat2)≤Var(Rmatw)≤Var(Rmat1),故本发明是正确且有效的。
Claims (6)
1.一种基于带权一次置换哈希算法的文本相似性检测方法,其特征在于,包括以下步骤:
步骤一,将需要互相进行文本相似性比对的两个文档分别利用Shingling算法和rabin哈希算法生成两个集合;
步骤二,根据步骤一中两个文档所生成的两个集合汇总得到的全集来生成一个一次随机置换函数,并基于这个函数来使步骤一中的两个集合产生两个包含多个特征值的随机序列;
步骤三,对产生的两个随机序列分别按相同的预设非均匀比例进行划分以得到多个分块,然后再将每个分块进行均匀分区得到多个分区,且在先分块的分区数量小于在后分块的分区数量;
步骤四,对于两个随机序列基于分区来按顺序互相比较特征值,然后根据比较结果计算得出各分区累计下来的相似性,并与预先设置的阈值进行比较,若超出阈值,则以当前相似性作为文档的相似程度值,否则比较完所有分区后输出相似性作为文档的相似程度值。
2.根据权利要求1所述的方法,其特征在于,在步骤四中,根据比较结果计算得出各分区累计下来的相似性时,先设定判断文档为相似的相似阈值,在计算相似性时,先比较在先分区的特征值来得到在先分区的相似性,如果此时的相似性高于预先设定的相似阈值,则停止计算并以当前相似性的值作为文档的相似程度值并判断两篇文档为相似,否则继续比较在后分区的特征值。
3.根据权利要求1所述的方法,其特征在于,在步骤四中,根据比较结果计算得出各分区累计下来的相似性时,先设定判断文档为不相似的不相似阈值,在计算相似性时,先比较在先分区的特征值,并得到相似性,如果此时的相似性低于不相似阈值,则停止计算并以当前相似性的值作为文档的相似程度值并判断两篇文档为不相似,否则继续比较在后分区的特征值。
4.根据权利要求1所述的方法,其特征在于,所述的步骤四中,所述的特征值是基于分区进行非零元素抽样得到的指纹值。
5.根据权利要求4所述的方法,其特征在于,所述的步骤四中,所述的指纹值是在每个分区中以第一个非零元素作为抽样产生的指纹值,如果分区不存在非零元素,则以一个固定的预设值作为指纹值。
6.根据权利要求5所述的方法,其特征在于,所述的步骤四中,所述的根据比较结果计算得出各分区累计下来的相似性,是通过统计两个随机序列中所有同时为空的分区的数量,以及两个随机序列中不为空且指纹值相等的分区的数量,再引入权重值进行除法运算得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810222522.4A CN108415889B (zh) | 2018-03-19 | 2018-03-19 | 一种基于带权一次置换哈希算法的文本相似性检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810222522.4A CN108415889B (zh) | 2018-03-19 | 2018-03-19 | 一种基于带权一次置换哈希算法的文本相似性检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108415889A CN108415889A (zh) | 2018-08-17 |
CN108415889B true CN108415889B (zh) | 2021-05-14 |
Family
ID=63132035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810222522.4A Active CN108415889B (zh) | 2018-03-19 | 2018-03-19 | 一种基于带权一次置换哈希算法的文本相似性检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108415889B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111222314B (zh) * | 2020-01-03 | 2021-12-21 | 北大方正集团有限公司 | 版式文档的比对方法、装置、设备及存储介质 |
CN111444325B (zh) * | 2020-03-30 | 2023-06-20 | 湖南工业大学 | 一种位置编码单次随机置换哈希度量文档相似度的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636325A (zh) * | 2015-02-06 | 2015-05-20 | 中南大学 | 一种基于极大似然估计确定文档相似度的方法 |
US20180052933A1 (en) * | 2016-08-17 | 2018-02-22 | Adobe Systems Incorporated | Control of Document Similarity Determinations by Respective Nodes of a Plurality of Computing Devices |
-
2018
- 2018-03-19 CN CN201810222522.4A patent/CN108415889B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636325A (zh) * | 2015-02-06 | 2015-05-20 | 中南大学 | 一种基于极大似然估计确定文档相似度的方法 |
US20180052933A1 (en) * | 2016-08-17 | 2018-02-22 | Adobe Systems Incorporated | Control of Document Similarity Determinations by Respective Nodes of a Plurality of Computing Devices |
Non-Patent Citations (2)
Title |
---|
Søren Dahlgaard et al..Fast Similarity Sketching.《58th Annual IEEE Symposium on Foundations of Computer Science》.2017,第663-671页. * |
连接位Minwise Hash算法的研究;袁鑫攀 等;《计算机研究与发展》;20130430;第50卷(第4期);第883-890页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108415889A (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ohsaka et al. | Dynamic influence analysis in evolving networks | |
Kane et al. | Fast moment estimation in data streams in optimal space | |
Sohler et al. | Subspace embeddings for the l1-norm with applications | |
Ordonez et al. | FREM: fast and robust EM clustering for large data sets | |
CN108595517B (zh) | 一种大规模文档相似性检测方法 | |
CN109409128B (zh) | 一种面向差分隐私保护的频繁项集挖掘方法 | |
CN108897775A (zh) | 一种基于感知哈希的快速图像识别系统及方法 | |
US20080082531A1 (en) | Clustering system and method | |
CN109948125A (zh) | 改进的Simhash算法在文本去重中的方法及系统 | |
Ghasemi et al. | SRF: Matrix completion based on smoothed rank function | |
CN108415889B (zh) | 一种基于带权一次置换哈希算法的文本相似性检测方法 | |
CN104050299A (zh) | 一种论文查重的方法 | |
Ertl | Probminhash–a class of locality-sensitive hash algorithms for the (probability) jaccard similarity | |
Bachrach et al. | Sketching for big data recommender systems using fast pseudo-random fingerprints | |
CN107895053B (zh) | 基于话题簇动量模型的新兴热点话题检测系统及方法 | |
CN109271614A (zh) | 一种数据查重方法 | |
Tirthapura et al. | Rectangle-efficient aggregation in spatial data streams | |
Chu et al. | An alternating rank-k nonnegative least squares framework (ARkNLS) for nonnegative matrix factorization | |
US11373042B2 (en) | Embeddings with classes | |
CN117251879A (zh) | 基于信任扩展的安全存储与查询方法、系统及计算机储存介质 | |
CN104008334A (zh) | 一种文件的聚类方法和设备 | |
Lee et al. | Similar pair identification using locality-sensitive hashing technique | |
CN110276050B (zh) | 对高维向量相似性比较的方法及装置 | |
CN113609247A (zh) | 一种基于改进Simhash算法的大数据文本去重技术 | |
Zhang et al. | An approximate approach to frequent itemset mining |
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 |