搜索引擎技术

搜索引擎的基础知识

概况
系统的角度看搜索引擎。
需要哪些东西?
●硬件
●软件
●数据
科学的角度看搜索引擎。
怎样才能做到?
●数据结构- – -倒排索引
●核心算法- – 相关度
●必备工具一一 文本处理
研究搜索引擎的科学一信息检索
(1)例子
从全部网页中,根据用户输入的词或语句,找出对应的网页
(2)具体
从大规模非结构化文档集合中,找出用户需要的文档资料
(3)抽象
从一个信息集合中,找出满足用户信息需求的信息内容
信息检索的地基
硬件基础:计算机系统架构和网络
软件基础:系统软件和工具软件等
语言技术:对文本进行语言学处理
机器学习:积累经验提高整体效能
并行计算:大数据、高性能
几乎整个计算机科学领域
请添加图片描述
交流平台
(1)国际
SIGIR、ACL、Www、SIGKDD、WSDM、ICML
CIKM、EMNLP、COLING
(2)地区
ECIR、AIRS
(3)国内
全国信息检索学术会议
全国计算语言学联合会议
(4)活动
TREC、NTCIR评测
相关领域的重要会议
请添加图片描述
搜素引擎的价值
内涵一一应用层次
本身是一项重要的应用,google、 baidu等的核心业务
外延一一中间层次
是支撑其他应用的API,以搜索引擎为核心的应用生态
演进一一核心层次
是操作系统的组成部分
请添加图片描述
请添加图片描述

宏观的系统架构

信息规模
(1)个人信息:个人相关信息的组织、整理、搜索等。
桌面搜索(Desktop Search) 、
个人信息管理(Personal Information Management)。
个人数字记忆(Personal Digi tal Memory)
(2)企业信息:在企业内容文档的组织、管理、搜索等。
通常是作为企业内容管理(Content Management) 或企业知识管理(Konwledge Management) 的重要组成部分
(3)Web信息:在开放互联网_上的进行搜索
网页
SNS
请添加图片描述系统
(1)Bertalanffy, Ludwig von (一般系统论创始人)
相互联系相互作用的诸元素的综合体
(2)钱学森(工程控制论创始人)
系统是由相互作用相互依赖的若干组成部分结合而成的,具有特定功能的有机整体,而且这个有机整体又是它丛属的更大系统的组成部分
信息系统
由计算机硬件、计算机软件、网络和通讯设备、信息资源、信息用户和信息制度组成的;以信息处理为核心功能,以提供信息服务为目的系统。
请添加图片描述
搜索引擎系统
请添加图片描述
请添加图片描述
控制器的作用
(1)效率
如何利用尽量少的资源(计算机设备、网络带宽、时间)来完成预定的网页搜集量
一台计算机利用多个进程
●上百个进程或上千个进程
利用多台计算机同时进行搜集
●并不是设备越多越好,网络带宽会成为瓶颈
●分布式搜集,让多台设备分布在网络上的不同位置服务器方可能来不及提供所需的网页
(2)“礼貌”
网页被搜索引擎索引,从而可能得到更多的访问流量力搜索引擎的“密集”抓取活动阻碍了用户通过浏览器的访问
●监视器监视是否有来源于单个IP地址过分密集的访问
●适当地规划网页的抓取,限制单位时间内对一个网站抓取网页的数量
(3)质量
在有限的时间,搜集有限的网页,不要漏掉那些很重要的网页.
●越多人看过的网页越重要
●PageRank
保证每个网页不被重复抓取
请添加图片描述

核心的数据结构

请添加图片描述
请添加图片描述
布尔检索
针对布尔查询的检索,布尔查询是指利用AND,OR或者NOT操作符将词项连接起来的查询

  • 信息AND检索
  • 信息OR检索
  • 信息AND检索AND NOT教材

请添加图片描述
布尔检索的优点
构建简单,或许是构建IR系统的一种最简单方式

  • 在30多年中是最主要的检索工具
  • 当前许多搜索系统仍然使用布尔检索模型
  • 电子邮件、文献编目、Mac OS X Spotlight工具

