ES中文检索须知:分词器与中文分词器

ElasticSearch (es)的核心功能即为数据检索,常被用来构建内部搜索引擎或者实现大规模数据在推荐召回流程中的粗排过程

ES分词

分词即为将doc通过Analyzer切分成一个一个Term(关键字),es分词在索引构建数据检索时均有体现:

  1. 构建倒排索引时每一个term都指向包含这个term的多个doc。
  2. 搜索时需要通过分词将查询语句切分成一个一个term进行检索。

简单来说,ES的数据检索原理包含分词、基于分词结果计算相似度得分按得分从高到低排序返回指定长度下的排序结果三个主要步骤,本文主要关注中文场景下的分词过程。

query
分词
基于分词结果计算相似度得分
按得分从高到低返回指定长度下的排序结果

ES内置分词器

ES官方内置了一些常用的分词器(Analyzer,分词器在NLP中称为tokenzier,es使用analyzer的原因是除了分词之外后续还会进行一些文本分析的动作):

the quick brown-foxes jumped over the lazy dog’s bone. 该英语句子是一个经典的自然语言处理例句,它是全字母句,包含了全部26个字母。

分词器作用分词对象结果示例
Standard Analyzer标准分词器,也是默认的分词器,基于Unicode文本分割算法。默认分词器适用于英语,并且对大多数语言都有效The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog’s, bone ]
Simple Analyzer简单分词器,基于非字母字符进行分词,单词会转为小写字母,非字母字符如数字、空格、连字符和撇号将被丢弃The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]
Whitespace Analyzer空格分词器,按空格进行切分The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ The, 2, QUICK, Brown-Foxes, jumped, over, the, lazy, dog’s, bone. ]
Stop Analyzer在简单分词器的基础上增加了停用词的功能The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ quick, brown, foxes, jumped, over, lazy, dog, s, bone ]
Keyword Analyzer关键词分词器,将整个输入句子认为是关键字直接返回,不分词The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.]
Pattern Analyzerpatter分词器,patter指的是正则的pattern,利用正则表达式对文本进行切分,支持停用词The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]
Language Analyer针对特定语言的分析器--
Fingerprint Analyzer指纹分词器,是一种专业分词器,可通过创建指纹来进行重复检测的--
Custom Analyzer如果以上没有符合需求的分词器,es也允许通过添加插件的方式添加自定义分词器--

注:停用词,英文称为Stop Words,是在信息检索和自然语言处理过程中,为了节省存储空间和提高搜索效率,系统会自动过滤掉某些出现频率高但又不具有实际意义的字或词。这些被过滤的词语通常包括语气词、连词、介词等,例如汉语中的“的”、“以及”、“甚至”、“吧”,以及英语中的“the”、“a”、“also”等。

在中文场景下,有一个踩坑点是,默认的Standard Analyzer会按照一个汉字一个汉字切分的方式来分词,这样构建的索引缺乏语义信息,导致检索效果不佳,因而中文场景下需要使用专门的分词器。
在这里插入图片描述

中文分词器

常用的中文分词器有两个比较主流的:ik analyzersmartcn(Smart Chinese Analyzer)

ik analyzer

ik analyzer 是一个基于开源项目IK Analysis进行开发的第三方的中文分词器。IK Analyzer提供了细粒度的中文分词能力,支持词库扩展、自定义词典、停用词过滤、同义词扩展等功能,可以根据具体需求进行匹配和定制。适用于更精确的分词和分析需求。

ik analyzer支持两种分词方法,可以在构建索引时指定:

  1. ik_max_word:将需要分词的文本做最小粒度的拆分,尽可能分出更多的词
  2. ik_smart_word:将需要分词的文本做最大粒度的拆分,尽可能分出更少的词

git上下载插件,存到es插件目录,重启es服务即可使用:

wget https://github.com/medcl/elasticsearch-analysis-ik/releases
smartcn

smartcn是es内置的中文分词器,使用机器学习算法进行分词,同时适用于简体中文和繁体中文,具有较高的分词准确率和召回率,适用于大多数中文文本检索场景。因为是内置的,所以优点是无需额外配置即可使用。

参考文献

  1. ElasticSearch 中的中文分词器以及索引基本操作详解
  2. 【9种】ElasticSearch分词器详解,一文get!!!| 博学谷狂野架构师
  3. ELK(六)分词器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/566443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

众筹商城源码 众筹农业平台 农业乘科技富强之路 线上农业众筹 养殖系统 种植系统源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 前端是编译后的,后端PHP,带商城,详情看下图 特点和功能: 用户管理:包括注册、登录、个人信息管理等。 项目创建与展示&…

Keil中编译无error(有warning),但程序无法运行的一种情况

