什么是搜索引擎?深入搜索引擎原理( 二 )


1.归一化
这个查询美国也可以得到美国的结果 。同义词可以算作规范化 , 但同义词也可以用其他方式处理 。
2.词形还原()
对于英语中同一个词 , 有不同的形式 , 可以合并为一个 , 如:
3.()
通常是指大致去除词尾词缀的启发式过程
一种常用的词干提取算法 , 英文 ,  。
部分2、倒排索引
要了解倒排索引 , 首先要了解什么是正向索引 。比如有以下两句:
前向索引
前向索引是MySQL中的B+树 , 索引的结果是:
表示将完整内容按字典顺序排序 , 得到有序列表 , 加快检索速度 。
倒排索引
第一步分词
第二步是根据分段项构造字典
第三步 , 构建倒链
这样 , 倒排索引就完成了 。搜索“”时 , 会得到id1和id2 , 表示两个数据都存在 。搜索“服务”时 , 只有 id1 存在 。但是 , 如果你搜索“ ” , 这时候就会创建一个搜索词 , 按照与构建相同的策略进行切分 , 得到“-” , 两个词 , 搜索-> id1、id2和->id2分别 , 然后在上面做一个交集得到id2 。同样 , 通过联合集可以支持更复杂的查询 。
倒排索引会在这里解释 。
存储结构

什么是搜索引擎?深入搜索引擎原理

文章插图
举个例子 , 简单解释一下 .从大到小是Index -> -> Doc -> Field -> Term , 类似于MySQL -> Table -> -> Field -> Value 。
部分3、查询结果排序
搜索结果根据关键字的相关性得分和 .一般来说 , 除了手动设置权重提升之外 , 还有一套非常有用的相关性评分算法 。看完你会觉得很有趣 。
TF-IDF
TF(词频)-IDF(逆文档频率)常用于自动提取文章关键词 , 通过它可以知道某个关键词在这篇文档中的重要性 。其中 , TF表示某个Term在其中出现的频率 。越高 , 越重要; DF 表示单词在整体中出现的次数 。他越重要 , IDF是DF的倒数(取log) , IDF越大 , 这个词越重要 。
TF-IDF如何影响搜索排名 , 举个实际例子解释一下:
假设有一个博客《Blinkof 》 , 我们要统计这篇文章的关键词 。首先是统计文章分词的词频 。出现频率最高的词是——“的”、“是”、“在”、这些是基本上所有文章中出现的“停用词” , 他不帮忙查找结果 , 全部过滤掉.
只考虑剩余的有意义的词 。如果文章中词频关系:“Blink”>“词频”=“” , 那么Blink一定是本文中比较重要的关键词 。但是会有另一个问题 。如果你发现“Blink”、“ ”和“”这三个词出现的次数一样多 。这是否意味着它们与关键字的重要性相同?
不 , 通过统计所有的博客 , 你可以找到关键字的博客总数:“闪烁”<“实战”<“摘要” , 此时 , 表示“闪烁”不是很常见 。”和“摘要”对本文更为重要 。
什么是搜索引擎?深入搜索引擎原理

文章插图
BM25
上面解释了TF和IDF , 那么TF和IDF谁更重要 , 以及如何计算最终的相关分数?那是BM25 。
BM25 算法 , 通常用于平分搜索相关性 。一句话概述的主要思想:对Query进行语素分析 , 生成语素qi;然后 , 对于每个搜索结果D , 计算每个词素qi与D的相关性得分 , 最后计算qi相对于D加权求和的相关性得分 , 得到Query与D的相关性得分 。