关联矩阵
词项-文档(term-doc)的关联矩阵
请添加图片描述
请添加图片描述
请添加图片描述
倒排索引例子
比如北大里某次活动的学生报名登记表文件,部分信息如下:
001 xxx142张三男18元培
002 xxx205李四女17哲学
003 xxx187王五男19生物
004 xxx325赵六女18元培
请添加图片描述
倒排索引——存储
■对每个词项t,记录所有包含t的文档列表.
每篇文档用一个唯一 的docID来表示,通常是正整数,如1,2,3…
■能否采用定长数组的方式来存储docID列表?
请添加图片描述
请添加图片描述
倒排索引——生成流程
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
倒排索引——查询、合并
■考虑如下查询(从简单的布尔表达式入手) :
(1)Brutus AND Caesar
(2)在词典中定位Brutus
返回对应倒排记录表(对应的doclD)
(3)在词典中定位Caesar
再返回对应倒排记录表
(4)合并(Merge)两个倒排记录表,即求交集
请添加图片描述
■每个倒排记录表都有一个 定位指针,两个指针同时从前往后扫描,每次比较当前指针对应倒排记录,然后移动某个或两个指针。合并时间为两个表长之和的线性时间
请添加图片描述

搜索引擎的关键技术

请添加图片描述
倒排索引
最基本的部分是词表
问题:词汇从哪里来?
请添加图片描述
文本处理技术
请添加图片描述
请添加图片描述
词条化(Tokenization)
■输入:“Friends, Romans and Countrymen”
■输出:词条(Token)
Friends
Romans
Countrymen
■词条就是一个字符串实例
■词条在经过进一步处理之 后将放入倒排索引中的词典中
后面会讲
词条化中的问题:词条如何界定?
请添加图片描述
词条化中数字的处理
请添加图片描述
语言问题:法语和德语
请添加图片描述
语言问题:中文和日文
请添加图片描述
中文分词
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
解决歧义和未登录词识别的基本方法:
规则方法:分词过程中或者分词结束后根据规则进行处理;
统计方法:分词过程中或者分词结束后根据统计训练信息进行处理。
规则+统计
请添加图片描述
词条归一化成词项
请添加图片描述
归一化中的语言问题
请添加图片描述
请添加图片描述
大小写问题
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
排序式检索
●排序式检索会对查询和文档的匹配程度进行排序,即给出一个查询和文档匹配评分
●排序式检索可以避免产生过多或者过少的结果
■可以通过排序技术来避免大规模返回结果,比如只需要显示前10条结果,这样不会让用户感觉到信息太多.
■用户满意的前提:排序算法真的有效,即相关度大的文档结果会排在相关度小的文档结果之前
排序式检索中的评分技术
■我们希望,在同一查询下,文档集中相关度高的文档排名高于相关度低的文档
如何实现?
●通常做法是对每个查询-文档对赋一个[0, 1]之间的分值
■该分值度量了文档和查询的匹配程度
查询-文档匹配评分计算
■如何计算查询-文档的匹配得分?
先从单词项查询(查询只包含一个词项)开始
●若该词项不出现在文档当中,该文档得分应该为0
●该词项在文档中出现越多,则得分越高
●这就是所谓词项频率(term frequency,简称tf)评分
二值关联矩阵
请添加图片描述
非二值关联矩阵(词项频率)
请添加图片描述
词项频率tf
请添加图片描述
一种替代原始tf的方法:对数词频
请添加图片描述
请添加图片描述
idf的计算样例
请添加图片描述
idf对排序的影响
●对于单词项查询,idf对文档排序没有任何影响
●idf会影响至少包含2个词项的查询的文档排序结果
●例如,在查询“arachnocentric line"中, idf权重计算方法会增加arachnocentric的相对权重,同时降低line的相对权重
tf-idf权重计算
请添加图片描述
tf-idf小结
请添加图片描述
二值关联矩阵
请添加图片描述
tf矩阵
请添加图片描述
二值->- > tfidf矩阵
请添加图片描述
文档表示成向量
请添加图片描述
查询看成向量
请添加图片描述
欧氏距离不好的例子
请添加图片描述
采用夹角而不是距离来计算
请添加图片描述
从夹角到余弦
请添加图片描述
查询和文档之间的余弦相似度计算
请添加图片描述
归一化向量的余弦相似度
请添加图片描述
余弦相似度的图示
请添加图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值