一种新闻内容全文检索引擎的构建方法及装置与流程

文档序号:15932402发布日期:2018-11-14 01:51阅读:294来源:国知局

本发明涉及一种新闻内容全文检索引擎的构建方法及装置,尤其涉及一种基于统计指标增量更新的新闻内容全文检索引擎的构建方法,属于数据处理技术领域。

背景技术

传统的新闻内容全文检索引擎仅仅支持对自由文本的索引,而数据统计分析通常采用数据库来进行检索,当需要同时获取新闻内容检索结果和基于新闻的统计数据时,只能将两种检索分开进行操作,一方面无法保证索引数据和统计数据的局部性,检索统计性能无法保证,既费时费力,同时依赖外部数据库又增加了系统的耦合度。



技术实现要素:

本发明的目的在于提供一种新闻内容全文检索引擎的构建方法及装置,适合于使用在数据统计和内容分析混合型的数据管理引擎中,以提高统计数据与文本数据的复合查询性能。

一种新闻内容全文检索引擎的构建方法,包括:

s1、获取带有实时访问信息的实时网站日志;

s2、获取带有新闻热度评论信息的新闻网站的数据;

s3、对所述实时网站日志和所述新闻网站数据分类;

s4、对分类后的所述新闻网站数据进行处理、索引并存储;

s5、获取新闻网站数据中国的新闻元信息并存储;

s6、获取新闻网站数据中的热度信息进行存储,并对新闻网站数据中的热度信息统计。

其中,对分类后的所述新闻网站数据进行索引包括:

s41、按新闻内容的语言种类选择不同的分词器;

s42、根据所选择的分词器对目标新闻内容进行分词处理,得到分词列表;

s43、使用停用词词典,删除所述分词列表中的停用词,得到过滤后的分词列表;

s44、针对过滤后的分词列表,生成反向索引,存入分布式的索引库中。

其中,所述生成反向索引是按预定时间划分分区,将新闻网站数据的反向索引则会存储到逻辑分区中。

其中,所述按预定时间作为分区是按月划分的。

其中,所述获取新闻网站数据中的热度信息是每天统计一次。

其中,所述热度信息包括:稿件id、访问时间、页面浏览量和独立访客数中地至少一种。

其中,元信息包括:新闻稿件的发稿日期、发稿作者、新闻的情感信息、相关度信息和分类信息中的至少一种。

其中,所述对新闻网站数据中的热度信息统计包括:

s61、根据关键词检索到相关的稿件;

s62、根据确定的查询时间区间;

s63、对时间区间内的访问量信息进行聚合统计。

进一步的,本发明提供一种新闻内容全文检索方法,包括:

d1、获取检索条件,指定查询时间区间;

d2、确定待检索的索引的分区;

d3、对输入的关键词表达式进行解析,生成检索引擎需要的问题后在对应的分区进行检索;

d4、获取到检索的命中结果,找出新闻稿件的元信息;

d5、找到新闻稿件在指定时间区间范围内的热度信息进行聚合统计后输出。

进一步的,本发明提供一种新闻内容全文检索装置,包括:

日志获取单元,用于获取带有实时访问信息的实时网站日志;

数据获取单元,用于获取带有新闻热度评论信息的新闻网站的数据;

分类单元,用于对所述实时网站日志和所述新闻网站数据分类;

索引单元,用于对分类后的所述新闻网站数据进行处理、索引并存储;

新闻元信息获取单元,用于获取新闻网站数据中国的新闻元信息并存储;

新闻热度信息处理单元,用于获取新闻网站数据中的热度信息进行存储,并对新闻网站数据中的热度信息统计。

本发明一种新闻内容全文检索引擎的构建方法、检索方法及装置,其优点及功效在于:

1、本发明在查询性能、索引空间和构建性能方面实现了合理的平衡,与常规则的全文检索引擎相比检索性能相当,对存储资源占用的增量很小。

