快速搜索所要查询内容的方法及装置与流程

文档序号:12364124阅读:326来源:国知局
快速搜索所要查询内容的方法及装置与流程

本发明涉及搜索引擎领域,特别涉及一种快速搜索所要查询内容的方法及装置。



背景技术:

搜索引擎借助于网络爬虫才能在互联网海量数据中有效搜集到相关的网页信息。如何提高网络爬虫的搜索效率,是该领域研究的热点。传统的网络爬虫包括一个协议处理模块。URL(统一资源定位符,也称为网页地址,是因特网上标准的资源的地址)由两部分构成:协议模块和检测模块。其中,协议模块用来提供网络爬虫所需的网络协议,解决如何获取网页;检测模块负责对采集的URL信息进行排序,处理网络上重复内容,以提高网络爬虫的搜索效率。

但通用爬虫搜索存在如下不足之处:因为抓取的目标是覆盖尽可能大的网络,所以爬行的结果中必然会包含大量用户不需要的网页;无法很好地搜索和获取信息含量密集且具有一定结构的数据,通用搜索引擎大多是基于关键字的检索,对于支持语义信息的查询和索引引擎智能化的要求则难以实现。所以,通用爬虫想在爬行网页时,既保证网页的质量和数量,又要保证网页的实效性是很难实现的。

复杂网络搜索策略通常用一个消息传递的过程来描述。从一个给定的源节点开始,为了寻找所需要的信息,按照一定的规则向它的一个或多个邻居传递查询消息。如果收到查询的邻居节点上不含有源节点所需的信息,那么这些邻居节点再将查询消息传递给它们各自的邻居,重复这个过程直到存储着指定信息的目标节点被寻找到为止。然后目标节点将指定的信息传递给源节点。

传统的方法是通过BFS策略来遍历,在源节点s应用BFS策略搜索目标节点t时,源节点s首先判断自己的邻居节点中有无目标节点。若有,则中止搜索;若无,则向每个邻居查询它们的邻居节点中有无目标节点。重复这个过程一直到寻找到目标节点的任一个邻居为止。如果网络规模相当大,这样的处理方式会产生大量的查询消息流量,造成网络堵塞,严重影响查询的速度。

全文搜索引擎是最常用的搜索引擎,比较最熟悉的就是国外的代表Google和国内的代表百度。它们通常都是提取各个网站的网页文字存放在建立的数据库中,检索与用户查询条件相匹配的相关记录,然后按其自己设定的排列顺序将结果返回给用户。看似功能强大的搜索引擎,其实也存在众多弊端,例如由于数据来源广,重复的内容多而复杂;搜索特性有限,没有嵌套搜索,没有截词搜索,不支持全部的布尔逻辑检索;死链率较高,链接信息不完整。

随着AJAX/Web2.0的流行,如何抓取AJAX等动态页面成了搜索引擎急需解决的问题,如果搜索引擎依旧采用“爬”的机制,是无法抓取到AJAX页面的有效数据的。对于AJAX这样的技术,所需要的爬虫引擎必须是基于驱动的。而如果想要实现事件驱动,首先需要解决以下问题:第一,Javascript的交互分析和解释;第二,DOM事件的处理和解释分发;第三,动态DOM内容语义的抽取。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能快速进行检索、查询高效准确、能给用户提供较好、匹配效率较高的快速搜索所要查询内容的方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种快速搜索所要查询内容的方法,包括如下步骤:

A)使用网络爬虫系统从互联网采集各种数据,并在图形数据库中将采集的数据与图形结构中对应节点进行关联存储;所述图形结构包括若干个节点,具有关系的节点之间通过有向连接线连接;

B)将所述采集的数据中非结构化数据转化为能分析应用的结构化数据;

C)对所述结构化数据进行清洗,并根据业务领域及来源建立统一的数据模型;

D)根据所述数据模型采用HBase数据库建立数据仓库,通过对清洗后的数据进行抽取、转换和加载处理,将分散的数据加载到所述数据仓库中;

E)通过公司名称、简称或股票代码将所述分散的数据进行关联,并将所述分散的数据按照所述图形结构中节点和关系的模式存储在相应的节点中;

F)从所述图形结构中抽取每个所述节点中所存储的数据,并建立中文索引;

G)用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列。

在本发明所述的快速搜索所要查询内容的方法中,所述图形数据库是节点与关系的集合。

在本发明所述的快速搜索所要查询内容的方法中,所述步骤G)进一步包括:

