Intemet已经成为目前世界上最大的信息资源库,面对如此巨大的信息海洋,为了满足人们对快速、准确而全面获取信息的要求,搜索引擎应运而生。依靠搜索引擎,可以帮助用户在网络上方便地查找到自己需要的信息。

 

1 搜索引擎简介

 

  搜索引擎是指通过网络爬虫类程序来获得网站网页资料,并能建立数据库提供查询的系统。按工作原理分有两个基本类别:全文搜索引擎(Full Text SearchEngine)和分类目录(Directory)。全文搜索引擎的数据库是依靠一个叫“网络爬虫(crawlers)”的软件,通过网络上的各种链接自动获取大量网页信息内容,并按一定的规则分析整理形成的。Google、百度都是比较典型的全文搜索引擎系统。分类目录则是通过人工的方式收集整理网站资料形成数据库[1],比如雅虎中国以及国内的搜狐、新浪、网易分类目录。另外,在网上的一些导航站点,也可以归属为原始的分类目录。

 

  全文搜索引擎和分类目录各有特点[2]。全文搜索引擎因为依靠软件进行,所以数据库的容量非常庞大,但它的查询结果往往不够准确,分类目录依靠人工收集和整理网站,能够提供更为准确的查询结果,但收集的内容却非常有限。为了取长补短,现在的很多搜索引擎,都同时提供这两类查询,一般对全文搜索引擎的查询称为搜索“所有网站”或“全部网站”,比如Google的全文搜索;把对分类目录的查询称为搜索“分类目录”或搜索“分类网站”,比如新浪搜索和雅虎中国搜索。

 

  对这两类搜索引擎进行整合,还产生了其它的搜索服务,主要有这两类: 元搜索引擎(METASearch Engine)和集成搜索引擎(All - in - One Search Page)。全文搜索引擎工作原理,如图1所示。

单机版ai 搜索引擎开发教程_数据库

图1 全文搜索引擎工作原理

 

 

2 智能代理技术

 

  从应用的角度来看,智能代理又称智能体,是人工智能研究的新成果。它是在用户没有明确具体要求的情况下,根据用户需要,能自动执行用户委托任务的计算实体。它的应用极其广泛像邮件过滤代理、信息获取代理、桌面自动代理等,将使WEB站点、应用程序更加智能化和实用化。

 

2. 1 智能代理的关键技术

 

  同图形用户接口(GUI)一样,智能代理中有几类关键的技术,虽然并不是每个智能代理都必须使用所有技术,但使用这些技术越多的代理或应用,将具有更多智能代理的特性智能性( Intelligence)和代理能力(Agency)。通常可以将这些关键技术归纳为四大类:机器(Machinery)技术、内容(Content)技术,访问(Access)技术和安全(Security)技术。

 

2. 2 智能代理结构框架

 

  智能代理一般由通讯器、推理机、事物处理器、学习机以及知识库组成,并可以与外界及用户进行交互作用,其结构框架如图2所示。

 

单机版ai 搜索引擎开发教程_数据库_02

 

图2 智能代理结构框架图

 

 

  知识库用来存储代理的知识,用户可增加其中的知识,也可由代理自己通过学习获取新知识;推理机利用现有的知识控制通讯器,事务处理及学习机进行推理;通讯器是负责和外界的通讯;事物处理器是为了达到要完成的目标而不断进行事物处理的设备;学习机通过代理的运行过程,不断总结经验[3]。

 

