知识库检索实现方法与流程

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

本发明涉及数据库检索技术领域,具体的说是一种知识库检索实现方法。

背景技术

随着互联网的发展,互联网上站点与信息等越来越庞杂;在这海量的信息里面快速、全面、准确的查找到所需要的信息已经成为人们关注的焦点。传统的数据库查询方式在检索的准确率和效率以及检索条件的灵活性上都难以满足要求,如何高效地存储和查询文本数据这是一个值得探讨的课题。

当今,大批企业正在由传统的经营模式向科技创新、自主研发的新模式转变,获得飞速的发展。在当今时代,以全文检索为核心技术的搜索引擎已取代传统的数据库查询方式成为网络时代的主流检索技术,因此开发研究一款高效、安全、扩展性好的知识库检索技术是信息化时代发展的必然选择。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种知识库检索实现方法。

本发明所述知识库检索实现方法,解决上述技术问题采用的技术方案如下:所述知识库检索实现方法,改进基于词表的分词技术,对知识类别建立分块索引,在内存中构建索引,使用本地磁盘系统做存储索引,并使用多文件索引,不使用复合索引等方式优化了原先的lucene检索效率,大大地提高了检索的速度;所述知识库检索实现方法包括索引过程和搜索过程;

所述索引过程:对要搜索的原始内容进行索引构建一个索引库;索引过程包括:确定原始内容即要搜索的内容—》采集文档--》创建数据集--》预处理分析数据--》生产索引--》构建索引库;

所述搜索过程:从索引库中搜索内容;搜索过程包括:用户通过搜索界面—》输入查询--》查询处理--》执行搜索,从索引库检索--》运用相关性计算--》渲染搜索结果--》结果输出。

具体的,所述索引过程:从命令行读取文件名,将文件分路径path字段和内容body字段2个字段进行存储,并对内容进行全文索引;索引的单位是document对象,每个document对象包含多个字段field对象;针对不同的字段属性和数据输出的需求,对字段选择不同的索引或者存储字段规则。

具体的,所述检索过程包含写入流程、读出流程;所述写入流程:将提供的源字符串写入索引或将其从索引中删除;写入流程具体为:源字符串首先经过analyzer处理,包括:分词过程;将源字符串中需要的信息加入document的各个field中,将需要索引的field索引起来,将需要存储的field存储起来。

具体的,所述将需要存储的field存储起来,是将索引写入存储器,存储器为内存或磁盘。

具体的,所述分词过程由分词器完成,所述分词器包括reader、tokenizer、tokenfilter、tokenstream;

所述分词过程具体包括:所述tokenizer负责接收reader字节流,将reader字节流进行分词操作,所述tokenfilter对已经分词的语汇单元进行各种各样的过滤操作;所述tokenstream存储分词的各种信息,通过tokenstream有效获取到分词单元信息。

具体的,所述读出流程:向用户提供全文搜索服务,通过关键词定位源;读出流程具体为:用户提供搜索关键词,经过analyzer处理;对处理后的关键词搜索索引找出对应的document;用户根据需要从找到的document中提取需要的field。

具体的,所述知识库检索实现方法涉及四种数据流,分别是文本流、token流、字节流与查询语句对象流;其中,

所述文本流表示对于索引目标和交互控制的抽象,用来表示索引文件,用文本流向用户输出信息;所述token流是对文字中词的概念的抽象,是lucene在建立索引时直接处理的最小单位;所述字节流是对文件抽象的直接操作的体现,通过固定长度的字节流的处理将文件解脱出来;所述查询语句对象流,用来对查询语句抽象,通过类的继承结构反应查询语句的结构,将之传送到查询逻辑来进行查找操作。

具体的,所述文本流采用ucs-2作为编码。

具体的,所述索引过程的原理流程包括:w)有一系列被索引文件;x)被索引文件经过语法分析和语言处理形成一系列词;y)经过索引创建形成词典和反向索引表;z)通过索引存储将索引写入索引文件。

具体的,所述搜索过程的原理流程包括:a)用户输入查询语句;b)对查询语句经过语法分析和语言分析得到一系列词;c)通过查询语句分析得到一个查询树;d)通过索引文件将索引读入到内存;e)利用查询树搜索索引,得到每个词的文档链表,对文档链表进行交、差、并得到结果文档;f)将搜索到的结果文档对查询的相关性进行排序;g)返回查询结果给用户。

本发明所述知识库检索实现方法,与现有技术相比具有的有益效果是:本发明对基于词表的分词技术做改进,提高了分词效率及准确度;对知识类别建立分块索引,提高了检索效率;在索引期间通过复用单一的indexwriter实例;在内存中构建索引;使用本地磁盘系统做存储索引;使用多文件索引,不使用复合索引等方式优化了原先的lucene检索效率,大大地提高了检索的速度;解决了知识库信息分类检索问题,提高优化知识库信息检索精确度和检索效率,提高了用户的体验。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术内容,下面对本发明实施例或现有技术中所需要的附图做简单介绍。显而易见的,下面所描述附图仅仅是本发明的一部分实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,但均在本发明的保护范围之内。