G1)将要查询的语句中每个词的权重组成查询向量,把搜索出的图形结构中节点中所存储的数据中对应词的权重组成文档向量;

G2)将每个所述文档向量和查询向量放入N维度的空间中,每个词表示一维;所述N等于所述文档向量或查询向量中词的个数;

G3)计算每个所述文档向量与所述查询向量之间的夹角,按照夹角从小到大的顺序进行排列。

在本发明所述的快速搜索所要查询内容的方法中,当通过属性查找一个节点或关系时,通过所述中文索引进行查找。

本发明还涉及一种实现上述快速搜索所要查询内容的方法的装置,其特征在于,包括:

数据采集存储单元:用于使用网络爬虫系统从互联网采集各种数据,并在图形数据库中将采集的数据与图形结构中对应节点进行关联存储;所述图形结构包括若干个节点,具有关系的节点之间通过有向连接线连接;

数据转换单元:用于将所述采集的数据中非结构化数据转化为能分析应用的结构化数据;

数据模型建立单元:用于对所述结构化数据进行清洗,并根据业务领域及来源建立统一的数据模型;

数据加载单元:用于根据所述数据模型采用HBase数据库建立数据仓库,通过对清洗后的数据进行抽取、转换和加载处理,将分散的数据加载到所述数据仓库中;

关联存储单元:用于通过公司名称、简称或股票代码将所述分散的数据进行关联,并将所述分散的数据按照所述图形结构中节点和关系的模式存储在相应的节点中;

索引建立单元:用于从所述图形结构中抽取每个所述节点中所存储的数据,并建立中文索引;

搜索排列单元:用于使用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列。

在本发明所述的实现上述快速搜索所要查询内容的方法的装置中,所述图形数据库是节点与关系的集合。

在本发明所述的实现上述快速搜索所要查询内容的方法的装置中,所述搜索排列单元进一步包括:

向量组成模块:用于将要查询的语句中每个词的权重组成查询向量,把搜索出的图形结构中节点中所存储的数据中对应词的权重组成文档向量;

向量维度模块:用于将每个所述文档向量和查询向量放入N维度的空间中,每个词表示一维;所述N等于所述文档向量或查询向量中词的个数;

向量夹角计算排列模块:用于计算每个所述文档向量与所述查询向量之间的夹角,按照夹角从小到大的顺序进行排列。

在本发明所述的实现上述快速搜索所要查询内容的方法的装置中,当通过属性查找一个节点或关系时,通过所述中文索引进行查找。

实施本发明的快速搜索所要查询内容的方法及装置,具有以下有益效果:通过数据模型可以实现快速进行检索;通过建立中文索引,在用户使用的时候,能够通过模糊的字眼搜索出目标,高精度的分词和组合查询使得查询变得高效准确。与图形数据相结合,可以给用户提供较好的使用体验;将图形结构中节点的属性值交由搜索引擎检索,对于节点与关系则通过图形结构来检索,其匹配效率较高,所以其能快速进行检索、查询高效准确、能给用户提供较好、匹配效率较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明快速搜索所要查询内容的方法及装置一个实施例中方法的流程图;

图2为所述实施例中用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列的具体流程图;

图3为所述实施例中装置的结构示意图;

图4为所述实施例中有向无环图形结构的示意图;

图5为所述实施例中图形数据库模型的示意图;

图6为所述实施例中图形结构遍历的示意图;

图7为所述实施例中中文索引的示意图;

图8为所述实施例中文档向量与查询向量的向量坐标示意图。

具体实施方式

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

在本发明快速搜索所要查询内容的方法及装置实施例中,其快速搜索所要查询内容的方法的流程图如图1所示。图1中,该快速搜索所要查询内容的方法包括如下步骤:

步骤S01使用网络爬虫系统从互联网采集各种数据,并在图形数据库中将采集的数据与图形结构中对应节点进行关联存储:本步骤中,使用网络爬虫系统从互联网采集各种数据,并在图形数据库中将采集的数据与图形结构中对应节点进行关联存储。该网络爬虫系统为高性能的网络爬虫系统,采集的数据实际上被保存在分布式文件系统Hadoop中,供后续处理使用,为数据处理、疑点分析以及稽查取证提供有力依据。