3 启发式搜索算法

 

  启发式搜索算法能够在大量的信息中抽取最具有访问价值的信息加以访问,可以避免搜索过多的无关信息,因而对于搜索的准确性有很大提高[4]。启发式搜索基本过程如下:
  (1) 给定初始状态S,产生1个状态的有限描述。
  (2) 使用发生函数Q(x)对S产生每个后续状态。
  (3)对产生的状态检查有无目标状态G,如果有则搜索成功。
  (4)如果目标状态G没有出现,就用估价函数f(x)对这些节点进行评估,选择最有希望的节点,继续使用Q(x)产生它的子节点,重复步骤3。
  (5) 如果所有可能的节点都使用Q(x)拓展过,H标状态G还是没出现,则搜索失败。估价函数f(x)的作用是估计open表中每个状态的估价函数值,按照值的大小重新排序。

 

  设计估计函数要考虑两方面内容:己经付出的代价和将要付出的代价。一般把估价函数f (x)定义为初始节点经过n节点到达目标节点的最小代价路径的代价估计值。其一般形式为:
    f(n) =g(n) +h(n) (1)
  其中: g(n)是从初始点S到n的实际代价,而h(n)是从n到目标节点G的最佳路径的估计代价。因为时间代价可以根据己经生成的搜索树实际计算出来,而估计代价就要使用相关启发信息来对未生成的搜索路径做出某些经验性的估计,这种估计来源于对问题解的某些特征的认识,希望依靠这些特征来更快地找到相关问题的解,因此,主要是h(n)体现了搜索的启发信息。

 

3. 1 A3算法应用在搜索中

 

  A3算法在人工智能中是用来搜索有限状态空间的解,在搜索引擎资源获取中,web页面是无法穷尽的,因此无法将所有状态确定下来,但是却可以在局部有限的空间中实现[ 5]。因此对A3算法应用在网络爬虫程序上需要作些调整,网络的无法穷尽,决定了不能依靠到达最终的一个确定状态来判断是否实现了最优搜索。所有只要对满足依赖估价函数值的大小而搜索的顺序都可以认为实现了A3算法。

 

  在试验的算法中,将待访问的链接放入open表,将访问过的链接放入closed表。且对open表中的链接按其估价函数值进行排列,依次获取这些链接,对于该链接生成的子链接如果不在closed表中则放入open表中,且对open表重新进行按估值函数值大小的排列。

 

3. 2 估价函数的内部流程与代码

 

  估价函数主要是对链接做出估价,因此其输入项为所要判断的链接,具体流程如图3所示。该流程对应的相关代码如下,使用ruby编写。对外部链接进行估价部分

 



if md[O]! =nil
  and !md[O]. include? key. to_s
  and !out. include? md[0]
pmd[0]
out_score=0
out[outnum] =md[0]
if te! ="" or te! =nil
for i2in(). . . word. length
 if te. include? word[i2]. chop
  out_score=out_score+10
      end
    ifmd[0]. include? word[i2]. chop
   out_score=out_score+10
  end 
 end
end
outscore[outnum] =out_score
outnum=outnum+l
end



单机版ai 搜索引擎开发教程_搜索_03

图3 估价函效的内部流程图

 

 

4 算法的应用和结果分析

 

  在实验中,用“相对回报率”来评价搜索引擎中资源获取的性能,相对回报率的公式如下:

                      

单机版ai 搜索引擎开发教程_人工智能_04

         (2)

  所以本文采用的算法最后的相对回报率η=21. 91%。如果使用宽度或深度优先遍历,那么相对回报率将是n = 0. 2338%,如图4所示。

单机版ai 搜索引擎开发教程_搜索_05

图4 访问页面的比例

 

 

 

5 结 论

 

  在本文中启发式搜索算法应用于搜索引擎资源的获取,取得了较理想的结果,与传统的宽度优先和深度优先算法比有了很大的提高。

 

 

参考文献:

 

[1] 沈红芳. 互联网搜索引擎及其功能优化[J ]. 模型情报学报,2000, 18(1):7- 9.
[2] 郑家恒,宋文中. 中文信息自动分类方法[J]. 研究情报学报,2002, 21(5):32- 36.
[3] 景 波. 基于智能代理的入侵检测模型[D]. 太原:太原理工大学, 2003.
[4] 张 俐,李 星. 中文网页自动分类新算法[J]. 清华大学学报(自然科学版) , 2000, 40(1):39- 42.
[5] 任瑞娟,李洪建. 中文WWW搜索引擎比较研究[J]. 大学图书馆学报, 1999, (5):55- 61.