2、采用将统计数据与全文检索数据相结合的方式,构建新的索引,同时考虑到统计数据随时间变化的特性,动态更新索引结果,方便检索者一次性获取内容结果和统计结果。

3、同时结合新闻稿件内容的时间特性,对索引按新闻稿件的发稿时间这个元数据特性进行逻辑分区存储,一方面使得索引数据能更适合进行分布式存储,另一方面是的对索引数据的管理更加容易,例如,当一个时间区间的索引数据如果需要进行重新索引,则只需要从外部源重新获取这部分数据进行索引更新,不影响对其他索引分区的检索统计,提高了系统的健壮性。

4、本发明适合于使用在数据统计和内容分析混合型的数据管理引擎中,提高统计数据与文本数据的复合查询性能。

附图说明

图1为本发明实施例中新闻内容全文检索引擎的构建方法流程示意图。

图2为本发明实施例中对分类后的新闻网站数据进行索引方法流程示意图。

图3为本发明实施例中对新闻网站数据中的热度信息统计流程示意图。

图4为本发明实施例中一种新闻内容全文检索方法流程示意图。

图5为本发明实施例中一种新闻内容全文检索装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种新闻内容全文检索引擎的构建方法,该方法包括:s1、获取带有实时访问信息的实时网站日志;s2、获取带有新闻热度评论信息的新闻网站的数据;s3、对所述实时网站日志和所述新闻网站数据分类;s4、对分类后的所述新闻网站数据进行处理、索引并存储;s5、获取新闻网站数据中国的新闻元信息并存储;s6、获取新闻网站数据中的热度信息进行存储,并对新闻网站数据中的热度信息统计。下面对本发明提供的新闻内容全文检索引擎的构建方法展开详细的说明。

具体地,通过网络爬虫获取带有时是访问信息的网站日志,爬虫获取两种主要的数据来源,一部分带有实时访问信息的实时网站日志,另外一部分是带有新闻热度评论信息的新闻网站的数据。进一步地,根据不同的爬虫数据来源,进行简单的分类,分别对原始的爬虫数据进行处理和索引。进一步地,针对过滤后的分词列表,生成反向索引,存入分布式的索引库中;本发明中针对的是即时新闻热点,由于新闻的时间特性,通常一篇新闻的访问热度的在新闻发稿的当天为最高值,随后逐步衰减,为了提高检索的性能,索引采用按时间分区的方式进行。

如图2所示,对分类后的所述新闻网站数据进行索引包括:s41、按新闻内容的语言种类选择不同的分词器;42、根据所选择的分词器对目标新闻内容进行分词处理,得到分词列表;s43、使用停用词词典,删除所述分词列表中的停用词,得到过滤后的分词列表;s44、针对过滤后的分词列表,生成反向索引,存入分布式的索引库中。

生成反向索引是按预定时间划分分区,将新闻网站数据的反向索引则会存储到逻辑分区中。具体地,每篇待索引的新闻稿件都应当有明确的发稿时间,同时为了限制索引分区的数量,可选采取按月分区的方式进行。例如一篇稿件的发稿时间为2018-01-3113:33:21,则使用201801作为该篇稿件的索引的分区,该稿件的反向索引则会存储到201801这个逻辑分区中。索引信息的实际会存储到分布式的键值(key-value)数据中,在实现上我们选择了raft协议,默认的副本为3,即在实际存储索引信息会存粗到三个不同的索引节点上,例如201801这个逻辑分区的所有索引信息会分布到三个不同的物理节点上。

获取新闻网站数据中的热度信息是每天统计一次。热度信息包括:稿件id、访问时间、页面浏览量和独立访客数中地至少一种。具体地,对于稿件的热度信息,本发明中采用一天一次统计的方式进行,针对任意一篇稿件,每天的热度是一个由稿件id(以下简称为cid),访问时间(day),页面浏览量(简称为pv),独立访客数(简称为uv)组成的四元组(cid,day,pv,uv)。同样地,稿件的热度信息四元组,也是存储在分布式的key-value数据库中,同样采用raft协议。