值得一提的是,本实施例中,该图形结构包括若干个节点,具有关系的节点之间通过有向连接线(即有方向的连接线)连接。图4为本实施例中有向无环图形结构的示意图,图中的圆圈表示节点,节点表示一个实体,例如人或商品,边表示节点与节点之间的连接关系,可以是有方向和无方向的,如用户A买了商品B表示为A->B;如果用户A与用户C相互都认识,这种关系就是双向的,表示为A<->C。

图形数据库可以看作是节点与关系的集合,图形数据库就是将采集的数据存储在拥有属性的节点中,并用关系将这些节点组织起来,如图5所示。

图形数据库擅长关联关系查找,但对于属性的查找,特别是中文的匹配效率低下,本发明将图形数据库结合搜索引擎,将图形数据库中的属性值交由搜索引擎检索,对于节点关系则通过图形结构来检索。当然,在本实施例的一些情况下,通过网络爬虫有效的对万维网上的开放网页资源进行提取,并利用这些信息,这样就会大大减少人力物力。通过选择正确的网页抓取策略,利用网页分析算法和拓扑分析算法,进行机械式的获取数据。

步骤S02将采集的数据中非结构化数据转化为能分析应用的结构化数据:本步骤中,当采集的数据被保存后,将对采集的数据进行统一处理,将采集的数据中非结构化数据转化为能分析应用的结构化数据。

步骤S03对结构化数据进行清洗,并根据业务领域及来源建立统一的数据模型:本步骤中,对结构化数据进行清洗,以去除噪音,为后续分析提供搞质量数据来源,清理后的数据根据业务领域及数据来源,系统将分析并建立统一的数据模型。

步骤S04根据数据模型采用HBase数据库建立数据仓库,通过对清洗后的数据进行抽取、转换和加载处理,将分散的数据加载到数据仓库中:本步骤中,根据数据模型采用HBase数据库建立新的数据仓库NDW,在此基础上整合所有的数据资源,通过对清洗后的数据进行抽取、转换和加载处理,这样就可以将分散的数据加载到数据仓库NDW中。

步骤S05通过公司名称、简称或股票代码将分散的数据进行关联,并将分散的数据按照图形结构中节点和关系的模式存储在相应的节点中:本步骤中,将分散的数据再次进行加工,通过公司名称、简称或股票代码将分散的数据进行关联,这个过程使用了图形数据库,所有的分散的数据都会按照节点和关系的模式存储在相应的节点中。数据存储的重要目的是为了后续的检索。对于查找节点间关系,展示节点多层关系上,使用该数据模型可以快速进行检索。

步骤S06从图形结构中抽取每个节点中所存储的数据,并建立中文索引:本步骤中,从图形结构中抽取每个节点中所存储的数据,并建立中文索引。在用户使用的时候,能够通过模糊的字眼去搜索出目标。高精度的分词和组合查询,使得查询变得高效准确,与图形数据相结合,可以给用户提供极好的使用体验。当通过属性查找一个节点或关系时,通过中文索引进行查找。

步骤S07用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列:本步骤中,用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列。具体来讲,图形结构的查找与搜索通过遍历算法完成,根据该遍历算法,从开始节点到与之相连的节点查询诸如“我好友的好友是那些人”等问题。所以通过遍历算法可以对图形结构进行导航与操作,从而确定节点之间的路径,如图6所示。

如图7所示,通过建立中文索引,可以更快、更高效的查找某个节点。通常情况下,可能只想通过属性去查找一个确定的节点或关系,而不是遍历整个图形结构。在这种情况下,就可以通过中文索引来查找某个节点,如“根据用户名定位用户节点”等。本发明的快速搜索所要查询内容的方法能快速进行检索、查询高效准确、能给用户提供较好、匹配效率较高。

对于本实施例而言,上述步骤S07还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤S07进一步包括:

步骤S71将要查询的语句中每个词的权重组成查询向量,把搜索出的图形结构中节点中所存储的数据中对应词的权重组成文档向量:本步骤中,将要查询的语句中每个词的权重组成查询向量,把搜索出的图形结构中节点中所存储的数据中对应词的权重组成文档向量。

具体来讲,把要查询的语句看作是一个文档,对文档与文档之间的相关性进行打分,分数越高越相关,排名就越靠前。当然还可以人工影响打分,比如百度搜索,就不一定完全按照相关性来排名的。一个文档由多个(或者一个)词(本实施例用Term来表示)组成,比如:“solr”、“toturial”,不同的词可能重要性不一样,比如solr就比toturial重要,如果一个文档出现了10次toturial,但只出现了一次solr,而另一文档solr出现了4次,toturial出现一次,那么后者很有可能就是想要的搜的结果,这就引申出权重(本实施例用Term weight来表示)的概念。

