资源描述
1,第二章搜索引擎的架构,2,搜索引擎是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。,3,搜索引擎使用情况分析报告,4,搜索引擎使用情况分析报告,5,2.1什么是软件架构,软件架构是在一个特殊的抽象层次用于描述系统的工具通常包括软件组件、软件提供的接口以及各组件之间的联系搜索引擎架构的需求效果(effectiveness):对于一个用户查询,希望检索到最多的相关文档;效率(efficiency):尽可能快地处理用户的查询,6,2.2基本构件,索引处理建立可查找的数据结构查询处理使用这些数据结构和用户的查询生成一个排好序的文档列表,7,8,9,2.3组件及其功能,索引处理构件文本采集文本转换索引创建,查询处理构件用户交互排序评价,10,爬虫为搜索引擎发现和抓取文档;许多类型,web,enterprise,desktop,主题爬虫网络爬虫通过追踪网页上的超链接来找到并下载新的页面-能够高效处理互联网上大量出现的新网页-抓取任务可以限制在一个单独的站点-主题爬虫采用分类技术限制所访问的网页是同一主题,2.3.1文本采集,11,爬虫(Cont.)及时、高效的收集数量尽可能多的有用的万维网页面,以及建立它们之间的超链接关系侧重用户需求:及时、数量多、有用侧重搜索引擎系统需求:高效收集的内容:网页、链接关系,2.3.1文本采集(Cont.),12,运行原理,2.3.1文本采集(Cont.),13,信息源(Feeds)是一种存取实时文档流的机制;-e.g.,新闻信息源是一个持续不断的新闻流及新闻的更新-RSS是互联网信息源采用的一个通用标准;-RSS“阅读器”用于支持RSS信息源,采用XML数据格式。阅读器检测信息源,可以获取信息源更新的内容;转换(Conversion)e.g.HTML,XML,Word,PDF,etc.XML文本编码转换以适用不同语言-Unicode是一个通常使用16位进行编码的标准编码方案,可以表示世界上绝大多数语言中使用的文字,2.3.1文本采集(Cont.),14,文档数据库存储文本、元数据和另一些文档相关的内容-文档元数据,如文档类型、创建时间-另一些内容如超链接、锚文本为搜索引擎组件提供对文档内容的快速存取-e.g.resultlistgeneration,2.3.1文本采集(Cont.),15,16,解析器处理文档中的文本词素序列,以识别文档中的结构化元素-e.g.,titles,links,headings,etc.词素切分是指识别文档中的词素-由空格分开的字母和数字构成的字符串-包括处理特殊字符,如大小写、连接符、单撇号-E.g.“apple”and“Apple”;”on-line”;”OConnor”文档结构通常由HTML、XML等标记语言指定-使用tag定义文档元素,E.g.,Overview-文档解析器使用标记语言的句法知识识别文档的结构,2.3.2文本转换,17,停用词去除不具有实际意义的功能词,去除后不影响搜索效果-e.g.,“and”,“or”,“the”,“in”根据实际应用确定停用词表-避免“tobeornottobe”词干提取去除词缀得到词根的过程-得到单词最一般的写法-e.g.,“computer”,“computers”,“computing”,“compute”,2.3.2文本转换(Cont.),18,超链接的抽取和分析抽取内容:超链接和锚文本链接分析向搜索引擎提供一个页面的关注度,并在一定程度上提供页面的权威度-e.g.,PageRank锚文本是网络链接上可以点击的文本,给出了链接所指向页面的内容概要,2.3.2文本转换(Cont.),19,信息抽取识别更加复杂的索引项,而不是一个单独的词-E.g.一个黑体、加粗的词,题目中的词识别指定语义的特征-命名实体识别,E.g.人名、公司名、日期、地名分类器识别与类别相关的数据。i.e.,assignslabelstodocuments辨别一个文档是否是垃圾文档识别文档中的非内容部分,如广告等,2.3.2文本转换(Cont.),20,文档统计汇总和记录词、特征及文档的统计信息;-E.g.索引项在各文档中出现的频率、索引项在文档中出现的位置、索引项在一组文档中出现的次数、按照词素统计的文档长度等统计结果存储在查找表中,查找表是设计用于快速检索的一种数据结构排序组件使用统计信息计算文档的分值,2.3.3索引的创建,21,加权(Weighting)文档中词的权重反映了文档中词的相对重要性用于排序算法e.g.,tf.idfweight倒排索引处理的核心组件将文本转换组件传递过来的文档-词项信息转换为词项-文档信息倒排索引用于快速的实现查询处理-要求能够处理更新-索引压缩以提高效率,2.3.3索引的创建(Cont.),22,索引分派将索引分发给多台计算机,也可能是网络中的多个站点分布式处理是网络搜索引擎的基础分派文档子集的索引表,索引和查询处理可以并行分派词项子集的索引,能够支持查询的并行处理复制是分派的一种,能够减少通信延迟,进一步提高效率,2.3.3索引的创建(Cont.),23,查询输入为查询语言提供接口和解析器大部分查询语言仅使用少量的操作符,操作符是查询语言的命令,用于指示文本需要进行特殊方式的处理。布尔查询:操作符包括And、Or和Not,2.3.4查询处理,24,查询转换改善初始查询基于查询文本转换的技术,如词素切分、去停用词、词干提取等,以生成和文档词项有可比性的索引词拼写检查和查询建议-纠正拼写错误-用户所需信息的更规范描述查询扩展和相关反馈-查询扩展是对查询进行推荐或者增加一些额外的词项-相关反馈是利用用户认为相关的文档中出现的词项对查询进行扩展,2.3.4查询处理(Cont.),25,结果输出对排序好的文档结果进行显示生成网页摘要对检索到的文档内容进行概括强调文档中的重要词和段落对输出结果聚类以找到文档相关的类别在结果显示中增加相应的广告在涉及多语言的应用系统中,结果可能被翻译成同一种语言,2.3.4查询处理(Cont.),26,排序-打分机制使用排序算法计算文档的分值是搜索引擎的核心组件基本的打分形式为qidi-qi是查询中第i个词项的权值-di是文档词项的权值-词项的权值依赖于所使用的特定检索模型,如TF-IDF搜索引擎需要借助多个因素共同决定结果排序链接结构、内容相关、用户行为、页面结果、时间因素、服务稳定性等,2.3.4查询处理(Cont.),27,性能优化涉及排序算法和索引表的设计,以降低响应时间,提高查询吞吐量安全的优化方式能够保证计算得到的分值和没有经过优化得到的分值一样不安全的优化方式不能保证计算得到的分值和没有经过优化得到的分值一样分布式排序以分布式形式将多个用户查询分派给不同的处理器,并负责将各处理器返回的结果合在一起,2.3.4查询处理(Cont.),28,日志调整和改善搜索引擎系统的效果和效率用户的查询日志可以用于拼写检查、相关查询词推荐、查询缓存及其他任务排序分析对于大量的查询-文档对,给定日志数据和显示的相关性判定,可以对排序算法的效果进行评估性能分析专注于检测和改善系统的整体性能吞吐量、响应时间,2.3.4查询处理(Cont.),29,传统信息检索系统vs.搜索引擎系统信息检索:协助信息的潜在用户将信息需求转换为一张文献来源信息列表,而这些文献包含有对其有用的信息。(1951年,CalvinMooers)搜索引擎可以认为是一种特殊的信息检索系统差别:数据对象的差异:从相关到关键用户群体的差异:专业用户到普通用户,30,搜索引擎在中国,1996:出门找地图,上网找搜狐2000:李彦宏创立百度,“让人们更便捷地获取信息”2000:Google推出中文简体与繁体服务,“整合全球信息,使人人皆可访问并从中受益”2003:Sohu,Sina,Netease,Tencent分别开始涉足搜索2006:Google起用中文名谷歌,服务器置于北京,是唯一一个服务器设在美国以外地区的Google本地化版本2007:网易推出有道搜索2008:Yahoo!在中国设立研发中心2012:360综合搜索,是奇虎360公司开发的基于机器学习技术的第三代搜索引擎,具备“自学习、自进化”能力和发现用户最需要的搜索结果。,31,软件架构:在一个特殊的抽象层次用于描述系统的工具搜索引擎的基本构件组件及其功能索引处理构件:文本采集、文本转换、索引创建查询处理架构件:用户交互、排序、评价,总结,
展开阅读全文