elasticsearch hanlp插件自定义分词配置(停用词)

@[Toc](elasticsearch hanlp插件自定义分词配置(停用词))

既然可以自定义关键词,那么自然也是可以自定义停用词的。

背景

由于在使用elasticsearch hanlp(以下简称es hanlp)的过程中,分词会出现一些无用的词,比如各种标点符号或者没有意义的单词,导致查询的效果不是很理想,比如
在这里插入图片描述
这个时候就会想到是否可以增加停用词来排除这些无效的分词从而提高查询的准确率。

停用词

配置停用词之后,es hanlp在分词时可以排除掉一下无用或者无业务意义的词从而提高查询效率,停用词路径 ES_HOME/plugins/analysis-hanlp/data/dictionary
在这里插入图片描述
这里需要注意的是停用词没有自动加载功能,因此也需要提前准备好停用词内容按正确的格式写入stopwords.txt文件中,同时删除文件stopwords.txt.bin,然后启动es。

hanlp分词方式

es hanlp插件提供的分词方式有以下几种,但是需要注意的是不同版本的es hanlp插件对hanlp分词方式的适应性也不同,有的版本可能不是完全支持es hanlp插件下列的分词方式

hanlp: hanlp默认分词


hanlp_standard: 标准分词


hanlp_index: 索引分词


hanlp_nlp: NLP分词


hanlp_crf: CRF分词


hanlp_n_short: N-最短路分词


hanlp_dijkstra: 最短路分词


hanlp_speed: 极速词典分词

自定义分词配置

这里为什么想到要自定义分词配置呢,文章开始已经说了,有些单词是没有业务意义,甚至是没有任何含义的,完全没有存在的必要,因此需要使用停用词,但是停用词默认的hanlp分词方式并不支持,正如文章开始看到的效果一样,因此需要通过自定义分词配置的方式来开启停用词。
hanlp的分词配置主要有
在这里插入图片描述
需要注意的是,以上的自定义分词属性不是每个版本都支持的,在使用时建议测试一下你当前的 hanlp版本是否支持后再使用该属性。
如果要采用如上配置配置自定义分词,需要设置 enable_custom_config 为 true

自定义分词

下面我们来自定义一个分词,并且开启停用词

PUT test

{

  "settings": {

    "analysis": {

      "analyzer": {

        "hanlp_dongao": {

          "tokenizer": "hanlp_analyzer"

        }

      },

      "tokenizer": {

        "hanlp_analyzer": {

          "type": "hanlp",

          "enable_stop_dictionary": true,

          "enable_custom_config":true

        }

      }

    }

  }

}

返回创建成功结果

{

  "acknowledged" : true,

  "shards_acknowledged" : true,

  "index" : "test"

}

输入测试语句测试,首先看一下未使用自定义分词的效果
在这里插入图片描述
再看一下使用自定义分词之后的效果
在这里插入图片描述
可以看到双引号已经被停用了,不会再出现在分词结果里,自定义分词语句

PUT test

{

  "settings": {

    "analysis": {

      "analyzer": {

        "hanlp_dongao": {

          "tokenizer": "hanlp_analyzer"

        }

      },

      "tokenizer": {

        "hanlp_analyzer": {

          "type": "hanlp",

          "enable_stop_dictionary": true,

          "enable_custom_config":true

        }

      }

    }

  }

}

测试语句

POST test/_analyze

{

  "text": "“全国会计资格评价网”",

  "analyzer": "hanlp_dongao"

}

以上就完成了自定义分词的配置,这里需要注意的是在上一篇博文: https://blog.csdn.net/csdn565973850/article/details/139492520 中出现的自定义词典1分钟后词典自动加载仍然没有生效的情况,通过自定义分词的方式也可以得到解决,大家有兴趣的可以自行测试一下。

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

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

相关文章

二叉排序树--c++

【相关知识】 二叉排序树(也称二叉查找树):或者是一棵空的二叉树,或者是具有下列性质的二叉树: ⑴ 若它的左子树不空,则左子树上所有结点的值均小于根结点的值; ⑵ 若它的右子树不空&#xff0c…

vivado HW_BITSTREAM、HW_CFGMEM

HW_比特流 描述 从比特流文件创建的硬件比特流对象hw_bitstream,用于关联 在Vivado的硬件管理器功能中使用硬件设备对象hw_device 设计套件。 比特流文件是从具有write_bitstream的放置和路由设计创建的 命令硬件位流对象是使用 create_hw_bitstream命令&#xff0c…

【Vue】vuex 的使用 - 创建仓库

通用的地方我们一般会称之为仓库 1.安装 vuex 安装vuex与vue-router类似,vuex是一个独立存在的插件,如果脚手架初始化没有选 vuex,就需要额外安装。 yarn add vuex3 或者 npm i vuex32.新建 store/index.js 专门存放 vuex ​ 为了维护项目…

vue2中如何使用函数式组件

vue2 中如何使用函数式组件 用 render 定义函数式组件如何处理 props如何在函数式组件中触发自定义事件?injection如何使用 computed 和 methods定义一个函数式组件的 MyButton函数式组件有何优势哪种场景适合使用函数式组件函数式组件的问题参考 函数式组件&#x…

MySQL-相关日志