权重表示该词在文档中的重要程度,越重要的词,其权重越高,因此在计算文档相关性时影响力就更大。通过词之间的权重得到文档相关性的过程叫做空间向量模型算法(Vector Space Model)。影响一个词在文档中的重要性主要有两个方面:Term Frequencey(简写为tf)和Document Frequency(简写为df),Term Frequencey表示Term在此文档中出现的频率,tf越大表示越重要;Document Frequency表示有多少文档中出现过这个Trem,df越大表示越不重要。权重的公式如下:

Wt,d=tft,d×log(n/dft)

其中,Wt,d为文件的权重,tft,d为文件的词频,n为文件总数,dft为包含权的文件数。

本实施例中,将文档中词的权重看作一个向量,Document={term1,term2,……,termN},Document为文档,term1,term2,……,termN为文档中的词;Document Vector={weight1,weight2,……,weight N},Document Vector为搜索出的文档向量,weight1,weight2,……,weight N为文档向量中每个词的权重。

把要查询的语句看作一个简单的文档,也用向量表示:Query={term11,term12,……,term1N},Query为要查询的语句,term11,term 12,……,term1N,为要查询的语音中的词,Query Vector={weight11,weight12,……,weight 1N},Query Vector为查询向量,weight11,weight12,……,weight 1N为查询向量中每个词的权重。

步骤S72将每个文档向量和查询向量放入N维度的空间中,每个词表示一维:本步骤中,将每个文档向量和查询向量放入N维度的空间中,如图8所示。每个词表示一维,N等于文档向量或查询向量中词的个数。

步骤S73计算每个文档向量与查询向量之间的夹角,按照夹角从小到大的顺序进行排列:本步骤中,计算每个文档向量与查询向量之间的夹角,按照夹角从小到大的顺序进行排列。夹角越小,表示越相似,相关性越大。

本实施例还涉及一种实现上述快速搜索所要查询内容的方法的装置,其结构示意图如图3所示。图3中,该装置包括数据采集存储单元1、数据转换单元2、数据模型建立单元3、数据加载单元4、关联存储单元5、索引建立单元6和搜索排列单元7;其中,数据采集存储单元1用于使用网络爬虫系统从互联网采集各种数据,并在图形数据库中将采集的数据与图形结构中对应节点进行关联存储;上述图形结构包括若干个节点,具有关系的节点之间通过有向连接线连接;图形数据库是节点与关系的集合。

本实施例中,数据转换单元2用于将采集的数据中非结构化数据转换为能分析应用的结构化数据;数据模型建立单元3用于对结构化数据进行清洗,并根据业务领域及来源建立统一的数据模型;数据加载单元4用于根据数据模型采用HBase数据库建立数据仓库,通过对清洗后的数据进行抽取、转换和加载处理,将分散的数据加载到数据仓库中;关联存储单元5用于通过公司名称、简称或股票代码将分散的数据进行关联,并将分散的数据按照图形结构中节点和关系的模式存储在相应的节点中;索引建立单元6用于从图形结构中抽取每个节点中所存储的数据,并建立中文索引;当通过属性查找一个节点或关系时,通过中文索引进行查找。搜索排列单元7用于使用户输入要查询的语句,采用遍历算法搜索相关的图形结构,并将搜索出的图形结构按照相关性的大小进行排列。本发明的装置能快速进行检索、查询高效准确、能给用户提供较好、匹配效率较高。

本实施例中,搜索排列单元7进一步包括向量组成模块71、向量维度模块72和向量夹角计算排列模块73;其中,向量组成模块71用于将要查询的语句中每个词的权重组成查询向量,把搜索出的图形结构中节点中所存储的数据中对应词的权重组成文档向量;向量维度模块72用于将每个文档向量和查询向量放入N维度的空间中,每个词表示一维;N等于文档向量或查询向量中词的个数;向量夹角计算排列模块73用于计算每个文档向量与查询向量之间的夹角,按照夹角从小到大的顺序进行排列。

总之,在本实施例中,通过数据模型可以实现快速进行检索;通过建立中文索引,在用户使用的时候,能够通过模糊的字眼搜索出目标,高精度的分词和组合查询使得查询变得高效准确。与图形数据相结合,可以给用户提供较好的使用体验;将图形结构中节点的属性值交由搜索引擎检索,对于节点与关系则通过图形结构来检索,其匹配效率较高。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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