前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ik分词器

ik分词器

作者头像
名字是乱打的
发布2022-05-13 11:07:08
2690
发布2022-05-13 11:07:08
举报
文章被收录于专栏:软件工程

ik分词器出现的背景: 分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作, 默认的中文分词是将每个字看成一个词,比如"中国的花"会被分为"中","国","的","花",这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

IK提供了两个分词算法 ik_smart 和 ik_max_word 其中 ik_smart 为最少切分,ik_max_word为最细粒度划分

代码语言:javascript
复制
我们分别来试一下 
(1)最小切分:在浏览器地址栏输入地址 
http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员 
输出的结果为:
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,    
      "end_offset" : 1,
      "type" : "CN_CHAR",  
      "position" : 0 
    },
    {
      "token" : "是",
      "start_offset" : 1, 
      "end_offset" : 2,
      "type" : "CN_CHAR",  
      "position" : 1 
    },
    {
      "token" : "程序员",   
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2 
    }
  ]
}
(2)最细切分:在浏览器地址栏输入地址
http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员
输出的结果为:
{  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0 
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR", 
      "position" : 1 
    },
    {
      "token" : "程序员", 
     "start_offset" : 2, 
     "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2 
    },
    {
      "token" : "程序",
      "start_offset" : 2, 
     "end_offset" : 4,
      "type" : "CN_WORD",
      "position" : 3 
    },
    {
      "token" : "员",
      "start_offset" : 4, 
     "end_offset" : 5,
      "type" : "CN_CHAR",
      "position" : 4 
    }
  ]
}
ik分词器支持自定义词库

默认的分词并没有识别“小明”是一个词。如果我们想让系统识别“小明”是一个词,需要编辑自定义词库。 步骤: (1)进入elasticsearch/plugins/ik/config目录 (2)新建一个my.dic文件,编辑内容: 小明 修改IKAnalyzer.cfg.xml(在ik/config目录下)

代码语言:javascript
复制
 <properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!‐‐用户可以在这里配置自己的扩展字典 ‐‐>
    <entry key="ext_dict">my.dic</entry>
     <!‐‐用户可以在这里配置自己的扩展停止词字典‐‐>
    <entry key="ext_stopwords"></entry>
</properties>

重新启动elasticsearch即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ik分词器支持自定义词库
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档