一种大数据相似文本去重预处理方法、装置及终端设备与流程

文档序号:25281758发布日期:2021-06-01 17:28阅读:49来源:国知局

本发明涉及大数据文本处理研究领域,具体涉及一种大数据相似文本去重预处理方法、装置及终端设备。



背景技术:

随着互联网的普及和发展,网络中数据量与日俱增。因而,重复数据的产生也不可避免。为了减少数据冗余,提高检索效率和存储设备的利用率,对相似文本进行去重具有重大的意义。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的文本去重的方案,大多是基于余弦夹角算法、欧式距离、jaccard相似度、最长公共子串、编辑距离等,直接对大数据的海量文本进行比对,效率较低。



技术实现要素:

为了克服现有技术的不足,本发明提供了一种大数据相似文本去重预处理方法、装置及终端设备,通过对文本集合进行预处理,划分为子集后,减小计算范围的同时,可以并行计算相似度,减小相似度计算数据量,提高了相似文本去重计算的效率。技术方案如下:

提供了一种大数据相似文本去重预处理方法,该方法包括如下步骤:

步骤1,文本总数为n,假设每个文本t长度类似,长度平均值为l,文本全集s={ti|i∈[1,n]},对文本集合s中的每个文本t进行分词,把分词后的词语进行清洗得到词语集合w={wi|i∈[1,m],n≪m},m是得到词语的总个数,根据分词建立倒排索引,若文本某一个关键词出现多次,词语集合w中只记录一次,建立倒排索引后,可以根据词语集合w中的词语快速找到包含这个词语的文本。

步骤2,统计词语集合w中的词语在文本全集s中出现的频数,设置频数阈值t,若词语集合w中的词语出现的频数在文本集合s中大于t,将这些高频词语标记为关键词,记为集合k={ki|i∈[1,m’],k⊆w},m’为高频词语的个数,即关键词个数,集合k是集合w的某一子集,k是有序集合。

步骤3,根据关键词集合k中的元素,遍历倒排索引,为文本集合s中的每个文本生成关键词属性值v,即文本集合s中的任一文本都有唯一关键词属性值与之对应。

关键词属性v的生成规则:

定义一个函数,g(ki)=2(i-1),1≤i≤m’,

文本ti中包含的关键词集合为:

ksub⊆k,a为文本ti中的关键词个数;

所以ti的关键词属性值:

步骤4,根据文本集合s中文本的关键词属性v建立的b+树,对文本进行分类,使得关键词属性v相同的文本对应到b+树中的同一个叶子节点关键字。

在去重操作时,可以快速查找到特定关键词组合的所有文本,在这组文本上进行相似度计算,根据实际需要来保留和去除相似文本。

优选的,步骤1中,把分词后的词语进行清洗为:去掉标点符号、无实际意义的词、停用词处理。

优选的,步骤2中,k是有序集合指:k中关键词按字典顺序排序的有序集合。

优选的,步骤2中,阈值t为:t=μn,0<μ<1,μ为常量,表示文本中词语文字的总长占据文本总长的比例阈值。

优选的,步骤4中,b+树建立过程如下:

b+树中存在两种节点,一种是叶子节点,一种是索引节点,索引节点只存放关键字,叶子节点存放数据,根结点可以是叶子节点也可以是索引节点。

(1)遍历s中的文本,每个文本对应一个v值,将其作为关键字插入到b+树中。

(2)b+树节点插入过程如下:

假设b+树阶数为x,节点内关键字个数的范围[⌈x/2⌉,x]。

插入过程始终在叶子节点操作,并且不能破坏关键字自小到大的顺序。

1)若为空树,则生成一个叶子节点并插入关键字,当前叶子节点也是根节点,结束。

2)否则,对于叶子节点,若当前插入的叶子节点插入关键字后,关键字个数小于等于x,则结束,否则,当前叶子节点分裂成左右两个叶子节点,左节点包含前x/2个关键字,右节点包含后x/2+1个关键字,将右节点第1个关键字上升到父节点,并将该关键字左孩子指针指向左节点,右孩子指针指向右节点,当前节点指针指向该关键字所在节点。

3)对于索引节点,若当前节点指针关键字个数小于等于x,则结束,否则,分裂成左右两个索引节点,左节点包含前x/2个关键字,右节点包含后x/2+1个关键字,将右节点第1个关键字上升到父节点,并将该关键字左孩子指针指向左节点,右孩子指针指向右节点,当前节点指针指向该关键字所在节点;重复步骤3)。

与现有技术相比,上述技术方案中的一个技术方案具有如下有益效果:通过把文本全集s划分为若干子集,原先在全集上的相似度计算操作被转移到子集上,相似度计算一般是两个文本为一组进行比较,所以划分为子集后,减小范围的同时,可以并行计算相似度,提高了相似文本去重计算的效率。

具体实施方式

为了阐明本发明的技术方案和工作原理,下面将对本公开实施方式做进一步的详细描述。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

本申请的说明书和权利要求书中的术语“步骤1”、“步骤2”、“步骤3”等类似描述是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里描述的那些以外的顺序实施。

第一方面,本公开实施例提供了一种大数据相似文本去重预处理方法,该方法包括如下步骤:

步骤1:文本总数为n,假设每个文本t长度类似,长度平均值为l,文本全集s={ti|i∈[1,n]},对文本集合s中的每个文本t进行分词,把分词后的词语进行清洗(优选的,把分词后的词语进行清洗为:去掉标点符号、无实际意义的词、停用词处理),得到词语集合w={wi|i∈[1,m],n≪m},m是得到词语的总个数,根据分词建立倒排索引,若文本某一个关键词出现多次,词语集合w中只记录一次,建立倒排索引后,可以根据词语集合w中的词语快速找到包含这个词语的文本。

