怎样做垂直搜索和商品比价服务, 使用网页抓取/数据抽取/信息提取软件工具包MetaSeeker
假设要做一个书籍搜索和比价服务,使用网页抓取/数据抽取/信息提取软件工具包MetaSeeker做出来的服务与其他类似的网站有什么不同呢?
确实有很大的不同,主要原因是MetaSeeker工具包中的SliceSearch搜索引擎是一个综合的异构数据信息对象管理系统,做出来的垂直搜索在用户体验方面有很大的不同。下面将详细讲解一下。
垂直搜索服务,同普通搜索不一样,垂直搜索抓取到HTML网络页面时,不是将所有的文本一股脑都入库,而是采用抽取技术,将数据对象的各个字段分别 提取出来,数据对象变成有结构的了,每个字段都关联了特定的语义描述,就像关系数据库中每个字段都一个字段名字。变成结构化数据后存储和索引手段就灵活 了:一种方法是存入关系数据库,这样就彻底解决了搜索引擎查准率的问题,1就是1,2就是2,查询数据库时不可能出现查1得到2的问题,但是关系数据库只 能存表,语义结构很复杂的内容需要很麻烦的关系设计过程,分解成多个表;另一种方法还是采用普通的索引技术,例如,使用Lucene索引和搜索引擎,但 是,因为抽取到了有结构的数据,索引时可以分字段入库,例如,使用Lucene,存储的文档是Document,里面有很多Field,直接对应,这样, 既保留了数据库那种按语义结构入库和检索的特性,又可以获得很高的搜索性能。
网页抓取/数据抽取/信息提取软件工具包MetaSeeker提供了一套完整的解决方案,以书籍网站为例,使用MetaSeeker中的MetaStudio工具,可以快速为多个目标网站页面内容建立语义结构,而且能够自动生成抽取指令文件,全图形化界面,不用编程,熟练操作员在几分钟内即可定义一个指令文件。然后使用DataScraper工具, 定期爬行这些网站,执行提取指令,将结果存储成有结构的XML文件,该工具还有一个SliceSearch管理界面,能够灵活定义信息对象的索引参数和按 语义索引的方法,然后,将提取结果交给SliceSearch,这是一个信息对象索引和搜索引擎,利用专利技术能够准确地搜索结果。例如,用户可以先进行 泛泛的搜索,像使用普通搜索引擎一样,输入一段文字“概率论”,但是这个词既可能出现在标题中,也可能出现在书籍介绍中,甚至出现在读者评论中, SliceSearch虽然猜不出用户想要的是什么,但是它能根据后台语义数据库得出一系列可能,推荐给用户选择,以进一步提炼搜索结果。
读到这大家可能会问,为什么不直接提供一个类似现有的书籍搜索网站那样的用户接口,可以让用户按照字段查询,例如,按书名、ISBN、价格、作者、 出版社等等。界面上当然可以这样做,但是这样做有个代价,这个搜索引擎只固定于书籍搜索,也就是所谓的同构数据对象搜索。如果要建立一个综合的异构数据对 象搜索引擎,里面有各种结构的内容,例如,书籍、外包项目、房产租售等等,你怎么知道用户要搜什么从而给他展现一个合理的界面。当然你可以让用户先输入一 个代表语义范畴的词,此时,就得解决同义、歧义、纠错等等一系列信息处理问题,这些问题的解决也不是轻而易举的,随着搜索库中的内容增加,本身也有准确率 问题。
使用MetaSeeker提供的基于语义结构的处理方法还很容易且很自然的解决了数据对象的展现问题,在MetaSeeker后台语义库中,存储了特定语义对象的展现方法定义,简单的理解成模板,与每个语义结构关联,当用户搜索到某个对象后,将关联的展现模板调出来,实现按本身语义的展现。
MetaSeeker历 经垂直搜索、SNS、微博客多个浪潮的洗礼,已经发展到V3版本,并且免费下载和使用在线版,以促进互联网向语义网络的演进。SliceSearch异构 信息对象搜索引擎更是以一种开放框架的方式提供给有需求的用户,用户可以开发自己的模块,增强其功能,例如,用户可以开发自己的异构数据对象展现方式,例 如,选择XML+XSLT解释方式,或者选择程序代码方式。
线上的
是 一个样例服务,虽然在这个搜索引擎中当前只有同构数据——项目信息,但是,能够看出用户界面的特点,例如,搜索“php”,会得到大量的相关结果,在搜索 结果页给出了多种语义结构,可以将搜索限定在特定语义范畴内,例如,只找关于php的overseas项目,然后,进一步找标题关于php的 overseas项目,然后,还可以根据时间信息过滤。
以上界面特性可以应用于手机搜索,采用一种启发式语义导航的搜索结果提炼方法方便用户快速定位到需要的结果