IK分词器设置了停用词部分没有生效问题

简介: IK分词器设置了停用词部分没有生效问题

问题描述

新增停用词典的内容配置为:

一个男孩

一个女孩

通过热更新方式上传到了停用词库,实例重启后通过验证搜索,"一个女孩" 没有生效,如(图1),还是被检索到并分词返回了,另外一个停用词,"一个男孩" 就是生效的,如(图2)


问题原因

IK查询停用词召回的时候会先将查询词根据分词词库配置进行分词,比如"一个女孩"这个词会被分为"一个","女孩",之后会根据停用词库去看是否"一个","女孩"两个词再库内,如在库内就不会召回。

由于"一个女孩"这个词未在分词词库中配置,所以搜索的时候会分词为"一个","女孩"两个词,然后再使用停用词库去匹配就匹配不到。而"一个男孩"这个词再默认的主分词词库中就存在,所以不会进行分词,最后可以在停用词库匹配到"一个男孩"这个词,所以不会被召回。其过程是:先分词然后再根据分词的结果去匹配停用词库。


解决方案

不是配置的停用词没有生效,而是查询的过程中进行分词了分词的结果匹配不到停用词配置的"一个女孩"。解决办法是分词词库把"一个女孩"添加进入,后面搜索的时候就会发现该词不会被召回了。


适用范围

检索分析服务Elasticsearch版

相关文章
|
自然语言处理 Java Maven
IK分词器安装
IK分词器安装
188 0
|
6月前
|
JSON 自然语言处理 Shell
|
6月前
|
JSON 自然语言处理 数据格式
ElasticSearchIK分词器的安装与使用IK分词器
ElasticSearchIK分词器的安装与使用IK分词器
71 0
|
自然语言处理 Shell 索引
【ES系列七】——ik自定义分词词库
在利用ik分词的过程中,当ik的分词规则不满足我们的需求了,这个时候就可以利用ik的自定义词库进行筛选,举个例子:当我要将“我是中国人,我想测试一下”这句话通过分词,将“我想测试一下”分为一个词的时候,就需要利用ik的自定义词库进行灌入指定的词。
【ES系列七】——ik自定义分词词库
|
自然语言处理 索引
白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库
白话Elasticsearch29-IK中文分词之IK分词器配置文件+自定义词库
402 0
|
自然语言处理 索引
elasticsearch hanlp插件自定义分词配置(停用词)
简述elasticsearch hanlp插件自定义分词配置,涉及停用词,专有名词
elasticsearch hanlp插件自定义分词配置(停用词)
|
自然语言处理 安全 Java
Elastic:IK分词器分词、停用词热更新如何配置(二)基于数据库
上一期,我们说明了基于API形式的热更新,但是API形式的热更新存在词库的管理不方便,要直接操作磁盘文件,检索页很麻烦;文件的读写没有专门的优化,性能不好;多一次接口调用和网络传输等缺点,因此这期我们来说明直连数据库的方式来实现热更新
458 0
Elastic:IK分词器分词、停用词热更新如何配置(二)基于数据库
|
自然语言处理 搜索推荐
jieba分词有哪些模式,分别详细介绍
jieba分词有哪些模式,分别详细介绍
1105 0
IK分词器
IK分词器
100 1
|
canal 搜索推荐 关系型数据库
拼音分词器
安装方式参考IK分词器
262 0