互联网数据全文搜索方法与流程

文档序号:11199348阅读:620来源:国知局
互联网数据全文搜索方法与流程

本发明涉及数据检索,特别涉及一种互联网数据全文搜索方法。



背景技术:

随着web技术的不断发展,网络信息资源正以几何速度的方式增长。如何从互联网海量信息中快速检索出与用户相关的有用数据已成为当前急需解决的问题。搜索引擎正是在信息检索技术的基础上发展起来的。搜索引擎帮助本发明更好的表达和存储现实世界中的本质信息,而且通过对搜索引擎中的联接信息进行分析,可作为一种挖掘隐藏信息的有用工具。现有搜索引擎单纯的依赖有限搜索词去表达用户需求,存在这表达不完整的问题。即使是同样的搜索词,不同的用户所期望的结果可能也是不同的。例如微博系统,如果考虑微博以及相关交互对象的关系,它可以抽象为一个异构网络,其中包含了微博、信息、标签以及用户等节点。微博和微博之间存在着关注和粉丝关系,微博和信息之间存在着发表和转发关系,微博和标签之间是一个包含关系,而用户和微博之间存在着拥有关系。现有的搜索工具并未考虑上述多维对象形成的复杂环境进行数据挖掘。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种互联网数据全文搜索方法,包括:

通过搜索引擎的采集模块对互联网站点进行基础数据爬取和分布式存储;

搜索引擎的分析模块将采集的基础数据进行分析处理,为关键字建立索引,便于用户搜索。

优选地,所述采集模块包括爬取站点数据库、爬取站点调度单元、事务管理控制器、事务容器、数据控制器、基础数据库;

所述事务管理控制器用于多个爬取事务的创建、启动、运行控制和销毁;事务有自己独立的容器,用于事务资源的管理;所述数据控制器用于程序与数据库之间的数据交换处理;包括全局数据源缓存单元、数据调度单元、数据访问管理单元;全局爬取缓存单元用于处理多事务在对临界资源访问时的事务等待,每个网络爬虫只有一个全局爬取缓存单元实例;数据访问管理单元用于数据库与程序的数据交互处理;数据调度单元实现单事务爬取的调度,当单事务爬取缓存单元中没有爬取时,由数据调度单元从全局爬取缓存单元中获取若干爬取到事务爬取缓存单元;数据调度单元在整个程序中只有一个实例。

优选地,所述事务容器进一步包括:

爬取站点缓存单元,用于在内存中建立队列来缓存事务要爬取的站点数据;

事务缓存单元,用于缓存事务自身的数据;

存储缓存单元,缓存待存储到数据库的相关数据;

采集事务处理单元,用于对采集数据的加载、实现数据更新、链接去重、存储处理;

数据清洗抽取单元,对采集的代码进行清洗,抽取出有效信息,获取网页质量等级评价的相关信息和获取网页中新的爬取站点;

数据存储分析单元,将清洗抽取出来数据转换为易存储的形式,数据进行压缩,组成待执行的数据库搜索字符串。

优选地,所述有效信息包括网页的标题、关键字、摘要、正文、网页中出现的字体类型、媒体特征信息。

优选地,所述分析模块关键字建立索引,进一步包括:

依次对文本进行关键字提取;对于数字或中文数字汉字,如果是连续存在的,当成一个关键词进行处理;对于英文字母,如果遇到空格等非英文字母时,则进行划分;对于中文汉字组成的句子,则按下面的次序进行处理:①如果字符是一连续的汉字数字,则将汉字数字连续放在一起;②如果连续三个汉字都是独立的,没有形成词组,将这个三个独立的字作为一个新的词组进行划分。③如果①、②两种情况都不存在,则采用基于词库算法进行划分;对于其它不是数字、英文字母、简体中文的计算机符号,则将这些计算机符号看成特别字符,每个特别字符为一个关键词。

本发明相比现有技术,具有以下优点:

本发明提出了一种互联网数据全文搜索方法,利用事务控制策略进行高效数据采集,针对多维对象之间的耦合关系进行数据挖掘。

附图说明

图1是根据本发明实施例的互联网数据全文搜索方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种互联网数据全文搜索方法。图1是根据本发明实施例的互联网数据全文搜索方法流程图。

