ElasticSearch学习随笔之分词算法

这篇具有很好参考价值的文章主要介绍了ElasticSearch学习随笔之分词算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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评分公式:
ElasticSearch学习随笔之分词算法
主要看这里:

  • 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算法会趋于一个数值,见下图:
ElasticSearch学习随笔之分词算法
BM25 公式如下:
ElasticSearch学习随笔之分词算法

三、Explain查看TF-IDF

ElasticSearch学习随笔之分词算法文章来源地址https://www.toymoban.com/news/detail-447029.html

到了这里,关于ElasticSearch学习随笔之分词算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch 学习9 spring-boot ,elasticsearch7.16.1实现中文拼音分词搜索

    一、elasticsearch官网下载:Elasticsearch 7.16.1 | Elastic 二、拼音、ik、繁简体转换插件安装 ik分词:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. 拼音分词:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is

    2024年01月22日
    浏览(49)
  • Elasticsearch基础篇(五):创建es索引并学习分析器、过滤器、分词器的作用和配置

    Elasticsearch 是一个分布式搜索和分析引擎,它使用JSON文档来存储数据。索引是Elasticsearch中数据的基本组织单元之一,下面是Elasticsearch索引相关的基本概念: 结构元素 Elasticsearch MySQL 数据库 索引(Index) 数据库(Database) 表格 类型(Type)* 表(Table) 记录/行 文档(Document)

    2024年02月03日
    浏览(86)
  • 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    目录 1、Mapping字段映射概述 2、Mapping字段常用类型 3、映射中对时间类型详解 1)采取自动映射器来映射 2)手工映射提前指定日期类型 4、ES的keyword的属性ignore_above 5、Mapping映射的查看和创建 1)查看mapping信息:GET 索引名/_mapping 2)创建映射:PUT /索引名 3) 查看所有索引映

    2024年01月20日
    浏览(60)
  • 【ElasticSearch】分词器(ElasticSearchIK分词器)

    •IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包 •是一个基于Maven构建的项目 •具有60万字/秒的高速处理能力 •支持用户词典扩展定义 IK 分词器安装 IK分词器有两种分词模式:ik_max_word 和 ik_smart 模式。 1、 ik_max_word 会将文本做最细粒度的拆分,比如会

    2024年02月04日
    浏览(36)
  • ElasticSearch-使用IK分词器进行分词

    使用KIbana测试IK分词器 打开开发工具台 ik_smart 最少分词器 分词结果比较少 ik_max_word 颗粒度最细分词器 分词结果比较多,组成各种结果,穷尽词库的可能! 再看个例子,把我们的句子换成 超级喜欢魏一鹤学习Java 首先看最少分词 然后是最细颗粒度分词 问题来了 我们输入超级喜

    2024年02月13日
    浏览(39)
  • 自定义分词器:ElasticSearch自定义分词器

    自定义分词器:ElasticSearch自定义分词器 ElasticSearch是一个开源的搜索和分析引擎,它提供了实时的、可扩展的、高性能的搜索功能。ElasticSearch使用Lucene库作为底层搜索引擎,它提供了强大的文本分析和搜索功能。在ElasticSearch中,分词器是将文本拆分为单词的过程,它是搜索

    2024年02月20日
    浏览(31)
  • Elasticsearch分词器--空格分词器(whitespace analyzer)

      文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。 分词器

    2024年02月04日
    浏览(41)
  • Elasticsearch分词详解:ES分词介绍、倒排索引介绍、分词器的作用、停用词

    详见:https://blog.csdn.net/weixin_40612128/article/details/123476053

    2024年02月12日
    浏览(51)
  • 本地elasticsearch中文分词器 ik分词器安装及使用

    ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。 ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自己的字典,所以它除了可

    2024年02月05日
    浏览(69)
  • SpringBoot配置Elasticsearch以逗号分词查询(自定义逗号分词器)

    ①在resources目录下创建commaAnalyzer_setting.json配置文件。 ps:注意pom.xml配置扫描json文件 ②为文档类添加注解。 ③为要分词的字典添加注解属性 ④删除索引(如果已经存在索引,需要先删除索引才能重新生成带分词器的索引)。 ⑤重启项目(重新生成索引),如图就是成功生

    2024年02月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包