zoukankan      html  css  js  c++  java
  • Es学习第五课, 分词器介绍和中文分词器配置

     上课我们介绍了倒排索引,在里面提到了分词的概念,分词器就是用来分词的。

    分词器是ES中专门处理分词的组件,英文为Analyzer,定义为:从一串文本中切分出一个一个的词条,并对每个词条进行标准化。它由三部分组成,

    • Character Filters:分词之前进行预处理,比如去除html标签
    • Tokenizer:将原始文本按照一定规则切分为单词
    • Token Filters:针对Tokenizer处理的单词进行再加工,比如转小写、删除或增新等处理,也就是标准化

    预定义的分词器

    ES自带的分词器有如下:

    • Standard Analyzer
      • 默认分词器
      • 按词切分,支持多语言
      • 小写处理
      • 支持中文采用的方法为单字切分
    • Simple Analyzer
      • 按照非字母切分
      • 小写处理
    • Whitespace Analyzer
      • 空白字符作为分隔符
    • Stop Analyzer
      • 相比Simple Analyzer多了去除请用词处理
      • 停用词指语气助词等修饰性词语,如the, an, 的, 这等
    • Keyword Analyzer
      • 不分词,直接将输入作为一个单词输出
    • Pattern Analyzer
      • 通过正则表达式自定义分隔符
      • 默认是\W+,即非字词的符号作为分隔符

    ES默认对中文分词是一个一个字来解析,这种情况会导致解析过于复杂,效率低下,所以目前有几个开源的中文分词器,来专门解决中文分词,其中常用的叫IK

    中文分词

    • 难点
      • 中文分词指的是将一个汉字序列切分为一个一个的单独的词。在英文中,单词之间以空格作为自然分界词,汉语中词没有一个形式上的分界符
      • 上下文不同,分词结果迥异,比如交叉歧义问题
    • 常见分词系统
      • IK:实现中英文单词的切分,可自定义词库,支持热更新分词词典
      • jieba:支持分词和词性标注,支持繁体分词,自定义词典,并行分词等
      • Hanlp:由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用
      • THUAC:中文分词和词性标注

     

    安装配置ik中文分词插件

    # 在Elasticsearch安装目录下执行命令,然后重启es
    bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip
    
    # 如果由于网络慢,安装失败,可以先下载好zip压缩包,将下面命令改为实际的路径,执行,然后重启es
    bin/elasticsearch-plugin install file:///path/to/elasticsearch-analysis-ik-6.3.0.zip
    ik两种分词模式ik_max_word 和 ik_smart 什么区别?
    • ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;

    • ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。

    你也可以直接上IK的github的教程来配置,https://github.com/medcl/elasticsearch-analysis-ik

    安装完后,修改elasticsearch.yml文件,把ik分词器设置为es的默认分词器

    index.analysis.analyzer.default.type:ik

    重启es,注意es中的每个节点都要进行上述配置。

      

     
     
  • 相关阅读:
    python 装饰器
    python 环境迁移之requirements.txt (window环境)
    selenium 元素查找与属性
    pytest+allure(allure-pytest基于这个插件)设计定制化报告
    Capability配置
    python_excel
    python_连接mysql
    MySql_1
    appium_环境搭建
    appium_appium简介
  • 原文地址:https://www.cnblogs.com/kakatadage/p/9948378.html
Copyright © 2011-2022 走看看