问题 void Run_Led(void) {HAL_GPIO_TogglePin(RUN_LED_GPIO_Port, RUN_LED_Pin);Delay_ms(500); }void StartDefaultTask(void *argument) {/* USER CODE BEGIN StartDefaultTask */char c;/* Infinite loop */for(;;){while(1) { Run_Led;}...}非常简单的一个程序&#xf…

windows10环境下conda迁移到linux环境

网上给出的方案错误百出,记录一下正确方案。 1 创建yaml文件 创建到终端所在路径下 conda activate 环境名 conda env export --no-build >环境名.yaml2 新操作系统中创建新的conda环境 conda env create -f 环境名.yaml3 删除不兼容的包 终端报错 Could n…

垃圾焚烧发电:从国资到专业公司,运营模式新变革|中联环保圈

近日,云南富源县生活垃圾焚烧发电项目运营管理技术服务招标引发广泛关注,与此同时,众多垃圾焚烧发电项目也纷纷启动了运管工作的招标。值得注意的是这些项目的招标人均为当地国资,且其中多数缺乏项目的运营经验。 在垃圾焚烧发电行…

Spring Boot 中Mybatis使用Like的使用方式和注意点

说明 模糊查询在项目中还是经常使用的,本文就简单整理Mybatis中使用Like进行模糊查询的几种写法以及一些常见的问题。 使用Springboot简单配置一下Mybatis,然后进行说明。Springboot集成Mybatis这里就不做介绍了,这里我们主要介绍一下在mybat…

物理隔离条件下的数据安全导入导出方案,哪种最安全可控?

数据安全在当今信息化社会中扮演着至关重要的角色,尤其像政府、军工等单位,有比较多的核心数据要保护,一旦出现数据泄漏,将造成不可估量的后果。因此为了保护数据安全,政府、军工等单位一般会采取纯物理隔离&#xff0…

离散型制造行业智能工厂解决方案,助力国家新智产业升级

离散型制造行业智能工厂标准解决方案 离散型制造行业的智能工厂解决方案是推动国家智能制造产业升级的关键。 1. 集中优势资源:实施攻关计划,瞄准关键核心技术和重点产业进行定向突破,特别是在集成电路(IC)、AI、生物医药等领域。2. 国家创…

CentOS 7虚拟机配置静态IP地址(一)

IP地址的配置 以下几个地址需要记住,在配置中使用 (1)查看MAC地址(点击菜单虚拟机-设置-网络适配器-高级-记住MAC地址) (2)查看子网掩码和网关IP(点击菜单编辑-虚拟网络编辑器-选择…

Rust入门-所有权

一、为什么、是什么、怎么用 1、为什么Rust要提出一个所有权和借用的概念 所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成为所有编程语言设计的难点之一。 主要分为三种…

MemFire解决方案-政企数据库云服务解决方案

方案背景 随着越来越多的政府部门/企事业单位完成数字化转型升级,新技术的应用日益普遍,对系统并发服务能力的需求不断提高。办公OA、档案、门户、监控、财务、ERP、订单等各类系统对数据库的要求越来越苛刻,很多企业/政府部门都面临如下挑战…

Unity的Animator Animation的使用攻略

Animator 动画控制器 Animation 动画 动画片段 .anin 一、创建Animator 创建动画控制器 模型添加Animator组件 把控制器和模型绑定 二、创建动画 进入动画界面 创建动画片段anin 动画窗口分析 制作动画 点击录制, 移动子对象,在视窗 通过移动线来编辑关…

第53篇:算法的硬件实现<四>

Q:本期我们在DE2-115开发板上实现二进制搜索算法电路,查找数据A在数组中的位置。 A:使用SW[9]设定开始查找信号,数据A由SW[7:0]设定,KEY[0]设定为复位信号,板载50MHz时钟作为电路的时钟输入,确…

Python | Leetcode Python题解之第44题通配符匹配

题目: 题解: class Solution:def isMatch(self, s: str, p: str) -> bool:def allStars(st: str, left: int, right: int) -> bool:return all(st[i] * for i in range(left, right))def charMatch(u: str, v: str) -> bool:return u v or v…

1125页Go语言技术手册,涵盖Go语言所有核心知识点,限时免费下载!

从Docker的兴起,到Kubernetes的冲击,让Go语言在后端的地位,尤其在偏中高级业务需求(对性能、代码质量、架构设计等)中已经不可撼动。后端开发工程师逐渐开始对Go语言产生兴趣,无论是擅长何种语言的后端工程师,个人认为…

德思特车载天线方案:打造智能互联的公共安全交通网络

作者介绍 一、方案介绍 随着自动驾驶与智慧汽车概念的逐步推进,人们对汽车的交互性、智能性、互联性有了更高的要求。今天,大多数汽车制造商和供应商普遍将GNSS定位功能与其他信号如广播、电视、蓝牙、Wifi一起集成到汽车中,包括博世、大陆、…

泽攸科普——扫描电子显微镜(SEM)全攻略:轻轻松松搞定形貌特征

在科学的殿堂里,有一台神奇的仪器,它能将我们的视野拓展到难以想象的微观尺度,让我们得以窥探那些肉眼无法捕捉的精妙结构和隐秘细节。这台仪器就是扫描电子显微镜(Scanning Electron Microscope, SEM)。它犹如一双洞察…

车灯专用方案12V24V36V48V转9V/12V 线性恒流H7306

电流控制:为了保持输出电流的恒定,转换器使用一种称为恒流控制的技术。恒流控制通常通过测量输出电流并与一个参考电流进行比较来实现。如果输出电流超过参考电流,控制电路将调整输出电压或电流,以降低输出电流至所需的恒定值。 …

2023年蓝桥杯C++A组第三题:更小的数(双指针暴力遍历解法)

题目描述 小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串,下标从 0 到 n − 1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的…

云盘怎么选最好!

选择云盘时,您应该考虑以下几个关键因素来确保选中最适合您需求的服务: 速度:选择云盘时,传输速度是一个重要的考量点。您应该选择一个即使不使用会员服务也能提供较快上传和下载速度的云盘服务。 存储空间:不同的云盘…

Ardupilot OpenIPC 基于WFB-NG构架分析和数据链路思考

Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考 1. 源由2. OpenIPC安装2.1 安装2.2 配置2.2.1 天空端配置文件2.2.2 地面端配置文件 2.3 当前配置选择 3. WFB-NG安装3.1 RTL8812AU安装3.1.1 驱动安装3.1.2 定位设备 3.2 wfb-ng安装3.2.1 传输层安装3.2.2 配置…
最新文章