针对新闻舆情的去重方法及系统与流程

文档序号:19829158发布日期:2020-02-04 12:13阅读:878来源:国知局
针对新闻舆情的去重方法及系统与流程

本发明涉及自然语言处理技术领域,特别涉及一种针对新闻舆情的去重方法及系统。



背景技术:

随着社会的发展和科技的进步,互联网中每时每刻都在产生海量的公开自然语言信息,而这些信息发布在网页中,并且存在着大量的重复信息,这些重复信息并不是完全一模一样,可能会有少量的信息差异,但是在去重过程中认为这些信息极度相似,属于重复信息。重复信息可能来自于新闻、博客、公告的转载,可能是同一信息在不同平台的发布,甚至可能是信息的抄袭等。

针对海量网页信息如何去重,谷歌公司发明了一种simhash算法,一个网页可以计算得到一条simhash值。在系统实际使用中,用一个数据库存放simhash值,当一条文本信息计算出simhash值后,与数据库中存放的simhash值进行比较,如果找到某条simhash值与该simhash值之间的海明距离小于设定的阈值,则认为该文本信息属于重复信息,如果找不到任何一条simhash值与该simhash值之间的海明距离小于设定的阈值,则认为该文本信息属于新信息,这样就达到了对海量文本信息去重的目的。谷歌的simhash算法在通用文本去重中取得了非常不错的效果,但是在特定的文本领域,仍然存在较大的提升空间。例如在新闻舆情文本中,存在着大量转载、转发、抄袭现象,不同出处的同一新闻标题基本不会变化,正文中有的会添加转载出处,有的不会,转载出处的描述与位置也各有不同,甚至正文在编辑过程中经常出现编辑差异,在这种情况下,直接使用simhash算法会导致较大的误差,影响新闻舆情去重的效果。



技术实现要素:

本发明的目的在于改善针对于新闻舆情传统simhash算法存在较大误差的不足,提供一种针对新闻舆情的去重方法及系统,以提高去重的准确度。

本发明解决的第一个技术问题是,如何提升新闻舆情去重的准确性,为此本发明实施例提供了以下技术方案:

一种针对新闻舆情的去重方法,包括以下步骤:

分别提取待识别新闻的新闻标题和新闻正文;

分别计算新闻标题的哈希值和新闻正文的哈希值,并将新闻标题的哈希值和新闻正文的哈希值合并为一个哈希值;

将所述哈希值与数据库中的哈希值进行比较,计算出海明距离,并根据海明距离判断待识别新闻是否为重复新闻。

为了进一步提升去重的准确性,在更优化的方案中,所述分别计算新闻标题的哈希值和新闻正文的哈希值的步骤,包括:分别从新闻标题和新闻正文中提取特征词,得到每个特征词对应的词-权重对;将新闻标题的权重乘以大于1的系数y;对新闻标题和新闻正文的所有特征词分别进行哈希计算,得到每个特征词对应的一个哈希值。

本发明要解决的第二个技术问题是,如何降低运算量,加快去重效率,为此,在上述技术方案的基础上,本发明实施例提供了更优化的技术方案:

所述将新闻标题的哈希值和新闻正文的哈希值合并为一个哈希值的步骤,包括:将计算得到的每一个十进制的哈希值转换为二进制数;根据二进制0转换为-1、二进制1不变的原则,将每一个特征词对应的二进制数转换得到由-1和1组成的序列串;将序列串中的每一位数值与对应的权重相乘;将新闻标题的所有特征词的对应位进行累加得到一个序列串,将新闻正文的所有特征词的对应位进行累加得到一个序列串;将新闻标题的序列串和新闻正文的序列串的对应位累加,并将累加后得到的一个序列串中的各位数值转换为由0和1组成的序列串,该序列串即为该条新闻的二进制表示的哈希值。

所述将待识别新闻的哈希值与数据库中的哈希值进行比较,计算出海明距离的步骤,包括:将所述哈希值转换为由0和1组成的n维向量,并将该n维向量与数据库中已有的m×n的矩阵进行矩阵异或计算,然后将每行的异或结果求和得到m×1的矩阵,m个元素即是m个海明距离。

为了进一步加快去重速度,在更优化的方案中,所述提取新闻正文的步骤,包括:提取新闻正文的前面x字,x为大于1的整数。

再一方面,本发明实施例提供了一种针对新闻舆情的去重系统,包括:

提取模块,用于分别提取新闻标题和新闻正文;

哈希值计算模块,用于分别计算新闻标题的哈希值和新闻正文的哈希值,并将新闻标题的哈希值和新闻正文的哈希值合并为一个哈希值;

去重识别模块,用于将待识别新闻的哈希值与数据库中的哈希值进行比较,计算出海明距离,并根据海明距离判断带识别新闻是否为重复新闻。

