垂直搜索引擎技术指标
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
垂直搜索引擎技术指标
一、什么是垂直搜索
垂直搜索是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。
垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取,也就是将网页的非结构化数据抽取成特定的结构化信息数据,好比网页搜索是以网页为最小单位,基于视觉的网页块分析是以网页块为最小单位,而垂直搜索是以结构化数据为最小单位。
然后将这些数据存储到数据库,进行进一步的加工处理,如:去重、分类等,最后分词、索引再以搜索的方式满足用户的需求。
整个过程中,数据由非结构化数据抽取成结构化数据,经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。
垂直搜索引擎的应用方向很多,比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地图搜索、mp3搜索、图片搜索……几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。
二、垂直搜索技术概述
垂直搜索技术主要分为两个层次:模板级和网页库级。
模板级是针对网页进行模板设定或者自动生成模板的方式抽取数据,对网页的采集也是针对性的采集,适合规模比较小、信息源少且稳定的需求,优点是快速实施、成本低、灵活性强,缺点是后期维护成本高,信息源和信息量小。
网页库级就是在信息源数量上、数据容量上检索容量上、稳定性可靠性上都是网页库搜索引擎级别的要求,和模板方式最大的区别是对具体网页不依赖,可针对任意正常的网页进信息采集信息抽取……。
这就导致这种方式数据容量上和模板方式有质的区别,但是其灵活性差、成本高。
当然模板方式和网页库级的方式不是对立的,这两者对于垂直搜索引擎来说是相互补充的,因为技术只是手段,目的是切反用户之需。
本文谈及的技术主要是指网页库级别垂直搜索引擎技术。
下图为垂直搜索引擎结构的拓扑图。
三、垂直搜索引擎的主要技术指标
<1>、信息采集技术:
垂直搜索引擎spider和网页库的spider相比应该是更加专业,可定制化。
可定向性的采集和垂直搜索范围相关的网页忽略不相关的网页和不必要的网页,选择内容相关的以及适合做进一步处理的网页深度优先采集、对页面有选择的调整更新频率……,采集可通过人工设定网址和网页分析url方式共同进行。
垂直搜索对信息的更新有着特别的要求,根据这些特点可以从以下几点考虑1.信息源的稳定性(不能让信息源网站感觉到spider的压力)2.抓取的成本问题3.对用户体验改善程度。
根据以上几点制定一种比较好的策略,要做到恰到好处。
策略上可以评估网站/网页更新的系数、网站/网页的重要系数、用户点击系数(或曝光系数)、网站稳定系数……,根据这些系数来确定对这些网站/网页更新的频率。
再由于新信息和更新了的信息list页面前面或者首页,所以对网页进行很好的分级可以以低成本很好的解决更新问题,系数比较低的网页一月update一次,稍微高点的一周update一次、中等的几天到一天一次、高的几小时到几分钟一次。
类似搜索引擎的大库、周库、日库,小时库……
聚焦、实时和可管理
一般互联网搜索面向全网信息,采集的范围广、数量大,但往往由于更新周期的要求,采集的深度或说层级比较浅,采集动态网页优先级比较低,因而被称为水平搜索。
而垂直搜索带有专业性或行业性的需求和目标,所以只对局部来源的网页进行采集,采集的网页数量适中。
但其要求采集的网页全面,必须达到更深的层级,采集动态网页的优先级也相对较高。
在实际应用中,垂直搜索的网页采集技术能够按需控制采集目标和范围、按需支持深度采集及按需支持复杂的动态网页采集,即采集技术要能达到更加聚焦、纵深和可管控的需求,并且网页信息更新周期也更短,获取信息更及时。
一般信息采集软件(爬虫)的基本结构包含以下模块:
(1)保存种子的URL和待取的URL的数据结构。
(2)保存已抓取过的URL的数据结构,防止重复抓取。
(3)页面获取模块。
(4)对已经获取的页面内容的各个部分进行抽取的模块。
以下为其他可选模块:
(5)负责连接前处理模块
(6)负责连接后处理模块
(7)过滤器模块
(8)负责多线程模块
(9)负责分布式的模块
信息采集实质上也就是搜索引擎对页面的收录
页面收录-就是指搜索引擎通过蜘蛛程序在互联网上抓取页面并进行存储的过程,为搜索引擎开展各项工作提供数据支持。
(包括:域名列表、URL列表、网页快照页面)
1)页面收录方式:广度优先、深度优先、用户提交等三种方式。
广度优先–如果把整个网站看作是一棵树,首页就是根,每个页面就是叶子。
广度优先是一种横向的页面抓取方式,先从树的较浅层开始抓取页面,直至抓取完同一层次上的所有页面后才进入下一层。
因些,在对网站进行优化的时候,我们应该把网站中相对重要的信息展示在层次较浅的页面上(例如,在首页上推荐一些热门产品或者内容)。
如下图所示(广度优先抓取流程)。
首先,搜索引擎从网站首页出发,抓取首页上所有链接指向的页面,形成页面集合(A),并解析出集合(A)中所有页面的链接;再跟踪这些链接抓取下一层的页面,形成集合(B)。
递归地抓取完所有浅层页面,再进一步抓取深层页面。
深度优先–是一种纵向的页面抓取方式,首先抓取浅层页面中的某一个链接,然后顺着该链接进一步抓取该链接的下一层页面,直至抓取完最深层次的页面后才返回浅层页面再继续抓取。
使用深度优先的抓取方式,搜索引擎就可以抓取到网站中较为隐蔽、冷门的页面,以满足更多用户的需求。
如下图2-3所示(深度优先抓取流程)。
首先,搜索引擎从网站首页出发,提取首页中的所有链接;再沿着其中的一个链接抓取到页面1-1,同时提取页面1-1 中的所有链接;接着,沿着页面1-1中的一个链接A-1抓取到页面2-1,同时提取页面2-1中的所有链接;再沿着页面2-1中的一个链接B-1继续抓取更深一层的页面。
递归地抓取到网站最深层次的页面,才返回首页继续抓取。
用户提交–为了抓取到更多的网页,搜索引擎还允许网站管理员主动提交页面。
网站管理员只需把网站中页面的URL按照指定的格式制作成文件,提交给搜索引擎,搜索引擎就可以通过该文件对网站中的页面进行抓取及更新。
这种由网站管理员主动提交页面的方式大大提高了搜索引擎抓取页面的效率及质量;而对于网站本身来说,也大大提高了网站页面被收录的数量(目前Google及Yahoo!都支持这种页面抓取方式)。
为了提高抓取页面的效率及质量,搜索引擎会结合多种方式去抓取页面。
例如,先使用广度优先的方式,把抓取范围铺得尽可能宽,获取到尽可能多的重要页面;再使用深度优先的方式,抓取更多隐蔽的页面;最后,结合用户提交的信息,抓取那些被遗漏的页面。
2)搜索引擎对页面的维护方式:定期抓取、增量抓取、分类定位抓取等三种方式。
定期抓取-也称周期性抓取,即搜索引擎周期性地对网站中已收录的页面进行全面的更新。
(包括:替换旧页面、删掉不存在页面、存储新页面)
增量抓取-对网站中某些重要的页面进行了定时监控,以实现对页面的更新及维护。
(这也是为什么搜索引擎对重要页面的更新周期会更快的原因,例如,内容经常更新的页面,搜索引擎也会经常对其进行更新,从而及时发现新内容、删除不存在信息)
分类定位抓取-根据网站页面的类别或性质来制定相应的更新周期来定时监控页面。
(例如,“新闻资讯”类页面的更新周期可以精确到每分钟,而“资源下载”类页面的更新周期就可以定为一天或更长时间)
为了提高页面的更新频率及质量,搜索引擎会结合多种方式去更新。
例如,一个网站中更新比较频繁的首页,可以使用增量抓取方式对其进行监控,以便对网站中相对重要的页面进行及时更新;而对于实时性非常高的论坛页面,则可以采用分类定位的抓取方式;而为了防止遗漏网站中的某些页面,还需要采用定期抓取的方式。
3)搜索引擎对页面的存储
搜索引擎在抓取页面时,除了存储原始页面(即网页快照)外,还会附加一系列信息(例如,文件类型、文件大小、最后修改时间、URL、IP地址、抓取时间等),再把这些信息作为开展某项工作的依据。
<2>、网页信息抽取技术:
结构化信息抽取技术,将网页中的非结构化数据按照一定的需求抽取成结构化数据。
有两种方式,简单的就是模板方式,另外就是对网页不依赖web结构化信息抽取方式,这两种方式可以互取长处,以最简单最有效的办法满足需求。
垂直搜索引擎和通用搜索引擎最大的区别就是对网页信息结构化抽取后再结构化数据进行深度的处理,提供专业的搜索服务。
所以web结构化信息抽取的技术水平是决定垂直搜索引擎质量的重要技术指标。
水平搜索引擎仅能对网页的标题和正文进行解析和提取,但不提供其时间、来源、作者及其他元数据的解析和提取。
由于垂直搜索引擎服务的特殊性,往往要求按需提供时间、来源、作者及其他元数据解析,包括对网页中特定内容的提取。
比如:在论坛搜索、生活服务、订票服务、求职服务、风险信用、竞争情报、行业供需、产品比较等特定垂直搜索服务中,要求对于作者、主题、地区、机构名称、产品名称以及特定行业用语进行提取,才能进一步提供更有价值的搜索服务。
这里又包括:
简单的语法分析:
简单的语法分析在搜索引擎中非常重要,可以通过简单的语法分析来改善数据的质量,低成本的获得某类信息,改善排序,寻找需要的内容……
信息处理技术:
信息处理包括的范围比较广,主要包括去重、聚类、分析……。
数据挖掘:
找出您的信息的关联性对于垂直搜索来说非常重要,有效,可以在这些相关性上为用户提供更细致的服务。
高度智能化的数据挖掘
垂直搜索与水平搜索的最大区别是它对网页信息进行了结构化信息抽取加工,也就是将网页的非结构化数据抽取成特定的结构化信息数据,好比网页搜索是以网页为最小单位,基于视觉的网页块分析是以网页块为最小单位,而垂直搜索是以结构化数据为最小单位。
基于结构化数据和全文数据的结合,垂直搜索才能为用户提供更加到位、更有价值的服务。
整个结构化信息提取贯穿从网页解析到网页加工处理的过程。
同时面对上述要求,垂直搜索还能够按需提供智能化处理功能,比如自动分类、自动聚类、自动标引、自动排重,文本挖掘等等。
这部分是垂直搜索乃至信息处理的前沿技术在一些海量信息处理的场合能够起到很
好的应用效果。
下面配合图标详细说明:
搜索引擎对页面的分析
页面分析-首先是对页面(下载到搜索引擎本地的页面-网页快照)建立索引,以实现对页面的快速定位;然后,提取页面的正文信息(过滤掉HTML标签),并对正文信息进行切词以及为这些词(即关键字)建立索引,从而得到页面与关键字的之间对应关系(一个页面对应多个关键字);最后,对所有关键字进行重组,并建立关键字与网页间对应关系的反向索引列表(一个关键字对应多个网页URL),从而实现根据关键字快速定位至相应的网页。
(包括:网页索引表、切词后形成的关键字索引表、页面与关键字的”一对多”的关系列表、重组关键字与页面的”一对多”的关系列表)。
1)网页索引-为页面URL建立索引表,这样通过URL就可以快速定位到对应的页面。
2)正文信息提取- 过滤网页标签(如:HTML标签、JS标签、PHP标签、ASP标签等),这就是js 对搜索引擎无效的原因。
3)切词/分词- 两种切词方法:字符串匹配切词、统计分词。
①字符串匹配切词-是基于一个足够大、足够权威的“词典(词库)”进行的。
如果页面上的词与“词典”中的词匹配,则为命中。
这样就可以得到一个词或者短语。
②统计分词- 是根据相邻的两个(或多个)字出现的概率来判断这两个(或多个)字组合后是否会形成一个词。
统计分词也常常结合“词典”进行匹配,常用于识别一些新词汇。
4)页面正文信息经过切词系统处理后,形成了关键字列表。
其中包含了关键字编号、网页编号、关键字出现次数、关键字在页面中的位置区域。
搜索引擎对页面排序
页面排序-搜索引擎结合页面的内外部因素计算出页面与某个关键字的相关程度,从而得到与该关键字相关的页面排序列表。
影响页面排序因素:页面相关性、链接权重、用户行为等。
1)页面相关性
页面相关性-是指页面内容与用户所查询的关键字在意义上的接近程度。
主要由关键字匹配度、关键字密度、关键字分布、关键字权重标签等决定。
①关键字匹配度- 页面中是否包含关键字K、关键字K在页面中出现的次数。
②关键字密度= 关键字词频/ 网页总词汇量。
③关键字分布- 关键字在页面中出现的位置。
④关键字权重标签- 如:字体样式、字号、颜色等。
(<h1>...<h6>、<font>、<b>、<u>、<i>、<strong>、<em>)
W(页面相关性)= W(关键字匹配度)+ W(关键字密度)+ W(关键字分布)+ W(关键字权重标签)
2)链接权重
链接权重- 链接主要分为内部链接、外部链接两种。
某一页面得到的链接(包括内、外部链接)越多,那么该页面的链接权重值就越高。
3)用户行为
用户行为- 搜索引擎会根据用户对搜索结果的点击次数来对排序结果进行定期改进。
W(页面权重值)= W(页面相关性)+ W(链接权重)+ W(用户行为)
<3>、分词技术:
面向搜索的分词技术,建立和您的行业相关的词库。
注意这是面向搜索的分词,不是面向识别和准确的分词。
信息的飞速增长,使搜索引擎成为人们查找信息的首选工具,Google、百度、中国搜索等大型搜索引擎一直是人们讨论的话题。
随着搜索市场价值的不断增加,越来越多的公司开发出自己的搜索引擎,阿里巴巴的商机搜索、8848的购物搜索等也陆续面世,自然,搜索引擎技术也成为技术人员关注的热点。
搜索引擎技术的研究,国外比中国要早近十年,从最早的Archie,到后来的Excite,以及altvista、overture、google等搜索引擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开始研究搜索引擎是在上世纪末本世纪初。
在许多领域,都是国外的产品和技术一统天下,特别是当某种技术在国外研究多年而国内才开始的情况下。
例如操作系统、字处理软件、浏览器等等,但搜索引擎却是个例外。
虽然在国外搜索引擎技术早就开始研究,但在国内还是陆续涌现出优秀的搜索引擎,像百度()、中搜()等。
目前在中文搜索引擎领域,国内的搜索引擎已经和国外的搜索引擎效果上相差不远。
之所以能形成这样的局面,有一个重要的原因就在于中文和英文两种语言自身的书写方式不同,这其中对于计算机涉及的技术就是中文分词。
什么是中文分词
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。
例如,英文句子I am a student,用中文则为:“我是一个学生”。
计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。
把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。
我是一个学生,分词的结果是:我是一个学生。
中文分词和搜索引擎
中文分词到底对搜索引擎有多大影响?对于搜索引擎来说,最重要的并不是找到所有结果,因为在上百亿的网页中找到所有结果没有太多的意义,没有人能看得完,最重要的是把最相关的结果排在最前面,这也称为相关度排序。
中文分词的准确与否,常常直接影响到对搜索结果的相关度排序。
笔者最近替朋友找一些关于日本和服的资料,在搜索引擎上输入“和服”,得到的结果就发现了很多问题。
下面就以这个例子来说明分词对搜索结果的影响,在现有三个中文搜索引擎上做测试,测试方法是直接在Google ()、百度()、中搜(http: //)上以“和服”为关键词进行搜索:
在Google上输入“和服”搜索所有中文简体网页,总共结果507,000条,前20条结果中有14条与和服一点关系都没有。
在第一页就有以下错误:
“通信信息报:瑞星以技术和服务开拓网络安全市场”
“使用纯HTML的通用数据管理和服务- 开发者- ZDNet ...”
“陈慧琳《心口不一》化妆和服装自己包办”
“::外交部:中国境外领事保护和服务指南(2003年版) ...”
“产品和服务”
等等。
第一页只有三篇是真正在讲“和服”的结果。
在百度上输入“和服”搜索网页,总共结果为287,000条,前20条结果中有6条与和服一点关系都没有。
在第一页有以下错误:
“福建省晋江市恒和服装有限公司系独资企业”
“关于商品和服务实行明码标价的规定”
“青岛东和服装设备”
在中搜上输入“和服”搜索网页,总共结果为26,917条,前20条结果都是与和服相关的网页。
这次搜索引擎结果中的错误,就是由于分词的不准确所造成的。
通过笔者的了解,Google的中文分词技术采用的是美国一家名叫Basis Technology()的公司提供的中文分词技术,百度使用的是自己公司开发的分词技术,中搜使用的是国内海量科技()提供的分词技术。
由此可见,中文分词的准确度,对搜索引擎结果相关性和准确性有相当大的关系。
中文分词技术
中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
1、基于字符串匹配的分词方法
这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。
常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。
由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。
一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。
统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。
但这种精度还远远不能满足实际的需要。
实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。
另
一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。
2、基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。
其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。
它通常包括三个部分:分词子系统、句法语义子系统、总控部分。
在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。
这种分词方法需要使用大量的语言知识和信息。
由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
3、基于统计的分词方法
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。
因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。
可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。
定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。
互现信息体现了汉字之间结合关系的紧密程度。
当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。
这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。
但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。
实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
到底哪种分词算法的准确度更高,目前并无定论。
对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。
笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。
分词中的难题
有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。
中文是一种十分复杂的语言,让计算机理解中文语言更是困难。
在中文分词过程中,有两大难题一直没有完全突破。
1、歧义识别
歧义是指同样的一句话,可能有两种或者更多的切分方法。
例如:表面的,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面的”和“表面的”。
这种称为交叉歧义。
像这种交叉歧义十分常见,前面举的“和服”的例子,其实就是因为交叉歧义引起的错误。
“化妆和服装”可以分成“化妆和服装”或者“化妆和服装”。