步骤2:统计词语集合w中的词语在文本全集s中出现的频数,设置频数阈值t,若词语集合w中的词语出现的频数在文本集合s中大于t,将其标记为高频关键词,记为集合k={ki|i∈[1,m’],k⊆w},m’为高频词语的个数,即关键词个数,集合k是集合w的某一子集,k是有序集合,优选的,k是有序集合指:k中关键词按字典顺序排序的有序集合。

优选的,阈值t为:t=μn,(0<μ<1),μ为常量,表示文本中词语文字的总长占据文本总长的比例阈值。

若t值太小,可能存在两个文本a、b,使得文本a、b的jaccard相似度j(a,b)=|a∩b|/|a∪b|过小,即文本a、b只包含少量公共文本,此时我们计算两个文本的相似度可能没有意义。

步骤3根据关键词集合k中的元素,遍历倒排索引,为文本集合s中的每个文本生成关键词属性值v,即文本集合s中的任一文本都有唯一关键词属性值与之对应。

关键词属性v的生成规则:

定义一个函数,g(ki)=2(i-1),1≤i≤m’,g(ki)根据关键词ki在原集合k中的顺序得到一个数值,转化成二进制数时表示从右往左第i位数为1,其余位为0。

文本ti中包含的关键词集合为:

ksub⊆k,a为文本ti中的关键词个数;

所以ti的关键词属性值:

f(ti)根据ti的所有关键词对应的g数值求和,转化成二进制数表示所有关键词的二进制数进行或运算得到的最终结果,使得具有相同关键词的文本具有相同的v值。

步骤4,根据文本集合s中文本的关键词属性v建立的b+树,对文本进行分类,使得关键词属性v相同的文本对应到b+树中的同一个叶子节点关键字。在去重操作时,可以快速查找到特定关键词组合(即v值相同)的所有文本,在这组文本上进行相似度计算(如:计算jaccard相似度和cosine相似度),根据实际需要来保留和去除相似文本。

b+树中存在两种节点,一种是叶子节点,一种是索引节点,索引节点只存放关键字,叶子节点存放数据,根结点可以是叶子节点也可以是索引节点。

优选的,此b+树建立过程如下:

(1)遍历s中的文本,每个文本对应一个v值,将其作为关键字插入到b+树中。

(2)b+树节点插入过程如下:

假设b+树阶数为x,节点内关键字个数的范围[⌈x/2⌉,x],

插入过程始终在叶子节点操作,并且不能破坏关键字自小到大的顺序。

1)若为空树,则生成一个叶子节点并插入关键字,当前叶子节点也是根节点,结束。

2)否则,对于叶子节点,若当前插入的叶子节点插入关键字后,关键字个数小于等于x,则结束。否则,当前叶子节点分裂成左右两个叶子节点,左节点包含前x/2个关键字,右节点包含后x/2+1个关键字。将右节点第1个关键字上升到父节点(即索引节点,若索引节点不存在,则创建一个索引节点),并将该关键字左孩子指针指向左节点,右孩子指针指向右节点,当前节点指针指向该关键字所在节点。

3)对于索引节点,若当前节点指针关键字个数小于等于x,则结束。否则,分裂成左右两个索引节点,左节点包含前x/2个关键字,右节点包含后x/2+1个关键字。将右节点第1个关键字上升到父节点(即索引节点,若索引节点不存在,则创建一个索引节点),并将该关键字左孩子指针指向左节点,右孩子指针指向右节点,当前节点指针指向该关键字所在节点;重复步骤3)。

利用b+树中所有叶子节点相互连接的特点,可以快速查找和遍历叶子节点中的元素。b+树的叶子节点可以包含多个元素,每个元素对应一个或多个文本,即b+树的所有叶子节点中的每个元素对应一个文本集合,这些文本集合就是预处理操作得到的结果。

第二方面,本公开实施例提供了一种大数据相似文本去重预处理装置,基于相同的技术构思,该装置可以实现或执行所有可能的实现方式中任一项所述的一种大数据相似文本去重预处理方法;该装置包括分词模块、筛选关键词模块、计算模块、分类模块。

所述分词模块,用于执行所有可能的实现方式中任一项所述的一种大数据相似文本去重预处理方法的步骤1的步骤。

所述筛选关键词模块,用于执行所有可能的实现方式中任一项所述的一种大数据相似文本去重预处理方法的步骤2的步骤。

所述计算模块,用于执行所有可能的实现方式中任一项所述的一种大数据相似文本去重预处理方法的步骤3的步骤。

所述分类模块,用于执行所有可能的实现方式中任一项所述的一种大数据相似文本去重预处理方法的步骤4的步骤。

需要说明的是,上述实施例提供的一种大数据相似文本去重预处理装置在执行一种大数据相似文本去重预处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外上述实施例提供的一种大数据相似文本去重预处理装置与一种大数据相似文本去重预处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

第三方面,本公开实施例提供了一种终端设备,该终端设备包括所有可能的实现方式中任一项所述一种大数据相似文本去重预处理装置。

以上对本发明进行了示例性描述,显然,本发明具体实现并不受上述方式的限制,凡是采用了本发明的方法构思和技术方案进行的各种非实质性的改进;或者未经改进、等同替换,将本发明的上述构思和技术方案直接应用于其他场合的,均在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1