CN109299443B - 一种基于最小顶点覆盖的新闻文本去重方法 - Google Patents
一种基于最小顶点覆盖的新闻文本去重方法 Download PDFInfo
- Publication number
- CN109299443B CN109299443B CN201811026620.7A CN201811026620A CN109299443B CN 109299443 B CN109299443 B CN 109299443B CN 201811026620 A CN201811026620 A CN 201811026620A CN 109299443 B CN109299443 B CN 109299443B
- Authority
- CN
- China
- Prior art keywords
- node
- vertex
- tree
- nodes
- texts
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于最小顶点覆盖的新闻文本去重方法,通过去除尽量少的文本,使得剩余的文本数据集中不存在重复的文本,本发明使用了树状的动态规划和基于优先队列的贪心算法,在保证在有效去除重复文本的同时,使得需要去除的文本数量尽量地少。这种方法降低了去除的文本数量,增大了去重后可用的数据量,使后续的数据分析过程更为准确和有效。
Description
技术领域
本发明属于人工智能领域,更具体的,涉及一种基于最小顶点覆盖的新闻文本去重方法。
背景技术
随着互联网的普及和发展,各大新闻门户网站已经成为人们获取信息的重要来源。但是随之产生的是海量的新闻报道,在这些新闻中通常包含了许多转载新闻,相同的一篇新闻通常被转载到各大门户网站或者被报道成相似内容的新闻文章,从而造成了信息的冗余。对于通过网络爬虫爬取下来的新闻数据,由于上述原因通常会含有大量重复的新闻文本,从而影响后续的数据处理与分析过程。
目前文本去重的方法主要有以下两种:
基于哈希函数的文本判重方法:这种方法的主要思想是使用哈希函数,对每篇文本计算一个哈希值,如果计算出的哈希值在哈希存储库中不存在,则将它加入到哈希存储库中;如果计算出的哈希值在哈希存储库中已经存在,则认为该文本是重复的文本,将它去除。这种方法的思想比较直观,处理速度很快。但是这种方法的缺点在于只能检测出内容完全一样的文本,当两篇文本的内容稍微有差异时就不能检测出来。
基于文本特征相似度的判重方法:这种方法的主要思想是使用某种特征提取的方法,如:TF-IDF,将每篇文本转化为对应的特征向量,然后计算向量两两之间夹角的余弦值。余弦值越大,夹角越小,表明两篇文章越相似,越容易被认为是重复的。这种方法能检测出内容相似但不完全相同的文本。
以上的方法均没有考虑到需要去除的文本数量问题。在检测出重复的文本后如果只是简单地按顺序逐个去重,有可能会导致需要去除大量的文本才能达到文本数据集内无重复文本的目标,这样的话原始的文本数据集会丢失很多文本,从而影响到后续的数据处理与分析过程。
发明内容
为了解决现有技术没有考虑到需要去除的文本数量问题,本发明提供了一种基于最小顶点覆盖的新闻文本去重方法。
为实现以上发明目的,采用的技术方案是:
一种基于最小顶点覆盖的新闻文本去重方法,包括以下步骤:
步骤S1:计算两篇新闻文本两两之间的相似度sim(ti,tj),ti,tj分别表示两篇新闻文本;判断相似度sim(ti,tj)是否达到阈值α,若达到阈值α,则进行步骤S2,若相似度没有达到阈值α,则认为两篇文章不重复;
步骤S2:为新闻文本之间的相似关系建立一个相似图G=<V,E>,并用邻接表进行存储,将文本看做图论中的顶点,在这两个顶点之间连着一条无向边;
步骤S3:创建一个相似图G中需要去除的顶点列表list,接着判断G的每一个连通分量G’=<V’,E’>是不是一棵树,即判断有没有环,若G’无环,则转到步骤S4进行处理;若G’有环,则转到步骤S5处理;
步骤S4:对相似图G中的每一棵树执行树状的动态规划算法以筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S5:对相似图G中的每一个有环的连通分量执行基于优先队列的贪心算法筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S6:在新闻文本数据集中删除list中所有需要去除的顶点所对应的文本,则剩余的新闻文本均为不重复,将这些不重复的文本作为输出。
优选的,所述的相似度sim(ti,tj)的具体求解过程如下:
其中,dist(ti,tj)表示ti和tj的编辑距离,定义为由ti转成tj或者由tj转成ti)所需的最少编辑操作次数;dist(ti,tj)=levti,tj(|ti|,|tj|),levti,tj(m,n)表示由ti的前m个字符构成的文本转成由tj的前n个字符构成的文本所需的最少编辑操作次数;levti,tj(m,n)可以由以下递推式计算:
优选的,所述步骤S4的树状的动态规划算法的具体计算过程如下:
步骤S401:设d(v’,0)表示在不去除节点v’的情况下,v’∈V’,以节点v’为根节点的树需要去除的最少节点数;d(v’,1)表示在去除节点v’的情况下,以节点v’为根节点的树需要去除的最少节点数;
步骤S402:任意选取一个节点vo作为树的根节点,vo∈V’,从该节点开始进行深度优先搜索,每访问到一个节点vi’,1<=i<=|V’|,标记该节点为已访问;
步骤S404:计算d(vi’,1),假设选择去除节点vi’,对于节点vi’的每一个未被访问的孩子节点vj’,取d(vj’,0)和d(vj’,1)的最小值,并将其累加到d(vi’,1)中,最后d(vi’,1)再加上1为所求的答案,即:
步骤S405:若节点vi’没有未被访问的孩子节点,则令d(vi’,0)=0,d(vi’,1)=1,因此,对于图中的每一棵树,最少去除min{d(vo,0),d(vo,1)}个节点能使得整棵树的所有节点都成为孤立点;
步骤S406:最后,为了找到需要去除节点,需要对整棵树进行回溯判断,从根节点vo开始深度优先搜索整棵树,对于每一个访问到的当前节点vi’,判断d(vi’,1)是否等于以节点vi’为根节点的树需要去除的最少节点数,若相等,则将节点vi’加入需要去除的顶点列表list中,否则不加入。
优选的,所述的步骤S5中所述的贪心算法的具体流程如下:
步骤S501:首先创建一个存放顶点及其度数信息的优先队列q,q中的顶点按照其度数非递增排序,初始时,将G’的所有顶点v’∈V’加入到q中,即q={v1’:deg1,v2’:deg2,…,v|V’|’:deg|V’|},且deg1>=deg2>=…>=deg|V’|;此外,列表table用于记录V’中每个顶点当前的度数,即table={deg1’,deg2’,…,deg|V’|’},并初始化degi’=degi,1<=i<=|V’|,接下来每次从q中取出一个顶点,直到取出顶点的度数为0时退出循环;
步骤S502:对从q中取出的每个顶点vi’∈q执行进行回溯判断,以找到具体去除哪些节点;
步骤S503:比较vi’在q中的度数degi和在table中的度数degi’,如果degi=degi’,则标记vi’已被访问,并将vi’加入需要去除的顶点列表list中,此外,对于vi’邻接的每一个顶点vj’,1<=j<=|V’|,如果vj’未被访问过,则更新degj’=degj’-1,并将更新后的顶点度数信息(vj’:degj’)加入到q中;如果degi≠degi’,则直接进入下一次循环。
与现有技术相比,本发明的有益效果是:
本发明在文本去重的基础上,考虑到了需要去除的文本数量,即相似图G的丢失率δ的大小问题。本发明使用了树状的动态规划和基于优先队列的贪心算法,能保证在有效去除重复文本的同时,使得需要去除的文本数量尽量地少。这种方法降低了去除的文本数量,增大了去重后可用的数据量,使后续的数据分析过程更为准确和有效。
附图说明
图1为本发明的流程图。
图2为新闻数据集的说明。
图3为相似图G的丢失率δ(D1-D4)。
图4为相似图G的丢失率δ(D5-D7)。
图5为文本去重的总时间(D1-D4)。
图6为文本去重的总时间(D5-D7)。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
一种基于最小顶点覆盖的新闻文本去重方法,包括以下步骤:
步骤S1:计算两篇新闻文本两两之间的相似度sim(ti,tj),ti,tj分别表示两篇新闻文本;判断相似度sim(ti,tj)是否达到阈值α,若达到阈值α,则进行步骤S2,若相似度没有达到阈值α,则认为两篇文章不重复;
步骤S2:为新闻文本之间的相似关系建立一个相似图G=<V,E>,并用邻接表进行存储,将文本看做图论中的顶点,在这两个顶点之间连着一条无向边;
步骤S3:创建一个相似图G中需要去除的顶点列表list,接着判断G的每一个连通分量G’=<V’,E’>是不是一棵树,即判断有没有环,若G’无环,则转到步骤S4进行处理;若G’有环,则转到步骤S5处理;
步骤S4:对相似图G中的每一棵树执行树状的动态规划算法以筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S5:对相似图G中的每一个有环的连通分量执行基于优先队列的贪心算法筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S6:在新闻文本数据集中删除list中所有需要去除的顶点所对应的文本,则剩余的新闻文本均为不重复,将这些不重复的文本作为输出。
优选的,所述的相似度sim(ti,tj)的具体求解过程如下:
其中,dist(ti,tj)表示ti和tj的编辑距离,定义为由ti转成tj或者由tj转成ti)所需的最少编辑操作次数;dist(ti,tj)=levti,tj(|ti|,|tj|),levti,tj(m,n)表示由ti的前m个字符构成的文本转成由tj的前n个字符构成的文本所需的最少编辑操作次数;levti,tj(m,n)可以由以下递推式计算:
优选的,所述步骤S4的树状的动态规划算法的具体计算过程如下:
步骤S401:设d(v’,0)表示在不去除节点v’的情况下,v’∈V’,以节点v’为根节点的树需要去除的最少节点数;d(v’,1)表示在去除节点v’的情况下,以节点v’为根节点的树需要去除的最少节点数;
步骤S402:任意选取一个节点vo作为树的根节点,vo∈V’,从该节点开始进行深度优先搜索,每访问到一个节点vi’,1<=i<=|V’|,标记该节点为已访问;
步骤S404:计算d(vi’,1),假设选择去除节点vi’,对于节点vi’的每一个未被访问的孩子节点vj’,取d(vj’,0)和d(vj’,1)的最小值,并将其累加到d(vi’,1)中,最后d(vi’,1)再加上1为所求的答案,即:
步骤S405:若节点vi’没有未被访问的孩子节点,则令d(vi’,0)=0,d(vi’,1)=1,因此,对于图中的每一棵树,最少去除min{d(vo,0),d(vo,1)}个节点能使得整棵树的所有节点都成为孤立点;
步骤S406:最后,为了找到需要去除节点,需要对整棵树进行回溯判断,从根节点vo开始深度优先搜索整棵树,对于每一个访问到的当前节点vi’,判断d(vi’,1)是否等于以节点vi’为根节点的树需要去除的最少节点数,若相等,则将节点vi’加入需要去除的顶点列表list中,否则不加入。
优选的,所述的步骤S5中所述的贪心算法的具体流程如下:
步骤S501:首先创建一个存放顶点及其度数信息的优先队列q,q中的顶点按照其度数非递增排序,初始时,将G’的所有顶点v’∈V’加入到q中,即q={v1’:deg1,v2’:deg2,…,v|V’|’:deg|V’|},且deg1>=deg2>=…>=deg|V’|;此外,列表table用于记录V’中每个顶点当前的度数,即table={deg1’,deg2’,…,deg|V’|’},并初始化degi’=degi,1<=i<=|V’|,接下来每次从q中取出一个顶点,直到取出顶点的度数为0时退出循环;
步骤S502:对从q中取出的每个顶点vi’∈q执行进行回溯判断,以找到具体去除哪些节点;
步骤S503:比较vi’在q中的度数degi和在table中的度数degi’,如果degi=degi’,则标记vi’已被访问,并将vi’加入需要去除的顶点列表list中,此外,对于vi’邻接的每一个顶点vj’,1<=j<=|V’|,如果vj’未被访问过,则更新degj’=degj’-1,并将更新后的顶点度数信息(vj’:degj’)加入到q中;如果degi≠degi’,则直接进入下一次循环。
上述文本去重方法能使得对于任意的ti,tj∈T’,都有sim(ti,tj)<α。
证明:给定相似图G=<V,E>,设e分别与vi和vj相关联,则有sim(ti,tj)>=α。如果去除E中的所有边,则tj∈T',都有sim(ti,tj)<α,因此该问题就转化为证明上述文本去重算法能去除相似图G中的所有边。下面根据G中每一个连通分量无环和有环这两种情况分别证明:
Case1无环:对于图中的每一棵树的任意一个节点v’,如果选择去除节点v’,则与节点v’相关联的边都要去除;如果选择不去除节点v’,则与节点v’邻接的节点都要去除,因此与节点v’相关联的边都会被去除,所以对于树的每一个节点,与其相关联的边都会被去除,因此每一棵树的所有边都会被去除。
Case2有环:对于图中每一个有环的连通分量,由于优先队列q中的顶点按
照其度数非递增排序,因此当从q中取出的顶点度数为0时,连通分量中所
有顶点的度数均为0,也就是说所有的边都已被去除。
因此,上述文本去重算法能去除G中的所有边,也就是能使得对于任意的ti,tj∈T’,都有sim(ti,tj)<α。
上述一种基于最小顶点覆盖的新闻文本去重方法能使得去除的文本数量尽量少。
证明:由于文本对应于相似图中的顶点,因此该问题就转化为证明上述文本去重算法去除的顶点数量尽量少。下面根据图中每一个连通分量无环和有环这两种情况分别证明:
Case1无环:对于图中的每一棵树,当选取一个节点vo作为树的根节点后,min{d(vo,0),d(vo,1)}即表示整棵树需要去除的最少节点数。假设整棵树需要去除的最少节点数为k,且k≠min{d(vo,0),d(vo,1)}。因为k是最少的,因此k<min{d(vo,0),d(vo,1)},那么有k<d(vo,0)且k<d(vo,1)。由于节点v’只有去除和不去除两种情况,且结合d(v’,0)和d(v’,1)的定义可以得到k=d(vo,0)或者k=d(vo,1),这与k<d(vo,0)且k<d(vo,1)矛盾。因此上述假设不成立,因此k=min{d(vo,0),d(vo,1)}。综上所述,min{d(vo,0),d(vo,1)}为整棵树需要去除的最少节点数。
Case2有环:对于图中每一个有环的连通分量,假设连通分量包含的边的条数为n,需要去除的最少顶点数为k,k>0。设在贪心算法的过程中去除了t,0<=t<|V|,个顶点后剩余的边数为nt,因为剩余的nt条边能被最优解的k个顶点所覆盖,因此,当前一定存在至少与条边相关联的顶点。由于贪心策略每次选择度数最大的顶点去除,因此该策略能使得
因此,贪心算法需要去除顶点的个数最多为最优解的lnn倍,即贪心算法的解十分接近于最优解,能保证在去重后的所有顶点均为孤立点的情况下,去除的顶点数量接近于最小值。
由(1)和(2)可以得到,上述文本去重算法能保证去除的顶点数尽量少。
上述一种基于最小顶点覆盖的新闻文本去重方法是正确的。
证明:上述文本去重算法能使得对于任意的ti,tj∈T’,都有sim(ti,tj)<α,且能使得去除的文本数量尽量少。此外,对于给定的文本数据集T,|T|是有限的,因此建模形成的图G=<V,E>中的|V|和|E|也是有限的,因此G中连通分量G’=<V’,E’>的个数以及每个连通分量中的|V’|和|E’|也是有限的。对于给定的连通分量G’,若G’有环,树状的动态规划算法能在有限的时间内结束;若G’无环,基于优先队列的贪心算法也能在有限的时间内结束。因此,上述文本去重算法能在有限的时间内结束。综上所述,上述文本去重算法是正确的。
实施例2
本实施例的实验环境如下:CPU为Intel(R)Core(TM)i5-4570 CPU@3.20GHz,内存为8GB,操作系统为Ubuntu 14.0464位,实验所采用的编程语言为Java,JDK版本为1.8.0_101。
本实施例使用了搜狗实验室的全网新闻数据(SogouCA)(版本:2012)(url:http://www.sogou.com/labs/resource/ca.php)中时间范围从2012年7月1日到7月28日的新闻数据作为实验数据集。该数据集包含了来自搜狐新闻、雅虎新闻和人民网新闻的涵盖了国内、国际、体育、社会和娱乐等18个频道的新闻数据,其中的新闻正文文本包含了中文、英文和数字类型的字符。本实验采用的新闻正文文本数据是来自数据集中的原始数据,并没有对文本进行分词处理。
本实验根据时间区间(以周为单位)将上述数据集划分为四个子数据集,每一个子数据集都包含了来自上述3个新闻网站涵盖了上述18个频道的新闻数据,它们的时间区间、包含的新闻文本篇数以及大小如图2所示。其中,D5是D1和D2的并集,D6是D1、D2和D3的并集,D7是D1、D2、D3和D4的并集,相比于D1-D4,D5-D7是规模更大的数据集。
本实验设定相似度阈值α为0.9、0.92、0.94、0.96、0.98这5个值,然后在每个数据集上分别取这5个α值进行文本去重的实验。当前实验包括了:图3展示了相似度阈值α、相似图G的丢失率δ和数据集D1、D2、D3、D4的关系。图4展示了相似度阈值α、相似图G的丢失率δ和数据集D5、D6、D7的关系。图5展示了相似度阈值α、文本去重的总时间和数据集D1、D2、D3、D4的关系。图6展示了相似度阈值α、文本去重的总时间和数据集D5、D6、D7的关系。
从图3和图4中可以看到,对于同一个文本数据集,随着相似度阈值α的增大,相似图G的丢失率δ逐渐减小。其主要原因是相似度阈值α越大,相似度大于或等于α的文本数量越少,被判断为重复的文本也就越少,因此需要去除的重复文本也越少,从而导致相似图G的丢失率δ减小。而在相似度阈值α一定时,随着文本数据集中重复文本所占的比例以及文本之间的重复关系数量的增大,相似图G的丢失率δ越大。从图4中可以看到,D5-D7是规模更大的数据集,当数据集的规模增大时,相似图G的丢失率δ的变化趋势与D1-D4是一致的。
从图5和图6中可以看到,对于同一个文本数据集,随着相似度阈值α的增大,文本去重的总时间稍微有减少,但是减少并不明显。其主要原因是相似度阈值α越大,需要去除的重复文本就越少,因此在去除重复文本这一操作上花费的时间也就越少,但是由于这一时间只占总时间很小的一部分,因此文本去重的总时间减少并不明显。而在相似度阈值α一定时,随着文本数据集大小的增大,文本去重的总时间也相应增大,其主要原因是文本去重的时间开销是随着文本的数量和大小的增大而增大的。
具体实施过程如下:
输入的文本数据集包含8条文本,分别为:
t1:新京报记者当天在清华、北大周边看到,多家快递公司的快递包裹摆满校园外的人行道,不时有学生前来隔着围栏取件。
t2:新华社记者当天在清华、北大周边看到,许多速运公司的快递包裹摆放在校园外的人行道,不时有学生前来隔着围栏取件。
t3:人民日报记者当天在清华、北大周边看到,多家快递公司的快件摆满校园外的人行道,有时会有学生前来隔着围栏取件。
t4:北京青年报记者当天在清华、北大周边看到,多家快递公司的快递包裹摆满校园外的道路,不时有学生越过围栏取件。
t5:甘肃农业大学草业学院30余名学生志愿者走上街头开展“爱心替岗”关爱环卫工人活动,代替环卫工人进行道路清扫保洁,以此表达对环卫工人的关心。
t6:甘肃农业大学草业学院30余名学生志愿者走到大街上开展“爱心替岗”关爱环卫工人活动,帮助环卫工人对道路进行清扫保洁,以此表达对环卫工人的关心。
t7:甘肃农业大学草业学院30余名学生志愿者走上街头开展“爱心替岗”关爱环卫工人活动,帮助环卫工人对道路进行清扫保洁,以此表示对环卫工人的关爱。
t8:甘肃农业大学草业学院30余名学生志愿者走上街头开展“爱心替岗”关爱环卫工人活动,代替环卫工人进行道路清扫,为环卫工人献出爱心。
文本去重的步骤如下:
1、初始时先设定相似度阈值α=0.8,如果文本之间的相似度超过这一阈值,则认为是重复的,否则认为不重复。
2、将文本ti(1<=i<=8)分别建模成顶点vi(1<=i<=8),接着计算上述8条文本两两之间的相似度,计算得出sim(t1,t2)=0.86>α,于是在v1和v2之间连一条无向边。sim(t1,t3)=0.86>α,因此在v1和v3之间连一条无向边。sim(t1,t4)=0.826>α,因此在v1和v4之间连一条无向边。sim(t1,t5)=sim(t1,t6)=sim(t1,t7)=sim(t1,t8)=0<α,因此认为它们之间不重复,无需往图中增加边。按照同样的方法计算得出sim(t2,t3)=0.757<α,sim(t2,t4)=0.714<α,sim(t2,t5)=sim(t2,t6)=sim(t2,t7)=sim(t2,t8)=0<α,sim(t3,t4)=0.74<α,sim(t3,t5)=sim(t3,t6)=sim(t3,t7)=sim(t3,t8)=0<α,sim(t4,t5)=sim(t4,t6)=sim(t4,t7)=sim(t4,t7)=0<α,因此认为它们之间不重复,无需往图中增加边。接着计算得出sim(t5,t6)=0.876>α,于是在v5和v6之间连一条无向边。sim(t5,t7)=0.889>α,因此在v5和v7之间连一条无向边。sim(t5,t8)=0.854>α,因此在v5和v8之间连一条无向边。sim(t6,t7)=0.93>α,因此在v6和v7之间连一条无向边。sim(t6,t8)=0.744<α,sim(t7,t8)=0.778<α,因此认为它们之间不重复,无需往图中增加边。至此,整个图的模型已经建立完成,如图3所示。
3、首先创建一个需要去除的顶点列表list,然后判断得出整个图有两个连通分量,其中由顶点v1、v2、v3和v4构成的连通分量无环,是一棵树,因此转到步骤4.1,使用树状的动态规划算法进行求解;由顶点v5、v6、v7和v8构成的连通分量有环,不是一棵树,因此转到步骤5.1,使用基于优先队列的贪心算法进行求解。
4.1、设d(v,0)表示在不去除节点v的情况下,以节点v为根节点的树(不包含已访问过的节点)需要去除的最少节点数;d(v,1)表示在去除节点v的情况下,以节点v为根节点的树(不包含已访问过的节点)需要去除的最少节点数。
4.2、算法首先选择v1作为根节点开始进行深度优先搜索,标记v1为已访问,它未被访问的孩子节点有v2、v3、v4。接着访问到v2,标记v2为已访问,v2没有未被访问的孩子节点,因此令d(v2,0)=0,d(v2,1)=1。当访问到v3和v4时与v2的情况一样,因此令d(v3,0)=0,d(v3,1)=1;d(v4,0)=0,d(v4,1)=1。当搜索过程回到v1时,v2、v3、v4的d(vi,0)和d(vi,1)值都已经计算完成,因此可以计算得出d(v1,0)和d(v1,1)的值。d(v1,0)=d(v2,1)+d(v3,1)+d(v4,1)=3,最后取min{d(v1,0),d(v1,1)}=1作为整棵树需要去除的最少节点数。
4.3、在求出需要去除的最少节点数后,还要对整棵树进行回溯判断,以找到具体去除哪些节点。首先访问v1,传入当前需要去除的最少节点数num=1,因为num=d(v1,1)=1,因此需要去除v1,并将v1加入需要去除的顶点列表list中。因为因此分别给v2、v3、v4传入参数num=min{d(v2,0),d(v2,1)}=0、num=min{d(v3,0),d(v3,1)}=0和num=min{d(v4,0),d(v4,1)}=0。由于num=d(v2,0)=d(v3,0)=d(v4,0)=0,因此v2、v3、v4都不需要去除。
5.1、创建一个存放顶点及其度数信息的优先队列q,q中的顶点按照其度数非递增排序。初始时,先统计连通分量中所有顶点的度数(v5:3度;v6:2度;v7:2度;v8:1度),然后将所有顶点加入到q中,即q={v5:3,v6:2,v7:2,v8:1}。接着初始化列表table为每个顶点当前的度数,即table={3,2,2,1}。接下来每次从q中取出一个顶点,直到取出顶点的度数为0时退出循环。
5.2、首先取出v5,该顶点的度数与表table中的一样,因此标记v5已被访问,并将v5加入需要去除的顶点列表list中。接着在表table中将v5邻接的所有未被访问过的顶点(v6、v7、v8)的度数减一,即table={3,1,1,0},并将这些修改度数后的顶点信息加入q中。此时q中的顶点信息为:(v6:2度)、(v7:2度)、(v8:1度)、(v6:1度)、(v7:1度)、(v8:0度)。
5.3、接下来从q中连续取出的三个顶点的度数都跟表table中对应顶点的度数不一样,因此忽略,直接进入下一次循环。接着取出的顶点信息为(v6:1度),与表table中的信息一样,因此标记该顶点已被访问,并将v6加入需要去除的顶点列表list中。由于与v6邻接的未被访问过的顶点只有v7,因此在表table中将v7的度数减1,此时table={3,1,0,0},并将顶点信息(v7:0度)加入q中。最后,从q中取出的顶点信息为(v8:0度),度数为0,结束循环。
6、算法结束后,list中的文本为文本t1、t5和t6,因此,从新闻文本数据集中去除文本t1、t5和t6,剩余不重复的文本t2、t3、t4、t7和t8作为最终的输出。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (4)
1.一种基于最小顶点覆盖的新闻文本去重方法,其特征在于,包括以下步骤:
步骤S1:计算两篇新闻文本两两之间的相似度sim(ti,tj),ti,tj分别表示两篇新闻文本;判断相似度sim(ti,tj)是否达到阈值α,若达到阈值α,则进行步骤S2,若相似度没有达到阈值α,则认为两篇文章不重复;
步骤S2:为新闻文本之间的相似关系建立一个相似图G=<V,E>,并用邻接表进行存储,将文本看做图论中的顶点,在这两个顶点之间连着一条无向边;其中,V表示顶点集,E表示边集;
步骤S3:创建一个相似图G中需要去除的顶点列表list,接着判断G的每一个连通分量G’=<V’,E’>是不是一棵树,即判断有没有环,若G’无环,则转到步骤S4进行处理;若G’有环,则转到步骤S5处理;其中,V’表示顶点集V在连通分量上的子集,E’表示边集在连通分量上的子集;
步骤S4:对相似图G中的每一棵树执行树状的动态规划算法以筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S5:对相似图G中的每一个有环的连通分量执行基于优先队列的贪心算法筛选出需要去除的节点,将需要去除的节点加入list中;
步骤S6:在新闻文本数据集中删除list中所有需要去除的顶点所对应的文本,则剩余的新闻文本均为不重复,将这些不重复的文本作为输出。
3.根据权利要求1所述的一种基于最小顶点覆盖的新闻文本去重方法,其特征在于,所述步骤S4的树状的动态规划算法的具体计算过程如下:
步骤S401:设d(v’,0)表示在不去除节点v’的情况下,v’∈V’,以节点v’为根节点的树需要去除的最少节点数;d(v’,1)表示在去除节点v’的情况下,以节点v’为根节点的树需要去除的最少节点数;
步骤S402:任意选取一个节点vo作为树的根节点,vo∈V’,从该节点开始进行深度优先搜索,每访问到一个节点vi',1<=i<=|V’|,标记该节点为已访问;
步骤S404:计算d(vi',1),假设选择去除节点vi',对于节点vi'的每一个未被访问的孩子节点vj',取d(vj',0)和d(vj',1)的最小值,并将其累加到d(vi',1)中,最后d(vi',1)再加上1为所求的答案,即:
步骤S405:若节点vi'没有未被访问的孩子节点,则令d(vi',0)=0,d(vi',1)=1,因此,对于图中的每一棵树,最少去除min{d(vo,0),d(vo,1)}个节点能使得整棵树的所有节点都成为孤立点;
步骤S406:最后,为了找到需要去除节点,需要对整棵树进行回溯判断,从根节点vo开始深度优先搜索整棵树,对于每一个访问到的当前节点vi',判断d(vi',1)是否等于以节点vi'为根节点的树需要去除的最少节点数,若相等,则将节点vi'加入需要去除的顶点列表list中,否则不加入。
4.根据权利要求1所述的一种基于最小顶点覆盖的新闻文本去重方法,其特征在于,所述的步骤S5中所述的贪心算法的具体流程如下:
步骤S501:首先创建一个存放顶点及其度数信息的优先队列q,q中的顶点按照其度数非递增排序,初始时,将G’的所有顶点v’∈V’加入到q中,即q={v1’:deg1,v2’:deg2,…,v|V’|’:deg|V’|},且deg1>=deg2>=…>=deg|V’|;此外,列表table用于记录V’中每个顶点当前的度数,即table={deg1’,deg2’,…,deg|V’|’},并初始化degi’=degi,1<=i<=|V’|,接下来每次从q中取出一个顶点,直到取出顶点的度数为0时退出循环;
步骤S502:对从q中取出的每个顶点vi’∈q执行进行回溯判断,以找到具体去除哪些节点;
步骤S503:比较vi’在q中的度数degi和在table中的度数degi’,如果degi=degi’,则标记vi’已被访问,并将vi’加入需要去除的顶点列表list中,此外,对于vi’邻接的每一个顶点vj’,1<=j<=|V’|,如果vj’未被访问过,则更新degj’=degj’-1,并将更新后的顶点度数信息(vj’:degj’)加入到q中;如果degi≠degi’,则直接进入下一次循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026620.7A CN109299443B (zh) | 2018-09-04 | 2018-09-04 | 一种基于最小顶点覆盖的新闻文本去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811026620.7A CN109299443B (zh) | 2018-09-04 | 2018-09-04 | 一种基于最小顶点覆盖的新闻文本去重方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109299443A CN109299443A (zh) | 2019-02-01 |
CN109299443B true CN109299443B (zh) | 2023-04-14 |
Family
ID=65166305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811026620.7A Active CN109299443B (zh) | 2018-09-04 | 2018-09-04 | 一种基于最小顶点覆盖的新闻文本去重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299443B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134852B (zh) * | 2019-05-06 | 2021-05-28 | 北京四维图新科技股份有限公司 | 一种文档的去重方法、设备及可读介质 |
CN110134768B (zh) * | 2019-05-13 | 2023-05-26 | 腾讯科技(深圳)有限公司 | 文本的处理方法、装置、设备及存储介质 |
CN110442679A (zh) * | 2019-08-01 | 2019-11-12 | 信雅达系统工程股份有限公司 | 一种基于融合模型算法的文本去重方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103619033A (zh) * | 2013-12-04 | 2014-03-05 | 安徽理工大学 | 基于贪心路径的移动sink节点数据收集方法 |
CN103631944A (zh) * | 2013-12-10 | 2014-03-12 | 华中师范大学 | 一种基于内容相似的网页分割方法 |
CN105490834A (zh) * | 2015-11-19 | 2016-04-13 | 云南电力调度控制中心 | 一种基于顶点覆盖和弱顶点覆盖的探针部署方法 |
CN108052626A (zh) * | 2017-12-19 | 2018-05-18 | 号百信息服务有限公司 | 一种基于动态规划方法实现数据去重装置及方法 |
CN108345586A (zh) * | 2018-02-09 | 2018-07-31 | 重庆誉存大数据科技有限公司 | 一种文本去重方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2470497B (en) * | 2010-07-19 | 2011-06-15 | Quantum Corp | Collaborative, distributed, data de-duplication |
-
2018
- 2018-09-04 CN CN201811026620.7A patent/CN109299443B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103619033A (zh) * | 2013-12-04 | 2014-03-05 | 安徽理工大学 | 基于贪心路径的移动sink节点数据收集方法 |
CN103631944A (zh) * | 2013-12-10 | 2014-03-12 | 华中师范大学 | 一种基于内容相似的网页分割方法 |
CN105490834A (zh) * | 2015-11-19 | 2016-04-13 | 云南电力调度控制中心 | 一种基于顶点覆盖和弱顶点覆盖的探针部署方法 |
CN108052626A (zh) * | 2017-12-19 | 2018-05-18 | 号百信息服务有限公司 | 一种基于动态规划方法实现数据去重装置及方法 |
CN108345586A (zh) * | 2018-02-09 | 2018-07-31 | 重庆誉存大数据科技有限公司 | 一种文本去重方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109299443A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106777274B (zh) | 一种中文旅游领域知识图谱构建方法及系统 | |
CN112019569B (zh) | 恶意域名检测方法、装置及存储介质 | |
CN109299443B (zh) | 一种基于最小顶点覆盖的新闻文本去重方法 | |
CN104615687B (zh) | 一种面向知识库更新的实体细粒度分类方法与系统 | |
CN103678412B (zh) | 一种文档检索的方法及装置 | |
CN106484764A (zh) | 基于人群画像技术的用户相似度计算方法 | |
KR101365860B1 (ko) | 짧은 관심 지점 명칭 생성 | |
CN104778158A (zh) | 一种文本表示方法及装置 | |
CN103886020B (zh) | 一种房地产信息快速搜索方法 | |
CN103294781A (zh) | 一种用于处理页面数据的方法与设备 | |
CN102867049B (zh) | 一种基于单词查找树实现的汉语拼音快速分词方法 | |
CN106708952A (zh) | 一种网页聚类方法及装置 | |
WO2019227581A1 (zh) | 兴趣点识别方法、装置、终端设备及存储介质 | |
CN108228656B (zh) | 基于cart决策树的url分类方法及装置 | |
CN105550169A (zh) | 一种基于字符长度识别兴趣点名称的方法和装置 | |
CN107783976A (zh) | 用户信息挖掘方法及装置 | |
CN105740370B (zh) | 一种在线Web新闻内容抽取系统 | |
Zhao et al. | Text sentiment analysis algorithm optimization and platform development in social network | |
CN104021202B (zh) | 一种知识共享平台的词条处理装置和方法 | |
CN112069824B (zh) | 基于上下文概率和引证的地域识别方法、装置及介质 | |
CN105528421A (zh) | 一种针对海量数据中查询词的搜索维度挖掘方法 | |
CN112818072A (zh) | 旅游知识图谱更新方法、系统、设备及存储介质 | |
CN115982390A (zh) | 一种产业链构建和迭代扩充开发方法 | |
Guermazi et al. | Address validation in transportation and logistics: A machine learning based entity matching approach | |
CN106598935A (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 |