所述

新闻元信息包括:新闻稿件的发稿日期、发稿作者、新闻的情感信息、相关度信息和分类信息中的至少一种。这些新闻元信息不会随着时间的变化而变化,即使有变化,也只需要保存一个值就可以。新闻稿件的这些元信息和反向索引一致,按照稿件的发稿时间进行逻辑分区,分区后存储到对应逻辑分区的分布式key-value数据库当中。提供关键词索引的同时,可以使用稿件的元信息进行过滤,例如可以指定稿件情感值在固定区间的稿件进行检索,各种元信息检索条件支持与或非等基本逻辑的组合查询。

为了提高特定检索的性能,发稿当日稿件的热度信息本发明中作为新闻稿件的元信息和其他元信息一起进行存储。例如,我们只需要统计新闻稿件发稿当天的热度数据,直接根据元数据信息中的热度信息进行统计,这能够大大提高这部分类型检索的性能。

在本发明实施例中,如图3所示,对新闻网站数据中的热度信息统计包括:s61、根据关键词检索到相关的稿件;s62、根据确定的查询时间区间;s63、对时间区间内的访问量信息进行聚合统计。具体地,先根据关键词检索到相关的稿件,然后根据确定的查询时间区间,对时间区间内的访问量信息进行聚合统计。对于稿件热度信息的聚合统计,本发明实施例采用了在分布式key-value数据库的基础上,加入简单的sql查询功能,可以对pv进行累加,而对uv进行聚合采用的hyperloglog算法实现。另外一个方面,稿件的访问量信息跟随稿件的发稿日期进行分区,能够大大提高检索+统计这两个过程的性能,通常只需要一次分区定位操作就可以定位到新闻稿件本身信息在分布式key-value数据库中的位置。

为进一步体现本发明提供的新闻内容全文检索引擎的构建方法的优越性,本发明提供一种应用在上述检索引擎的新闻内容全文检索方法,如图4所示,该方法包括:d1、获取检索条件,指定查询时间区间;d2、确定待检索的索引的分区;d3、对输入的关键词表达式进行解析,生成检索引擎需要的问题后在对应的分区进行检索;d4、获取到检索的命中结果,找出新闻稿件的元信息;d5、找到新闻稿件在指定时间区间范围内的热度信息进行聚合统计后输出。下面对本发明提供的新闻内容全文检索方法展开详细的说明。

在本发明中,获取用户检索条件,可以是获取用户的检索关键词。用户可以通过关键词进行新闻稿件内容进行检索。检查检索的时间范围的合法性后确定检索的索引的分区,包括一个或者多个的待检索的索引分区根据关键词检索到相关的稿件,然后根据确定的查询时间区间。爬虫在采集到新闻内容数据后会对内容进行分析提取,新闻稿件的发稿时间也是通过这种方式进行提取,如果提取到的时间早于固定的时间或者超前当前时间(则视为不合法),则调用本新闻内容全文检索引擎的的索引接口时,会拒绝这些稿件,本发明主要关注于近几年内的互联网热点新闻的分析和检索,过早的新闻内容就不会统计。本发明检索关注的是特定时间内特定新闻稿件的热度统计,为了提高性能和系统的可维护性,检索信息通过分区的方式进行,分区通过新闻稿件的发稿时间的月份信息进行,例如一篇稿件的发稿时间是2018-05-0412:30:21,则该稿件的索引信息会分配存储到201805这个逻辑分区中。