本发明的搜索引擎可分为采集模块和分析模块。采集模块包括爬取站点数据库、爬取站点调度单元,事务管理控制器、事务容器、数据控制器、基础数据库。事务管理控制器用于多个爬取事务的创建、启动、运行控制和销毁。事务有自己独立的容器,用于事务资源的管理,具体包括:爬取站点缓存单元,用于在内存中建立队列来缓存事务要爬取的站点数据;事务缓存单元,用于缓存事务自身的数据;存储缓存单元,缓存待存储到数据库的相关数据;采集事务处理单元,用于对采集数据的加载、实现数据更新、链接去重、存储处理;数据清洗抽取单元,对采集的代码进行清洗,抽取出有效信息。这些有效信息包括网页的标题、关键字、摘要、正文、网页中出现的字体类型、媒体特征信息。获取网页质量等级评价的相关信息和获取网页中新的爬取站点;数据存储分析单元,将清洗抽取出来数据转换为易存储的形式,数据进行压缩,组成待执行的数据库搜索字符串。数据控制器用于程序与数据库之间的数据交换处理;包括全局数据源缓存单元、数据调度单元、数据访问管理单元。全局爬取缓存单元用于处理多事务在对临界资源访问时的事务等待,减少多事务对数据库的操作访问次数。每个网络爬虫只有一个全局爬取缓存单元实例。数据访问管理单元用于数据库与程序的数据交互处理。数据调度单元实现单事务爬取的调度,当单事务爬取缓存单元中没有爬取时,由数据调度单元从全局爬取缓存单元中获取若干爬取到事务爬取缓存单元。数据调度单元在整个程序中只有一个实例。

搜索引擎的网络爬虫在工作时,首先读取程序配置文件,并预加载缓存采集时要用到的数据;事务管理器。根据配置信息,初始化各个事务,并控制事务的运行;事务获取处理任务,先进行爬取链接去重检查,分析爬取链接的类型,对不同的采集类型执行不同的处理方式,在采集时,分析是新的采集事务还是更新任务,并在获取到链接的网页源码后,对采集到的网页源码执行清洗、过滤,根据网页信息相关特征规律,提取出有效信息;事务对提取出的信息进行转换处理,进行缓存;当缓存待保存数据达到一定数量时,事务执行缓存数据入库处理;同时事务管理器定时监控各个事务的执行状态,对异常事务进行控制管理。

在爬取之前,根据域名生成规则依次遍历所有可能的组合域名,对组合域名进行依次检测,识别有效域名与无效域名,建立根域名库;然后获取导航站点的网页源码,根据根域名组成规则从网页源码中提取根站点地址与链接文本,更新根域名库。

每个网络爬虫只有一个全局的采集事务调度单元。当事务的爬取站点缓存为空时,事务请求或等待数据调度单元从全局采集缓存站点或数据库传送爬取站点。事务调度过程具体为:事务获取数据调度单元控制权限;判断全局采集缓存站点是否为空,如为空,则从数据库获取一定数量的爬取缓存到全局采集缓存源,如不为空,则从全局爬取站点获取一定数量的爬取给当前事务的爬取缓存单元。

对于单事务,其采集流程具体如下:

1.事务从事务队列中获取一个非空采集事务对象。如果获取到空事务对象,则执行事务调度。

2.判断采集事务的深度是否超过最大的深度;事务从当前采集事务对象中获取其当前事务对象所在的采集深度。如果采集深度超过系统配置的站点采集深度,则当前事务采集结束。如采集深度未超过系统配置的站点采集深度,则事务继续步骤3。

3.判断采集事务的类型;如果是网页采集事务,则执行步骤4,如果不是网页采集事务,则执行步骤5。

4.判断是否是新网页还是未完成的网页链接;如果此采集事务访问地址不在历史抓取库中,则按新发现的网页进行采集即步骤7。如果此采集事务在历史抓取库中,从历史抓取库中获取此网页地址的上次采集信息:访问地址、访问时间、页面大小、更新频率、根域名。计算上次访问时间与本次访问当前时间的间隔时间是否已经超过更新频率,如果未超过,则不进行采集,采集结束;如果已经超过,则比较当前网页地址的页面内容大小与上一次页面内容大小,如果相等,则不进行采集,如果不相等,则继续步骤6。

