码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ElasticSearch中的中文分词详解


    1、什么是分词:

            分词就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch中称之为Analysis。 举例:我是好学生 --> 我/是/好学生

    2、分词API

    2.1、指定分词器进行分词

    1. POST http://127.0.0.1:9200/_analyze
    2. # 请求数据
    3. {
    4. "analyzer": "standard",
    5. "text": "hello world"
    6. }
    7. # 响应数据
    8. {
    9. "tokens": [
    10. {
    11. "token": "hello",
    12. "start_offset": 0,
    13. "end_offset": 5,
    14. "type": "",
    15. "position": 0
    16. },
    17. {
    18. "token": "world",
    19. "start_offset": 6,
    20. "end_offset": 11,
    21. "type": "",
    22. "position": 1
    23. }
    24. ]
    25. }

    2.2、指定索引分词

    数据库中数据:

    1. POST http://127.0.0.1:9200/study/_analyze
    2. # 请求数据
    3. {
    4. "analyzer": "standard",
    5. "field": "hobby",
    6. "text": "看电影"
    7. }
    8. # 响应数据
    9. {
    10. "tokens": [
    11. {
    12. "token": "看",
    13. "start_offset": 0,
    14. "end_offset": 1,
    15. "type": "",
    16. "position": 0
    17. },
    18. {
    19. "token": "电",
    20. "start_offset": 1,
    21. "end_offset": 2,
    22. "type": "",
    23. "position": 1
    24. },
    25. {
    26. "token": "影",
    27. "start_offset": 2,
    28. "end_offset": 3,
    29. "type": "",
    30. "position": 2
    31. }
    32. ]
    33. }

    2.3、中文分词

            英语以空格作为分隔符,中文分词没有明显的词汇分界点,如果分隔不正确就会造成歧义。

    如: 我/爱/炖排骨           我/爱/炖/排骨

    常用中文分词器,IK、jieba、THULAC等。

            IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。IK采用了特有的“正向迭代最细粒度切分算法“,具有80万字/秒的高速处理能力,采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇 (姓名、地名处理)等分词处理。 优化的词典存储,更小的内存占用。

    IK分词器 Elasticsearch插件地址:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.

     IK中文分词器的安装方法:

    注意:IK分词器插件要与ES版本保持一致:Releases · medcl/elasticsearch-analysis-ik · GitHub

     然后重新启动elasticsearch程序服务。

     此时安装完成IK中文分词器后,再次重新分词上面代码中的数据:

    1. POST http://127.0.0.1:9200/_analyze
    2. # 请求数据
    3. {
    4. "analyzer": "ik_max_word",
    5. "text": "我是好学生"
    6. }
    7. # 响应数据
    8. {
    9. "tokens": [
    10. {
    11. "token": "我",
    12. "start_offset": 0,
    13. "end_offset": 1,
    14. "type": "CN_CHAR",
    15. "position": 0
    16. },
    17. {
    18. "token": "是",
    19. "start_offset": 1,
    20. "end_offset": 2,
    21. "type": "CN_CHAR",
    22. "position": 1
    23. },
    24. {
    25. "token": "好学生",
    26. "start_offset": 2,
    27. "end_offset": 5,
    28. "type": "CN_WORD",
    29. "position": 2
    30. },
    31. {
    32. "token": "好学",
    33. "start_offset": 2,
    34. "end_offset": 4,
    35. "type": "CN_WORD",
    36. "position": 3
    37. },
    38. {
    39. "token": "学生",
    40. "start_offset": 3,
    41. "end_offset": 5,
    42. "type": "CN_WORD",
    43. "position": 4
    44. }
    45. ]
    46. }

    通过上面测试结果可以看出,对中文进行了较好的分词。

    参考博文:

    【elasticsearch系列】windows安装IK分词器插件_溪~源的博客-CSDN博客_ik插件

  • 相关阅读:
    STM32存储左右互搏 I2C总线读写FRAM MB85RC1M
    Web服务(12)——Tomcat管理
    echarts常用参数详解汇总(饼图,柱形图,折线图)持续更新中
    基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)
    常用脚本学习手册——Bat脚本
    药品研发及生产----生产过程验证管理规程
    .Linux基础正则表达式字符
    List 对象集合,如何优雅地返回给前端?
    C++格式化输出
    化妆品展示网页设计作业 静态HTML化妆品网站 DW美妆网站模板下载 大学生简单网页作品代码 个人网页制作 学生个人网页设计作业
  • 原文地址:https://blog.csdn.net/weixin_44799217/article/details/126203355
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号