对输入的关键词表达式进行解析,生成检索引擎需要的问题后在对应的分区进行检索。具体地,检索系统的核心内部支持以下组合的query,组合query是对一些列子查询条件(childquery)的合成。conjunction:表示检索结果必须匹配到所有的子查询;disjunction:表示检索结果必须匹配到一个或者多个子查询;boolean:包括must(必须满足),mustnot(必须不满足)。例如:用户输入的检索词为“(养老险&南京)!(房产|医疗)”包括了逻辑与,逻辑非以及逻辑或,针对这样的检索语法,写出一系列bnf表达式,通过bison工具生成定制化的parser,parser扫描一次用户输入的检索词生成以上三个基本复查查询的组合的query,提交到索引器进行检索。

获取到检索的命中结果,找出新闻稿件的元信息;具体地,例如,检索的命中结果,是一系列新闻稿件在索引中的位置,该位置由一个64为id来表示,得到id后再加上分区信息,再在相应分区的key-value数据库中找到对应id的新闻,取出新闻的元信息,包括新闻稿件内容,热度信息等。d5、找到新闻稿件在指定时间区间范围内的热度信息进行聚合统计后输出。

在输出新闻稿件原始内容的同时,提供对指定时间区间的新闻稿件热度的聚合统计结果;对于稿件热度信息的聚合统计,本发明采用了在分布式key-value数据库的基础上,加入简单的sql查询功能,可以对pv进行累加,而对uv进行聚合采用的hyperloglog算法实现。例如给定关键词“房价”想知道包含这个词的新闻稿件在最近一个月的热度统计,包括的信息有,每天有多少条新发的稿件,每篇新闻有多少的pv和uv,每天的pv和uv在全国的各个省份地区的分布如何,装置提供详细的统计,同时针对一个月内的数据,可以按天出结果,也可以按周进行累加出结果,提供热度的趋势变化信息。

传统的新闻内容全文检索引擎仅仅支持对自由文本的索引,而对于附加于文本的随时间变化的附加信息数据进行统计分析通常采用数据库来进行检索和聚合统计,当需要同时获取新闻内容检索结果和基于新闻的统计数据时,只能将两种检索分开操作,一方面无法保证索引数据和统计数据的局部性(locality),检索统计性能无法保证,同时依赖外部数据库又增加了系统的耦合度。

在本发明的另一个实施例中,本发明提供一种新闻内容全文检索装置,如图5所示,该装置包括:日志获取单元,用于获取带有实时访问信息的实时网站日志;数据获取单元,用于获取带有新闻热度评论信息的新闻网站的数据;分类单元,用于对所述实时网站日志和所述新闻网站数据分类;索引单元,用于对分类后的所述新闻网站数据进行处理、索引并存储;新闻元信息获取单元,用于获取新闻网站数据中国的新闻元信息并存储;新闻热度信息处理单元,用于获取新闻网站数据中的热度信息进行存储,并对新闻网站数据中的热度信息统计。本发明中,新闻内容全文检索装置的工作过程和原理与上述新闻内容全文检索方法相似,可以参照上述方法执行,在此不再赘述。

本发明实施例提供的新闻内容全文检索引擎的构建方法、检索方法及装置,其优点及功效在于:1、本发明在查询性能、索引空间和构建性能方面实现了合理的平衡,与常规则的全文检索引擎相比检索性能相当,对存储资源占用的增量很小。2、采用将统计数据与全文检索数据相结合的方式,构建新的索引,同时考虑到统计数据随时间变化的特性,动态更新索引结果,方便检索者一次性获取内容结果和统计结果。3、同时结合新闻稿件内容的时间特性,对索引按新闻稿件的发稿时间这个元数据特性进行逻辑分区存储,一方面使得索引数据能更适合进行分布式存储,另一方面是的对索引数据的管理更加容易,例如,当一个时间区间的索引数据如果需要进行重新索引,则只需要从外部源重新获取这部分数据进行索引更新,不影响对其他索引分区的检索统计,提高了系统的健壮性。4、本发明适合于使用在数据统计和内容分析混合型的数据管理引擎中,提高统计数据与文本数据的复合查询性能。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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