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

简介: 简述elasticsearch hanlp插件自定义分词配置,涉及停用词,专有名词

背景

由于在使用elasticsearch hanlp(以下简称es hanlp)的过程中,分词会出现一些无用的词,比如各种标点符号或者没有意义的单词,导致查询的效果不是很理想,比如

image.png

这个时候就会想到是否可以增加停用词来排除这些无效的分词从而提高查询的准确率。

停用词

配置停用词之后,es hanlp在分词时可以排除掉一下无用或者无业务意义的词从而提高查询效率,停用词路径ES_HOME/plugins/analysis-hanlp/data/dictionary

image.png

这里需要注意的是停用词没有自动加载功能,因此也需要提前准备好停用词内容按正确的格式写入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的分词配置主要有

Config

说明

enable_custom_config

是否开启自定义配置
enable_index_mode

是否是索引分词

enable_number_quantifier_recognize 是否识别数字和量词
enable_custom_dictionary 是否加载用户词典
enable_translated_name_recognize 是否识别音译人名
enable_japanese_name_recognize 是否识别日本人名
enable_organization_recognize 是否识别机构
enable_place_recognize 是否识别地名

enable_name_recognize

是否识别中国人名
enable_traditional_chinese_mode 是否开启繁体中文
enable_stop_dictionary 是否启用停用词
enable_part_of_speech_tagging 是否开启词性标注
enable_remote_dict 是否开启远程词典
enable_normalization

是否执行字符正规化

enable_offset

是否计算偏移量

需要注意的是,以上的自定义分词属性不是每个版本都支持的,在使用时建议测试一下你当前的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"}

输入测试语句测试,首先看一下未使用自定义分词的效果

image.png

再看一下使用自定义分词之后的效果

image.png

可以看到双引号已经被停用了,不会再出现在分词结果里,自定义分词语句

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://developer.aliyun.com/article/1163240中出现的自定义词典1分钟后词典自动加载仍然没有生效的情况,通过自定义分词的方式也可以得到解决,大家有兴趣的可以自行测试一下。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
存储 缓存 固态存储
优化Elasticsearch 硬件配置
优化Elasticsearch 硬件配置
671 5
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
408 4
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
587 5
|
监控 负载均衡 安全
Elasticsearch集群配置优化
Elasticsearch集群配置优化
370 1
|
测试技术 API 开发工具
ElasticSearch的IK分词器
ElasticSearch的IK分词器
276 7
|
11月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1988 64
|
10月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
5308 0
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1390 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】