再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中所述方法中的步骤。

与现有技术相比,本发明系统及方法具有以下优势:

通过分别单独计算新闻标题和新闻正文的哈希值,然后再将计算得到的两个哈希值合并为一个哈希值计算海明距离,可以提高去重识别的准确性,适应于新闻舆情的去重识别。

通过提高新闻标题的权重,充分发挥新闻标题在转载过程中不变的优势,进一步提高了新闻舆情去重识别的准确性。

通过将哈希值转换为n维向量,且多条新闻的哈希值以矩阵的形式存储,计算海明距离时只需要计算一次,无需再循环执行m次,极大地提高了去重效率,降低了运算量。

通过只提取新闻正文的部分内容进行哈希值计算,进一步降低了运算量,提高了运算速度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为实施例1中所述的针对新闻舆情的去重方法的流程图。

图2为实施例2中所述的针对新闻舆情的去重方法的流程图。

图3为针对一条新闻计算哈希值的流程示例图。

图4为计算海明距离的流程示意图。

图5为实施例2中所述的针对新闻舆情的去重的系统的示意框图。

图6为实施例中哈希值计算模块的示意框图。

图7为实施例中所述的电子设备的组成框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

请参阅图1,本实施例中提供了一种针对新闻舆情的去重方法,包括以下步骤:

s1,分别提取待识别新闻的新闻标题和新闻正文;

s2,分别计算新闻标题的哈希值和新闻正文的哈希值,并将新闻标题的哈希值和新闻正文的哈希值合并为一个哈希值;

s3,将所述哈希值与数据库中的哈希值进行比较,计算出海明距离,并根据海明距离判断待识别新闻是否为重复新闻。

新闻在转载过程中可能会因为编辑错误或者加载出处等导致新闻正文的内容不完全一致,但是新闻标题基本上是不变的,本实施例上述方法中,通过分别单独提取新闻标题和新闻正文,将新闻标题和新闻正文分别单独提取特征词,单独进行哈希值计算,可以避免新闻正文内容的改变而影响整个新闻去重识别的准确性,因此,本实施例方法提高了新闻舆情去重的准确性。

实施例2

如图2所示,本实施例中提供的针对新闻舆情的去重方法,包括以下步骤:

s10,分别提取新闻标题以及新闻正文。

新闻来源于网页,网页信息一般包含有新闻内容、网页标签等字符,在获取到新闻所在的网页信息后,清洗网页信息,只保留新闻标题和新闻正文。

虽然新闻在转载过程中正文内容可能会出现差异,但是实际中发现,仅通过新闻的前面部分内容也可以准确地判断出两篇新闻是否重复,因此,为了降低运算量,提升处理效率,作为更加优选的实施方式,在提取新闻正文时,优选仅提取新闻正文的前面部分内容,而不是全部内容,例如仅提取新闻正文的前x字。x为正整数,可以由用户设定,但是在兼顾处理效率和正确率的情况下,x优选不得低于新闻正文总数字量的一半。

s20,分别从提取的新闻标题和新闻正文中提取特征词,得到的特征词的格式为词-权重对。本实施例中选用tf-idf算法提取特征词。对某一词a计算tf-idf结果的简要步骤如下:1、分词:调用分词算法对文本进行分词,其中包含词a;2、计算词频tf:tf(a)=词a在文本中出现的次数/文本的总词数;3、计算逆文档频率idf:算法有一个idf语料库(可替换),idf(a)=log(语料库的文本总数/(包含词a的文本数+1));4、计算tf-idf,即词a的权重:tf-idf(a)=tf*idf。词a权重意义为:词a在文章中出现次数越多,权重越高;语料库包含词a的文本数量越少,权重越高。

本步骤中,提取特征的方法可以采用现有技术中的多种方法,例如词频计算法、tf-idf算法、textrank算法等,但在实际应用中,发现tf-idf算法提取特征后计算的simhash去重效果最好,因此优选采用tf-idf算法提取新闻标题中的特征和新闻正文中的特征。这些算法都是现有技术,本领域技术人员知晓其具体的执行过程,因此此处对特征词的具体提取过程不做细致描述。

图3展示了一篇新闻的处理过程,新闻标题为“中方坚决反对贸易战升级”,希望正文的部分内容为“今天下午三点,商务部召开例行新闻发布会,……,中方坚决反对贸易战升级”。如图3所示,对新闻标题提取特征词后得到结果为:中方-1,坚决-4,反对-2,贸易战-3,升级-2。

s30,将新闻标题的权重乘以系数y,y大于1且可自由调整。

如图3所示,权重乘以系数2之后为:中方-2,坚决-8,反对-4,贸易战-6,升级-4。

