ElasticSearch
1、ElasticSearch学习随笔之基础介绍
2、ElasticSearch学习随笔之简单操作
3、ElasticSearch学习随笔之java api 操作
4、ElasticSearch学习随笔之SpringBoot Starter 操作
5、ElasticSearch学习随笔之嵌套操作
6、ElasticSearch学习随笔之分词算法
7、ElasticSearch学习随笔之高级检索
8、ELK技术栈介绍
9、Logstash部署与使用
10、ElasticSearch 7.x 版本使用 BulkProcessor 实现批量添加数据
11、ElasticSearch 8.x 弃用了 High Level REST Client,移除了 Java Transport Client,推荐使用 Elasticsearch Java API
12、ElasticSearch 8.x 使用 snapshot(快照)进行数据迁移
13、ElasticSearch 8.x 版本如何使用 SearchRequestBuilder 检索
ElasticSearch,创始人 Shay Banon(谢巴农)
本文主要讲解ElasticSearch 主要使用的分词算法。
前言
本文主要对ElasticSearch分词算法进行简单讲解,在了解算法之前,我们先要知道两点,什么是相关性和相关性算分。
站在用户的角度来看,检索是什么呢?检索是用户通过关键词查找针对这个关键词比较有相关性的结果,也就是说,用户其实主要关系的是搜索结果的相关性,主要涉及以下几个问题:
- 是否找到所有相关的内容。
- 是否得到了很多内容是不相关的。
- 排在最前面的搜索结果打分是否合理。
- 结合需求,结果排名是否平衡。
那如何衡量相关性呢?主要看三点:
- Precision(查准率),尽可能的返回较少的无相关的文档。
- Recall(查全率),尽量返回较多的相关的文档。
- Ranking(排序),能够按照相关性进行排序。
所以,相关性算分,描述了一个文档和查询语句匹配的程度。在 query 方式检索时,ES 会对每个匹配结果进行算分(_score)。打分的本质就是排序,把分值最高的放在最前面展示给用户。
在ES5之前使用的是 TF-IDF 算法,后面到现在8.x版本使用 BM25 算法。
一、TF-IDF
TF-IDF(Term frequency - inverse document frequency)是一种用户信息检索与数据挖掘的常用的加权技术,公认为是信息检索领域最重要的发明,而且在文献分类等其他相关领域应用非常广泛。
IDF 的概念,最早是剑桥大学的一个大佬(斯巴克.琼斯)提出来的,1972年——“关键词特殊性的统计解释和它在文献检索中的应用”,但是没有从理论上解释IDF应该是用log(全部文档数/检索词出现过的文档总数),而不是其他函数,也没有做进一步的研究,1970,1980年代萨尔顿和罗宾逊,进行了进一步的证明和研究,并用香农信息论做了证明http://www.staff.city.ac.uk/~sb317/papers/foundations_bm25_review.pdf,现代搜索引擎,对TF-IDF进行了大量细微的优化。
Lucene中的TF-IDF评分公式:
主要看这里:
- TF(Term frequency)是词频
- 检查的关键词在文档中出现的频率越高,相关性越高。
- IDF(Inverse document frequency)是逆向文本频率
- 每个检索词在索引中出现的频率,频率越高,相关性越低。
- 字段长度归一值(Field-length norm)
- 字段的长度是多少?字段越短,字段的权重越高。检索词出现在一个内容短的字段(title)要比出现在一个内容长的字段(content)权重更大。
以上三个因素 TF、IDF、Field-length norm 一起计算单个词在特定文档中的权重。
二、BM25
BM25 是对 TF-IDF 算法的改进,在 TD-IDF 算法中,TF 部分的值越大,整个计算公式返回的值就越大。BM25 就是针对这点进行优化的,随着 TF 部分值的逐步增大,那返回的值则会逐步趋于一个数值。
而在 ES 5开始,默认的算法就是 BM25。
当TF无限增加时,BM25算法会趋于一个数值,见下图:
BM25 公式如下:
文章来源:https://www.toymoban.com/news/detail-447029.html
三、Explain查看TF-IDF
文章来源地址https://www.toymoban.com/news/detail-447029.html
到了这里,关于ElasticSearch学习随笔之分词算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!