我的个人博客:逐步前行STEP

搜索引擎结构

文本预处理

分词

    文本分词一般是先将文本分成独立的单词,然后取出标点符号,去除停止词,停止词就是一些使用频率高但是没有实际意义的词,比如:a、an、the、are等等

语言处理

对于英文来说,先是统一大小写,再对单词进行缩减,缩减过程主要有两种,一种是词干提取,即抽取词的词干或者词根,如:tional 缩减为 tion (去除形容词后缀)二是词形还原,即把词汇还原成一般形式,如:books 缩减为 book。

建立索引

经过文本预处理之后,得到的结果为词(Term),将得到的词创建成字典,然后对字典按字母顺序排序,最后合并相同的词,形成文档倒排表(Posting List),因为这个表中,是根据词来查找文档的,所以称为文档倒排表或者倒排索引。

搜索

根据用户的输入,进行词法分析、语法分析、语言处理然后从文档倒排表中获取结果,为了将最相关的结果显示在最前面,需要对搜索结果做相关性排序。

相关性排序

把查询语句也视为一个文档,查询语句与文档的相关性就转变成了文档之间的相关性问你题,而一个文档中的每个词对于表达一个主题的重要性不一样,不同权重的词共同表达了这个主题。
有两个元素会影响一个词在文档中的重要性:一是词频率(Term Frequency,tf),表示一个词在此文档中出现的次数,它的值越大说明这个词越重要;二是文档频率(Document Frequency,df),表示多少文档中包含这个词,它的值越大,说明这个词越不重要。

以下公式用于计算一个词的权重:
在这里插入图片描述

而衡量两个文档相似度可以将两个文档当成向量,向量夹角越小越靠近,也就是说文档向量夹角越小,相似度越高,即相关性可以用以下公式来描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191217004018414.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hoaHp1YQ==,size_16,color_FFFFFF,t_70)

标签: none

添加新评论