由于新闻标题在转载过程中基本上是不变的,因此,本步骤中通过对新闻标题的权重乘以大于1的系数y,即增加新闻标题的权重,可以进一步提高去重识别的准确性。

s40,对新闻标题和新闻正文的所有特征词分别进行哈希计算,每个特征词对应一个哈希值。本实施例中使用的是最常见的md5哈希算法得到64位结果(即64bit,8字节大小,使用十进制表示结果),当然也可以用其他的哈希算法。因为本实施例中未对哈希算法进行改进,直接使用的是常见的哈希算法,因此为简化描述,此处不对哈希计算的具体步骤做详细描述。

仍然请参阅图3,对新闻标题中提取的特征词进行哈希计算,并转换为二进制数后的结果为(为方便描述,假设哈希结果为6位):中方-2的哈希值二进制表示为100101,坚决-8的哈希值二进制表示为101011,反对-4的哈希值二进制表示为101010,贸易战-6的哈希值二进制表示为001011,升级-4的哈希值二进制表示为101111。实际上,通过md5哈希算法计算出的哈希值二进制表示为64位,图3中为了便于展示,以6位表示。

s50,将每一个特征词对应的二进制数按照设定的规则进行转换,得到转换后的序列串。本实施例中,采用的规则为:二进制0转换为-1,二进制1不变。当然,也可以是其他规则,例如二进制0转换为1,二进制1转换为-1。

仍然以新闻标题为例,100101转换后为1-1-11-11,101011转换后为1-11-111,101010转换后1-11-11-1,001011转换后为-1-11-111,101111转换后为1-11111。

s60,将序列串中的每一位与对应的权重相乘。

仍然以新闻标题为例,与对应的权重相乘后为:2-2-22-22,8-88-888,4-44-44-4,-6-66-666,4-44444。

s70,将新闻标题的所有特征词的对应位进行累加,将新闻正文的所有特征词的对应位进行累加,新闻标题和新闻正文都变成一个序列串。

请继续参阅图3,仍然以新闻标题为例,2+8+4-6+4=12,-2-8-4-6-4=-24,-2+8+4+6+4=20,2-8-4-6+4=-12,-2+8+4+6+4=20,2+8-4+6+4=16,因此新闻标题得到的一个序列串为12-2420-122016。

s80,将新闻标题、和新闻正文合并,即将新闻标题的序列串和新闻正文的序列串的对应位累加,并将累加后得到的一个序列串中的各位数值转换为由0和1组成的序列串。

请继续参阅图3,经过步骤s70处理后,新闻正文的序列串为-141817-121422,新闻标题的序列串为12-2420-122016,累加后得到的一个序列串为-2-637-243438,然后按照大于0记为1、小于等于0记为0的原则,将累加后的序列串中的每一位数值进行转换,得到的结果是001011,即为二进制表示的simhash值。当然也可以采用其他原则,例如大于等于0转换为0、小于0转换为1

经过上述步骤s10-s80实现了将一条新闻转换为一个用0和1表示simhash值(序列串)。

s90,将步骤s80中计算得到的simhash值(序列串)转换为0、1的n维向量,并将该n维向量与数据库中既有的m×n的矩阵进行矩阵异或计算,然后将每行的异或结果求和得到m×1的矩阵,m个元素即是m个海明距离;若m等于0,则判断为非重复新闻,并直接将该n维向量添加到矩阵中得到1×n维矩阵;若m不等于0,则判断m个海明距离中最小的海明距离值是否小于设定的阈值,如果是则说明数据库中已存有相似新闻的n维向量,因此判断为重复新闻,不存储该n维向量,同时可以告知新闻重复(例如返回重复标签);如果最小海明距离值大于设定阈值,则说明数据库中没有相似新闻的n维向量,可以告知新闻不重复(例如返回非重复标签),并将该n维向量添加到矩阵中得到(m+1)×n维,并且存入数据库中。

对于阈值的设定,如果阈值设得太大,容易将不重复的两个新闻认为是相似的;如果阈值设得太小,稍微有点差异的两个新闻就会被认为不相似,因此阈值不能设置得过大或过小。根据实际需要以及大量的试验验证,选择3~6的阈值比较合适。

一条新闻对应一个n维向量,一个n维向量即为一行,故m条新闻即为m行;将新闻的simhash值转为元素为0、1的n维向量,即矩阵的列数为n;最终得到m×n的矩阵,矩阵元素为0或者1。

如图3所示,6条新闻分别对应的一个n维向量分别作为矩阵的一行,一个n维向量的6个元素(0和1组成的6维向量)作为矩阵的6列,构成了6×6的矩阵,待去重识别的n维向量110101与该矩阵做异或计算,得到然后将每行的异或结果求和得到6×1的矩阵该矩阵中6个元素即6个海明距离,最小的海明矩阵为1。