附图1为知识库检索实现方法的流程图;

附图2为分词过程流程图;

附图3为知识库检索原理示意图。

具体实施方式

为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。

实施例

本施例提出知识库检索实现方法,对基于词表的分词技术做改进,提高分词效率及准确度;对知识类别建立分块索引,提高检索效率;在索引期间复用单一的indexwriter实例;利用lucene的indexwriter建立索引;lucene是一款高性能的、可扩展的信息检索(ir)工具库。同时,在内存中构建索引;使用本地磁盘系统做存储索引;使用多文件索引,不使用复合索引等方式优化了原先的lucene检索效率,大大地提高了检索的速度。

附图1为知识库检索实现方法的流程图,如附图1,包含虚线上部表示的索引过程和虚线下部表示的搜索过程;索引过程:对要搜索的原始内容进行索引构建一个索引库;索引过程包括:确定原始内容即要搜索的内容—》采集文档--》创建数据集--》预处理分析数据--》生产索引--》构建索引库。搜索过程:从索引库中搜索内容;搜索过程包括:用户通过搜索界面—》输入查询--》查询处理--》执行搜索,从索引库检索--》运用相关性计算--》渲染搜索结果--》结果输出。

上述索引过程:从命令行读取文件名(多个),将文件分路径(path字段)和内容(body字段)2个字段进行存储,并对内容进行全文索引,索引的单位是document对象,每个document对象包含多个字段field对象;针对不同的字段属性和数据输出的需求,对字段还可以选择不同的索引或者存储字段规则。

lucene提供的服务包含两部分:写入和读出。所谓写入,即把提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源。

上述检索过程包含写入流程、读出流程。写入流程:将提供的源字符串写入索引或将其从索引中删除;写入流程具体实现过程:源字符串首先经过analyzer处理,包括:分词,分成一个个单词;或者去除stopword;将源中需要的信息加入document的各个field中,并把需要索引的field索引起来,把需要存储的field存储起来;将索引写入存储器,存储器可以是内存或磁盘。

这里分词过程主要由分词器完成,分词器包括reader、tokenizer、tokenfilter、tokenstream。附图2为分词过程流程图,如附图2所示,tokenizer负责接收reader字节流,将reader字节流进行分词操作,tokenfilter对已经分词的语汇单元进行各种各样的过滤操作;tokenstream是分词器做好处理之后得到的一个流,tokenstream存储分词的各种信息,可以通过tokenstream有效的获取到分词单元信息。

读出流程:向用户提供全文搜索服务,通过关键词定位源;读出流程具体实现过程:用户提供搜索关键词,经过analyzer处理;对处理后的关键词搜索索引找出对应的document;用户根据需要从找到的document中提取需要的field。

附图3为知识库检索原理示意图,如附图3,其原理流程涉及四种数据流,分别是文本流、token流、字节流与查询语句对象流;文本流表示对于索引目标和交互控制的抽象,用文本流表示索引文件,用文本流向用户输出信息。文本流采用ucs-2作为编码,可以达到适应多种语言文字的处理的目的。token流是lucene内部所使用的概念,是对传统文字中词的概念的抽象,也是lucene在建立索引时直接处理的最小单位;简单的讲token就是一个词和所在域值的组合。字节流是对文件抽象的直接操作的体现,通过固定长度的字节(lucene定义为8比特位长)流的处理将文件解脱出来,做到了与平台文件系统的无关性。查询语句对象流是仅在查询语句解析时用到的概念,它对查询语句抽象,通过类的继承结构反应查询语句的结构,将之传送到查询逻辑来进行查找操作。

如附图3,索引过程的原理流程包括:w)有一系列被索引文件;x)被索引文件经过(词法分析逻辑)语法分析和语言处理形成一系列词(term);y)经过(索引创建逻辑)索引创建形成词典和反向索引表;z)通过索引存储(存储抽象)将索引写入索引文件(一般在硬盘中);

搜索过程的原理流程包括:a)用户输入查询语句;b)(通过词法分析逻辑)对查询语句经过语法分析和语言分析得到一系列词(term);c)通过查询语句分析得到一个查询树;d)通过索引文件将索引读入到内存;e)利用查询树搜索索引,得到每个词(term)的文档链表,对文档链表进行交、差、并得到结果文档;f)(通过索引查找逻辑)将搜索到的结果文档对查询的相关性(通过评分排序逻辑)进行排序;g)返回查询结果给用户。

以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。

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