生活中总有些东西,我们触手可及,感觉平凡无奇,但却又实实在在说不出其中的奥妙,搜索引擎(Search Engines)便是其一。
信息处理的由来
信息检索实质上是一个用户需求与信息系统匹配的过程。
在上一节,我们把信息搜集好了,别人要来找,我们得想办法把我们搜集的信息组织好,让别人好找,这就是信息处理的由来。
先来看一下,它的大体流程:
由此可见,信息处理过程,建立索引库是一个核心工程。
所以信息处理过程主要由以下三步构成:
建立索引
建立索引网页库
建立倒排索引词表
那怎么弄?
索引
索引针对于网页内容。索引来源于爬取到的原始网页,搜索引擎会对网页进行解析,尽可能地将每个网页转换成一组词的集合(如图)
意思就是,你输入的中文词语、词组全会被转化为数字,查询效率当然高了。
这里就必须用到分词技术,英文字母有天然的分隔符——空格,汉字比较麻烦,所以中文分词技术一直是个难点 ,通常有:
基于字符串的分词法
基于统计的分词法
具体怎么实现,本篇文章不作深入探讨。
索引网页库
索引网页库是对索引的二次整理。大量网页的索引词表集合就形成了索引网页库,因为如果不建立网页索引库,顺序遍历网页URL,将消耗大量的资源,。
索引网页库通过MD5算法,将网页内容和URL摘要信息,分别记录为16个字节的唯一标识,同时为了方便查看,将这16个字节转化为23字节的ASCLL码。最终通过 ISAM(索引顺序访问模式)来进行存储,保证数据的紧凑性和检索能力。同时在网页索引文件存储之后,还会存在URL索引文件,同时通过文档编号,将URL摘要信息和网页摘要信息联系起来。
倒排索引词表
解析出词集的同时,搜索引擎还会记录不同词出现的位置、频率 赋予不同单词不同的权重,然后在数据结构中自动地给他们分配ID,整个组合起来形成一条记录,记录包含文档编号 、索引信息等等。所以,如果我们知道,某数据存放的ID,我们就能找到该数据信息,但是,我们检索信息的时候,一般会输入自然语言,所以,我们将数据->文档ID转换为文档ID->数据,就构成了倒排索引列表(反转列表)如下图:
倒排索引是搜索引擎实现快速、大量反应请求的很重要的一个数据结构安排。
信息处理过程实质上是一个非常冗杂的过程,分析网页,我们针对不同的格式可能要编写不同的解析器,运用各种算法,建立各种语言模型,才能有效地解析数据,表达信息,为信息查询服务提供后台支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。