官方文档 1、MySQL支持的日志 MySQL有不同类型日志文件,用来存储不同类型的日志,分别为 二进制日志、错误日志、通用查询日志、慢查询日志、中继日志、数据定义语句日志 慢查询日志:记录所有执行时间超过 long_query_time的所有查询&#xf…

【 技术栈】技术方案到底怎么写?

文章目录 一、背景二、技术方案重要性三、常见的技术方案有哪些内容1、系统用例2、功能整体链路2.1、核心业务流程 3、数据库设计4、接口设计5、非功能设计5.1、性能与稳定性5.2、监控 7、系统风险点评估 四、总结 一、背景 工作中,有一些需求或者技术改造&#xf…

前端开发高频面试题

好的,以下是对您提出的问题的详细回答: 说说vue动态权限绑定渲染列表(权限列表渲染) Vue中动态权限绑定渲染列表通常涉及以下步骤: 首先,通过API请求从服务器获取当前用户的权限数据。在Vue组件中&#xff…

uc/OS移植到stm32实现三个任务

文章目录 一、使用CubeMX创建工程二、uc/OS移植三、添加代码四、修改代码五、实践结果六、参考文章七、总结 实践内容 学习嵌入式实时操作系统(RTOS),以uc/OS为例,将其移植到stm32F103上,构建至少3个任务(task&#xf…

[pixi.js] 入门简单案例 简易时钟

老实说pixi虽然之前拿来做个几个简单的游戏,但是是好久前的了,又忘了,现在算是重新入门。 官网版本已经更新到v8去了,而react相关的pixi库pixi-react 虽然支持react18 但还是v6-v7的版本,既然已经看了v8的文档&#xf…

Web 版 | 开源数据库设计软件 | drawdb

文章目录 简介快速运行方式 1:本地运行方式 2:Docker 构建并运行方式 3:Docker 运行参考🚀 目标: 安装一个 Web 版本的 ER 图设计软件! 👉 GitHub: https://github.com/drawdb-io/drawdb 【11.7k ⭐】 简介 DrawDB:Free, simple, and intuitive database design …

【iOS】UI——关于UIAlertController类(警告对话框)

目录 前言关于UIAlertController具体操作及代码实现总结 前言 在UI的警告对话框的学习中,我们发现UIAlertView在iOS 9中已经被废弃,我们找到UIAlertController来代替UIAlertView实现弹出框的功能,从而有了这篇关于UIAlertController的学习笔记…

Idea解决堆栈溢出

废话不说了,这问题搞了我两天,最近在用内网办公,没用公网,所以博客暂时没更新

堆排序-调整算法

个人主页点这里!~ 1.堆 了解堆排序首先要了解一下堆这个数据结构 堆(Heap)是一种特殊的树形数据结构,它通常被表示为一个完全二叉树或近似完全二叉树,并且满足堆性质(Heap Property)。堆主要分为两种&…

wordpress主题导航主题v4.16.2哈哈版

1.下载授权接口源码onenav-auth-api-v2.zip ,在宝塔新建一个网站,域名为 auth.iotheme.cn,设置wordpress伪静态,申请ssl证书。将上面源码解压后上传到此网站根目录。 2. 在宝塔根目录etc下 hosts 中添加 127.0.0.1 auth.iotheme.…

Docker配置Redis集群以及主从扩容与缩容

基础镜像拉取 docker run -p 6379:6379 -d redis:6.0.8 配置文件以及数据卷挂载 # 开启密码验证(可选) requirepass 1234 # 允许redis外地连接,需要注释掉绑定的IP # bind 127.0.0.1 # 关闭保护模式(可选) protected-m…

13、SpringBoot 源码分析 - 自动配置深度分析六

SpringBoot 源码分析 - 自动配置深度分析六 refresh和自动配置大致流程AutoConfigurationImportSelector的fireAutoConfigurationImportEvents通知自动配置导入事件AutoConfigurationGroup的selectImports封装成Entry返回MyAutoConfiguration自动配置类创建META-INF文件夹和文件…

CST纳米光学 --- LSPR局部等离子激元共振,消光截面ECS,法诺共振

这期我们用自带的Drude散射粒子,计算消光截面。 查看模型,内核是Silica二氧化硅,正常的介质材料,半径是38纳米: 外围是Drude模型的金属材料包裹,半径48纳米,该材料的参数可由宏Materials->Cr…

多个p标签一行展示,溢出隐藏

一开始,我是让div包裹多个p标签,并让div“flex”布局,且单行溢出隐藏,可是发现当父元素或当前元素有flex时,text-overflow: ellipsis;是不生效的 大多数解决办法都是,不要flex,或者给div下的每个…

代码随想录算法训练营第四十九天 | 139.单词拆分、多重背包、背包问题总结

139.单词拆分 视频讲解: 动态规划之完全背包,你的背包如何装满?| LeetCode:139.单词拆分_哔哩哔哩_bilibili 代码随想录 解题思路 1.dp[i] 字符串的长度为i,dp[i]是否可以被组成 2.递推公式 if( [j,i] && d…

基于springboot开发的Java MES制造执行系统源码,全套源码,一款数字化管理平台源码 云MES系统源码

基于springboot开发的Java MES制造执行系统源码,全套源码,一款数字化管理平台源码 云MES系统源码 MES系统源码相关技术: ​技术架构:springboot vue-element-plus-admin 开发语言:Java 开发工具:idea 前…