5.如果是媒体或文件链接,则执行相应的采集文档处理;如果是非法链接,则记录此异常链接。

6.获取此网页链接页面源码,更新历史访问库中此网页地址的采集信息,执行步骤8。

7.采集新任务网页,获取此网页链接页面的源码,在历史访问库中增加此网页地址的访问记录。

8.执行网页清洗抽取,该网页清洗抽取步骤用于从网页源码中提取指定的特征信息,清除网页源码中的无用信息或噪声数据,然后再从清洗好数据中提取出需要的信息。进一步地,根据文本相似度算法,从网页中提取标题,网页中定义的关键字、描述性文本、标题,正文,网页中的链接、媒体资源供排序分析使用。在清洗时,事务采集程序首先获取当前事务的网页编码。启动清洗器,并初始化。清除网页编码中的样式编码和注解编码;清除网页编号中的脚本代码,并同时根据脚本编码信息识别当前网页是否存在媒体文件。如果存在则进行保存。将提取后的信息进行压缩转换成易于存储的格式并进行存储。

对于页面重复链接,为每个事务部署专门的去重容器,每个容器只存储自己已经访问过的链接地址的映射码。去重容器只需要记录自己访问过在同一个根域名站点下的链接,对不属于此根域名下的网页地址进行丢弃处理。当事务开始采集另一个根站点信息时,清空去重容器的历史访问记录,重新记录新的根站点访问记录。将信息采集器爬取站点的深度设置阈值,每个事务运行时,实际去重容器所占的内存可以通过爬取站点深度阈值来控制。

为减少事务等待,本发明采用多层缓存结构,根据计算机的内存大小对各层缓存大小进行配置。首先对全局爬取进行缓存。在对爬取数据库的访问连接过程中,采用一次性获取批量爬取结果进行缓存。其次采用单个事务自身的爬取缓存。每个事务各自拥有一个采集数据源缓存区域。然后对事务在处理过程中的产生的数据进行缓存,包括在链接去重检查时,缓存访问过的网页、媒体链接地址。最后一层缓存是缓存待保存的数据。当待保存的数据达到一定数量以后,事务才对数据进行入库保存。

所述搜索引擎的分析模块用于将采集回来的文本、媒体的基础数据进行分析处理,为关键字建立索引,便于检索系统的搜索。分析模块对文本进行关键字提取时,依次对文本进行关键字提取。对于数字或中文数字汉字,如果是连续存在的,本发明当成一个关键词进行处理。对于英文字母,如果遇到空格等非英文字母时,则进行划分。对于中文汉字组成的句子,则按下面的次序进行处理:①如果字符是一连续的汉字数字,则将汉字数字连续放在一起。②如果连续三个汉字都是独立的,没有形成词组,本发明将这个三个独立的字作为一个新的词组进行划分。③如果①、②两种情况都不存在,则采用基于词库算法进行划分。对于其它不是数字、英文字母、简体中文的计算机符号,则将这些计算机符号看成特别字符,每个特别字符为一个关键词。

对文本进行关键字提取步骤进一步包括:

加载中文词组。从分词对象中获取待划分的文本;获取分析位置及字符,判断分析的位置是否已经是待划分文本的末尾,如果是待划分文本的最后位置,则划分好的文本加上切分符,再加上待划分文本的最后一个字符,组在新的划分好的文本,此时文本划分完成。从分析位置开始,寻找切分符位置。找到切分符的位置后,截取分析位置到切分符位置之间的字符,切分符加上划分后的文本,组成已经划分好的文本。

中文基础词库的存储采用双层散列列表对象存储。以单词词组的首个汉字为键,以另一个散列列表对象为键值的存储结构;键值的散列列表对象存储的是以键开头的词组的除去首个汉字后的词组剩余部分。首汉字的键值的存储结构是以单词的第二个汉字为键,以链式数组为键值。这个链式数组存储词库中的单词的前两个汉字相同、从单词的第三个汉字开始不同的文本序列。

通过使用词库为依据对文本进行划分,来寻找词组在词库中是否存在。如果在词库中存在,则继续匹配过程,如果不存在于词库中,则匹配结束,进行划分。