本步骤中,通过将新闻的simhash值转换为矩阵形式进行存储,待识别新闻的simhash值转换为n维向量,然后与矩阵进行计算,只需要进行一次矩阵计算即可得到是否重复的结果,相比于传统方法需要m次计算的循环计算方式,大大地提高了运算速度,提高了去重识别的效率。

基于相同的发明构思,本实施例中同时提供了一种针对新闻舆情的去重系统。请参阅图5,针对新闻舆情的去重系统包括提取模块、哈希值计算模块和去重识别模块。其中,

提取模块,用于分别提取新闻标题和新闻正文。作为较佳的实施方式,提取模块在提取新闻正文时,只提取新闻正文的前面x字,即新闻正文的前面部分内容。

哈希值计算模块,用于分别计算新闻标题的哈希值和新闻正文的哈希值,并将新闻标题的哈希值和新闻正文的哈希值合并为一个哈希值。哈希值计算模块可以采用传统的哈希值计算方法进行计算,但是本实施例中,请参阅图6,提供了更优化的实施方式。所述哈希值计算模块包括:

特征词提取子模块,用于分别从新闻标题和新闻正文中提取特征词,得到每个特征词对应的词-权重对;

权重增加子模块,用于将新闻标题的权重乘以大于1的系数y;

哈希值计算子模块,用于对新闻标题和新闻正文的所有特征词分别进行哈希计算,每个特征词对应一个哈希值;

转换子模块,用于将计算得到的每一个十进制的哈希值转换为二进制数;根据二进制0转换为-1、二进制1不变的原则,将每一个特征词对应的二进制数转换得到由-1和1组成的序列串;

累加子模块,用于将序列串中的每一位数值与对应的权重相乘,然后将新闻标题的所有特征词的对应位进行累加得到一个序列串,将新闻正文的所有特征词的对应位进行累加得到一个序列串,再将新闻标题的序列串和新闻正文的序列串的对应位累加,并将累加后得到的一个序列串中的各位数值转换为由0和1组成的序列串,该序列串即为该条新闻的二进制表示的哈希值。

去重识别模块,用于将待识别新闻的哈希值与数据库中的哈希值进行比较,计算出海明距离,并根据海明距离判断带识别新闻是否为重复新闻。在更优化的方案中,去重识别模块具体用于:将待识别新闻的哈希值转换为由0和1组成的n维向量,并将该n维向量与数据库中已有的m×n的矩阵进行矩阵异或计算,然后将每行的异或结果求和得到m×1的矩阵,m个元素即是m个海明距离;在m等于0时直接判断为非重复文本,并将该n维向量添加到矩阵中得到1×n维矩阵,在m不等于0时,取其中最小的海明距离值,判断所述最小的海明距离值是否小于设定的阈值,若小于则判断为所述待识别新闻为重复新闻,否则判断为非重复信息,并将待识别新闻的哈希值对应的n维向量添加到矩阵中得到(m+1)×n维矩阵,并存入数据库中。

上述针对新闻舆情的去重系统,通过提高新闻标题特征的权重,降低新闻正文由于转载、转发、抄袭过程中出现偏差结果的权重占比,提高了在新闻去重过程中的准确率;在新闻正文的选择中只取正文前x字,可视前面内容相似的新闻,其整个新闻均相似,提高了新闻计算simhash值的速度;当新闻simhash值需要与已存入的m条新闻进行去重时,抛弃传统需要m次计算的循环计算方式,而是将m条simhash按照矩阵格式存入数据库中,只需要进行一次矩阵计算即可得到是否重复的标签,进一步大大提高了去重效率。

如图7所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中存储器52耦合至处理器51。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,实现数据提取、哈希值计算、通信或其他功能。

如图7所示,该电子设备还可以包括:输入单元53、显示单元54和电源55。值得注意的是,该电子设备也并不是必须要包括图7中显示的所有部件。此外,电子设备还可以包括图7中没有示出的部件,可以参考现有技术。

处理器51有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器51接收输入并控制电子设备的各个部件的操作。

其中,存储器52例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器51的配置信息、处理器51执行的指令、记录的表格数据等信息。处理器51可以执行存储器52存储的程序,以实现信息存储或处理等。在一个实施例中,存储器52中还包括缓冲存储器,即缓冲器,以存储中间信息。

输入单元53例如用于向处理器51提供待标注的文本数据。显示单元54用于显示处理过程中的各种结果,例如输入的文本数据、转换后的多维向量、计算出的距离值等,该显示单元例如可以为lcd显示器,但本发明并不限于此。电源55用于为电子设备提供电力。

本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。

本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成模块及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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