进一步地,在搜索得到网页集合后,根据搜索和网页自身内容特征分别构造基于特征的相似图,同时基于搜索和网页之间的兴趣关系构建搜索网页二元关系图,在给定少量搜索和网页类别标记的情况下预测未标记搜索和网页的类别。

首先要根据样本数据及其联系构建一个图,节点表示样本数据,边表示样本之间的联系,边的权重表示样本之间联系的紧密程度。包含了多种不同类型对象构建的搜索引擎可以表示为g=(v,e),其中v=q∪d可以表示为不同类型的顶点的集合,e为连接顶点的边的集合。q为搜索的集合,d为网页的集合。e=eqq∪eqd∪edd,其中eqq=q×q,eqd=q×d,edd=d×d。令gq=(q,eqq),gqd=(q,d,eqd),gd=(d,edd),则g=gqq∪gqd∪gdd。其中gq表示由搜索节点构建的子图,gd表示由网页节点构建的子图,gqd表示由搜索节点和网页节点根据兴趣关系构建的子图。

基于节点之间的以下距离函数进行定义边的权重wij

wij=exp(-d(xi,xj)/2σ2)

在文本计算中,为两个文本向量xi,xj之间的夹角余弦;xi和xj互为k近邻中的节点;其中d(xi,xj)为距离函数||xi-xj||,σ为调节参数。

根据预先标记样本的判别信息修改原有的图结构:

1.构造gq和gd和gqd。计算gq上所有节点之间边的平均权重wq,gd上所有节点之间边的平均权重wd。

2:设搜索标记数据被划分为c个类,表示为pq={pq1,pq2,...,pqc},其中pqi表示第i个类别的标记搜索的核心集。令mqi表示第i个搜索类别标记的成对约束集,若x∈pqi且y∈pqi,则将(x,y)加入mqi。设网页标记数据被划分为c个类,表示为pd={pd1,pd2,...,pdc},其中pdi表示第i个类别的标记网页的核心集。令mdi表示第i个网页类别标记的成对约束集,若x∈pdi且y∈pdi,则将(x,y)加入mdi

3:若搜索样本对(ql,qm)∈mqi,qk为ql和qm的邻居,wlk<wq且wmk>wq,则将qk加入pqi,将(ql,qk)和(qm,qk)加入mqi

4:重复3,直到pq不再变化。

5:若网页样本对(dl,dm)∈mdi,dk为dl和dm的邻居,wlk<wd且wmk>wd,则将dk加入pdi,将(dl,dk)和(dm,dk)加入mdi

6:重复5,直到pd不再变化。

7:若搜索样本对(ql,qm)∈mqi,则修改gq令wlm=1,若ql∈pqi则修改gq令wlm=0。若网页样本对(dl,dm)∈mdi,则修改gd令wlm=1,若dl∈pdi则修改gd令wlm=0。

8:若搜索ql∈gp:且网页dmgpj,则且修改gqd令wlm=1。

其中wlk,wmk,wlm分别为在搜索ql、qm、ql分别在网页dk,dk,dm中的权重。

通过上述过程能够丰富搜索和网页之间的关系,使同类节点之间的联系更为紧凑,不同类别的节点之间的联系更加松散,从而可以更好的采用以下过程来进行分类:

1.对于类别j∈{1,...,c},以及上述子图中的节点i∈{1,...,n},构造n×c的初始化标记矩阵y。

2.根据同构节点之间的相似性度量分别构造同构网络上的邻接矩阵wqq,wdd,根据异构节点之间的关系构造邻接矩阵wqd及相应的转置矩阵wdq。

3.构造矩阵其中

4.取f(0)=y,迭代计算f(t+1)=μαsf(t)+(1-μα)y,其中μα为介于(0,1)之间的参数。

5.设f*为{f(t)}序列的极限,则图g中的节点vi根据yi=argmaxj<cfij进行分类标记。

上述在迭代过程中,图的每个节点都不断的将标记信息传播给自己的邻居节点直到它们达到一个稳定的状态。

综上所述,本发明提出了一种互联网数据全文搜索方法,利用事务控制策略进行高效数据采集,针对多维对象之间的耦合关系进行数据挖掘。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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