精华内容
下载资源
问答
  • 常用的中文分词器
    更多相关内容
  • 列举了当前常用中文分词器及其地址链接,不用再进行网络查找,直接可以进行使用。
  • 常见的中文分词器和使用 在上一章介绍了几种默认的分词器的规则和使用,有兴趣的可以参考一下 elasticSearch核心概念的介绍(五):分词器的介绍和使用 在这一章我们介绍常见的中文分词器 为什么要使用中文分词器...

    常见的中文分词器和使用

    在上一章介绍了几种默认的分词器的规则和使用,有兴趣的可以参考一下
    elasticSearch核心概念的介绍(五):分词器的介绍和使用
    在这一章我们介绍常见的中文分词器

    为什么要使用中文分词器,我们可以简单来试一下。

    • 请求

      curl -X POST "http://172.25.45.150:9200/_analyze" -H 'Content-Type:application/json' -d '
      {
          "analyzer":"standard",
          "text":"火箭明年总冠军"
      }
      '
      
    • 响应

      {
          "tokens": [
              {
                  "token": "火",
                  "start_offset": 0,
                  "end_offset": 1,
                  "type": "<IDEOGRAPHIC>",
                  "position": 0
              },
              {
                  "token": "箭",
                  "start_offset": 1,
                  "end_offset": 2,
                  "type": "<IDEOGRAPHIC>",
                  "position": 1
              },
              {
                  "token": "明",
                  "start_offset": 2,
                  "end_offset": 3,
                  "type": "<IDEOGRAPHIC>",
                  "position": 2
              },
              {
                  "token": "年",
                  "start_offset": 3,
                  "end_offset": 4,
                  "type": "<IDEOGRAPHIC>",
                  "position": 3
              },
              {
                  "token": "总",
                  "start_offset": 4,
                  "end_offset": 5,
                  "type": "<IDEOGRAPHIC>",
                  "position": 4
              },
              {
                  "token": "冠",
                  "start_offset": 5,
                  "end_offset": 6,
                  "type": "<IDEOGRAPHIC>",
                  "position": 5
              },
              {
                  "token": "军",
                  "start_offset": 6,
                  "end_offset": 7,
                  "type": "<IDEOGRAPHIC>",
                  "position": 6
              }
          ]
      }
      

      可以看到把每一个中文都进行了分词,我们通常希望它能够以词语等规则进行分词,所以这显然不是我们想要的结果

    常见的分词器

    • smartCN : 一个简单的中文或英文混合文本的分词器(这里不做使用,因为用的比较少)
    • IK分词器 更智能更友好的中文分词器

    这里我的es是通过docker去安装的,因此有需要的朋友可以参考

    Docker安装Elasticsearch和Kibana

    版本为7.4.2

    安装ik分词器

    • 下载 Release v7.4.2 · medcl/elasticsearch-analysis-ik · GitHub尽量保持一致的tag

    • 进入挂载目录

      cd /mydata/elasticsearch/plugins
      
    • 创建目录

      mkdir ik
      
    • 上传ik.zip

    • 解压

      unzip ./elasticsearch-analysis-ik-7.4.2.zip
      
    • 删除压缩包

      rm -rf ./elasticsearch-analysis-ik-7.4.2.zip
      
    • 重启es

      docker restart elasticsearch
      

    使用ik分词器

    • 请求
    curl -X POST http://172.25.45.150:9200/_analyze -H 'Content-Type' -d '
    	{
        "analyzer":"ik_max_word",
        "text":"火箭明年总冠军"
    }
    '
    
    • 响应
    {
        "tokens": [
            {
                "token": "火箭",
                "start_offset": 0,
                "end_offset": 2,
                "type": "CN_WORD",
                "position": 0
            },
            {
                "token": "明年",
                "start_offset": 2,
                "end_offset": 4,
                "type": "CN_WORD",
                "position": 1
            },
            {
                "token": "总冠军",
                "start_offset": 4,
                "end_offset": 7,
                "type": "CN_WORD",
                "position": 2
            },
            {
                "token": "冠军",
                "start_offset": 5,
                "end_offset": 7,
                "type": "CN_WORD",
                "position": 3
            }
        ]
    }
    

    这就我们就能看到ik分词后的效果,达到了我们想要的效果。

    展开全文
  • 这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的。 首先来说下什么是 Analysis: 什么是 Analysis 顾名思义,文本分析就是把...

    本文来说下有关ElasticSearch分词器的几个问题


    概述

    这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的。

    首先来说下什么是 Analysis:


    什么是 Analysis

    顾名思义,文本分析就是把全文本转换成一系列单词(term/token)的过程,也叫分词。在 ES 中,Analysis 是通过分词器(Analyzer) 来实现的,可使用 ES 内置的分析器或者按需定制化分析器。

    举一个分词简单的例子:比如你输入 Mastering Elasticsearch,会自动帮你分成两个单词,一个是 mastering,另一个是 elasticsearch,可以看出单词也被转化成了小写的。

    在这里插入图片描述
    再简单了解了 Analysis 与 Analyzer 之后,让我们来看下分词器的组成:


    分词器的组成

    分词器是专门处理分词的组件,分词器由以下三部分组成:

    • Character Filters:针对原始文本处理,比如去除 html 标签
    • Tokenizer:按照规则切分为单词,比如按照空格切分
    • Token Filters:将切分的单词进行加工,比如大写转小写,删除 stopwords,增加同义语

    在这里插入图片描述
    同时 Analyzer 三个部分也是有顺序的,从图中可以看出,从上到下依次经过 Character Filters,Tokenizer 以及 Token Filters,这个顺序比较好理解,一个文本进来肯定要先对文本数据进行处理,再去分词,最后对分词的结果进行过滤。

    其中,ES 内置了许多分词器:

    • Standard Analyzer - 默认分词器,按词切分,小写处理
    • Simple Analyzer - 按照非字母切分(符号被过滤),小写处理
    • Stop Analyzer - 小写处理,停用词过滤(the ,a,is)
    • Whitespace Analyzer - 按照空格切分,不转小写
    • Keyword Analyzer - 不分词,直接将输入当做输出
    • Pattern Analyzer - 正则表达式,默认 \W+
    • Language - 提供了 30 多种常见语言的分词器
    • Customer Analyzer - 自定义分词器

    接下来会对以上分词器进行讲解,在讲解之前先来看下很有用的 API:_analyzer API:


    Analyzer API

    它可以通过以下三种方式来查看分词器是怎么样工作的

    直接指定 Analyzer 进行测试

    GET _analyze
    {
        "analyzer": "standard",
        "text" : "Mastering Elasticsearch , elasticsearch in Action"
    }
    

    指定索引的字段进行测试

    POST books/_analyze
    {
        "field": "title",
        "text": "Mastering Elasticesearch"
    }
    

    自定义分词进行测试

    POST /_analyze
    {
        "tokenizer": "standard", 
        "filter": ["lowercase"],
        "text": "Mastering Elasticesearch"
    }
    

    再了解了 Analyzer API 后,让我们一起看下 ES 内置的分词器:


    ES分词器

    首先来介绍下 Stamdard Analyzer 分词器:

    Stamdard Analyzer

    在这里插入图片描述
    它是 ES 默认的分词器,它会对输入的文本按词的方式进行切分,切分好以后会进行转小写处理,默认的 stopwords 是关闭的。

    下面使用 Kibana 看一下它是怎么样进行工作的,在 Kibana 的开发工具(Dev Tools)中指定 Analyzer 为 standard,并输入文本 In 2020, Java is the best language in the world.,然后我们运行一下:

    GET _analyze
    {
      "analyzer": "standard",
      "text": "In 2020, Java is the best language in the world."
    }
    

    运行结果如下:

    {
      "tokens" : [
        {
          "token" : "in",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "<ALPHANUM>",
          "position" : 0
        },
        {
          "token" : "2020",
          "start_offset" : 3,
          "end_offset" : 7,
          "type" : "<NUM>",
          "position" : 1
        },
        {
          "token" : "java",
          "start_offset" : 9,
          "end_offset" : 13,
          "type" : "<ALPHANUM>",
          "position" : 2
        },
        {
          "token" : "is",
          "start_offset" : 14,
          "end_offset" : 16,
          "type" : "<ALPHANUM>",
          "position" : 3
        },
        {
          "token" : "the",
          "start_offset" : 17,
          "end_offset" : 20,
          "type" : "<ALPHANUM>",
          "position" : 4
        },
        {
          "token" : "best",
          "start_offset" : 21,
          "end_offset" : 25,
          "type" : "<ALPHANUM>",
          "position" : 5
        },
        {
          "token" : "language",
          "start_offset" : 26,
          "end_offset" : 34,
          "type" : "<ALPHANUM>",
          "position" : 6
        },
        {
          "token" : "in",
          "start_offset" : 35,
          "end_offset" : 37,
          "type" : "<ALPHANUM>",
          "position" : 7
        },
        {
          "token" : "the",
          "start_offset" : 38,
          "end_offset" : 41,
          "type" : "<ALPHANUM>",
          "position" : 8
        },
        {
          "token" : "world",
          "start_offset" : 42,
          "end_offset" : 47,
          "type" : "<ALPHANUM>",
          "position" : 9
        }
      ]
    }
    

    可以看出是按照空格、非字母的方式对输入的文本进行了转换,比如对 Java 做了转小写,对一些停用词也没有去掉,比如 in。

    其中 token 为分词结果;start_offset 为起始偏移;end_offset 为结束偏移;position 为分词位置。

    下面来看下 Simple Analyzer 分词器:


    Simple Analyzer

    在这里插入图片描述
    它只包括了 Lower Case 的 Tokenizer,它会按照非字母切分,非字母的会被去除,最后对切分好的做转小写处理,然后接着用刚才的输入文本,分词器换成 simple 来进行分词,运行结果如下:

    {
      "tokens" : [
        {
          "token" : "in",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "word",
          "position" : 0
        },
        {
          "token" : "java",
          "start_offset" : 9,
          "end_offset" : 13,
          "type" : "word",
          "position" : 1
        },
        {
          "token" : "is",
          "start_offset" : 14,
          "end_offset" : 16,
          "type" : "word",
          "position" : 2
        },
        {
          "token" : "the",
          "start_offset" : 17,
          "end_offset" : 20,
          "type" : "word",
          "position" : 3
        },
        {
          "token" : "best",
          "start_offset" : 21,
          "end_offset" : 25,
          "type" : "word",
          "position" : 4
        },
        {
          "token" : "language",
          "start_offset" : 26,
          "end_offset" : 34,
          "type" : "word",
          "position" : 5
        },
        {
          "token" : "in",
          "start_offset" : 35,
          "end_offset" : 37,
          "type" : "word",
          "position" : 6
        },
        {
          "token" : "the",
          "start_offset" : 38,
          "end_offset" : 41,
          "type" : "word",
          "position" : 7
        },
        {
          "token" : "world",
          "start_offset" : 42,
          "end_offset" : 47,
          "type" : "word",
          "position" : 8
        }
      ]
    }
    

    从结果中可以看出,数字 2020 被去除掉了,说明非字母的的确会被去除,所有的词也都做了小写转换。

    现在,我们来看下 Whitespace Analyzer 分词器:


    Whitespace Analyzer

    在这里插入图片描述
    它非常简单,根据名称也可以看出是按照空格进行切分的,下面我们来看下它是怎么样工作的:

    {
      "tokens" : [
        {
          "token" : "In",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "word",
          "position" : 0
        },
        {
          "token" : "2020,",
          "start_offset" : 3,
          "end_offset" : 8,
          "type" : "word",
          "position" : 1
        },
        {
          "token" : "Java",
          "start_offset" : 9,
          "end_offset" : 13,
          "type" : "word",
          "position" : 2
        },
        {
          "token" : "is",
          "start_offset" : 14,
          "end_offset" : 16,
          "type" : "word",
          "position" : 3
        },
        {
          "token" : "the",
          "start_offset" : 17,
          "end_offset" : 20,
          "type" : "word",
          "position" : 4
        },
        {
          "token" : "best",
          "start_offset" : 21,
          "end_offset" : 25,
          "type" : "word",
          "position" : 5
        },
        {
          "token" : "language",
          "start_offset" : 26,
          "end_offset" : 34,
          "type" : "word",
          "position" : 6
        },
        {
          "token" : "in",
          "start_offset" : 35,
          "end_offset" : 37,
          "type" : "word",
          "position" : 7
        },
        {
          "token" : "the",
          "start_offset" : 38,
          "end_offset" : 41,
          "type" : "word",
          "position" : 8
        },
        {
          "token" : "world.",
          "start_offset" : 42,
          "end_offset" : 48,
          "type" : "word",
          "position" : 9
        }
      ]
    }
    

    可以看出,只是按照空格进行切分,2020 数字还是在的,Java 的首字母还是大写的,, 还是保留的。

    接下来看 Stop Analyzer 分词器:


    Stop Analyzer

    在这里插入图片描述
    它由 Lowe Case 的 Tokenizer 和 Stop 的 Token Filters 组成的,相较于刚才提到的 Simple Analyzer,多了 stop 过滤,stop 就是会把 the,a,is 等修饰词去除,同样让我们看下运行结果:

    {
      "tokens" : [
        {
          "token" : "java",
          "start_offset" : 9,
          "end_offset" : 13,
          "type" : "word",
          "position" : 1
        },
        {
          "token" : "best",
          "start_offset" : 21,
          "end_offset" : 25,
          "type" : "word",
          "position" : 4
        },
        {
          "token" : "language",
          "start_offset" : 26,
          "end_offset" : 34,
          "type" : "word",
          "position" : 5
        },
        {
          "token" : "world",
          "start_offset" : 42,
          "end_offset" : 47,
          "type" : "word",
          "position" : 8
        }
      ]
    }
    

    可以看到 in is the 等词都被 stop filter过滤掉了。

    接下来看下 Keyword Analyzer:


    Keyword Analyzer

    在这里插入图片描述
    它其实不做分词处理,只是将输入作为 Term 输出,我们来看下运行结果:

    {
      "tokens" : [
        {
          "token" : "In 2020, Java is the best language in the world.",
          "start_offset" : 0,
          "end_offset" : 48,
          "type" : "word",
          "position" : 0
        }
      ]
    }
    

    我们可以看到,没有对输入文本进行分词,而是直接作为 Term 输出了。

    接下来看下 Pattern Analyzer:


    Pattern Analyzer

    在这里插入图片描述
    它可以通过正则表达式的方式进行分词,默认是用 \W+ 进行分割的,也就是非字母的符合进行切分的,由于运行结果和 Stamdard Analyzer 一样,就不展示了。


    Language Analyzer

    ES 为不同国家语言的输入提供了 Language Analyzer 分词器,在里面可以指定不同的语言,我们用 english 进行分词看下:

    {
      "tokens" : [
        {
          "token" : "2020",
          "start_offset" : 3,
          "end_offset" : 7,
          "type" : "<NUM>",
          "position" : 1
        },
        {
          "token" : "java",
          "start_offset" : 9,
          "end_offset" : 13,
          "type" : "<ALPHANUM>",
          "position" : 2
        },
        {
          "token" : "best",
          "start_offset" : 21,
          "end_offset" : 25,
          "type" : "<ALPHANUM>",
          "position" : 5
        },
        {
          "token" : "languag",
          "start_offset" : 26,
          "end_offset" : 34,
          "type" : "<ALPHANUM>",
          "position" : 6
        },
        {
          "token" : "world",
          "start_offset" : 42,
          "end_offset" : 47,
          "type" : "<ALPHANUM>",
          "position" : 9
        }
      ]
    }
    

    可以看出 language 被改成了 languag,同时它也是有 stop 过滤器的,比如 in,is 等词也被去除了。

    最后,让我们看下中文分词:


    中文分词

    中文分词有特定的难点,不像英文,单词有自然的空格作为分隔,在中文句子中,不能简单地切分成一个个的字,而是需要分成有含义的词,但是在不同的上下文,是有不同的理解的。

    比如以下例子:

    在这些,企业中,国有,企业,有十个/在这些,企业,中国,有企业,有十个
    各国,有,企业,相继,倒闭/各,国有,企业,相继,倒闭
    羽毛球,拍卖,完了/羽毛球拍,卖,完了
    

    那么,让我们来看下 ICU Analyzer 分词器,它提供了 Unicode 的支持,更好的支持亚洲语言!

    我们先用 standard 来分词,以便于和 ICU 进行对比。

    GET _analyze
    {
      "analyzer": "standard",
      "text": "各国有企业相继倒闭"
    }
    

    运行结果就不展示了,分词是一个字一个字切分的,明显效果不是很好,接下来用 ICU 进行分词,分词结果如下:

    {
      "tokens" : [
        {
          "token" : "各国",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "<IDEOGRAPHIC>",
          "position" : 0
        },
        {
          "token" : "有",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "<IDEOGRAPHIC>",
          "position" : 1
        },
        {
          "token" : "企业",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "<IDEOGRAPHIC>",
          "position" : 2
        },
        {
          "token" : "相继",
          "start_offset" : 5,
          "end_offset" : 7,
          "type" : "<IDEOGRAPHIC>",
          "position" : 3
        },
        {
          "token" : "倒闭",
          "start_offset" : 7,
          "end_offset" : 9,
          "type" : "<IDEOGRAPHIC>",
          "position" : 4
        }
      ]
    }
    

    可以看到分成了各国,有,企业,相继,倒闭,显然比刚才的效果好了很多。

    还有许多中文分词器,在这里列举几个:

    IK:

    • 支持自定义词库,支持热更新分词字典
    • https://github.com/medcl/elasticsearch-analysis-ik

    jieba:

    • Python 中最流行的分词系统,支持分词和词性标注
    • 支持繁体分词、自定义词典、并行分词等
    • https://github.com/sing1ee/elasticsearch-jieba-plugin

    THULAC:

    • THU Lexucal Analyzer for Chinese, 清华大学自然语言处理和社会人文计算实验室的一套中文分词器
    • https://github.com/thunlp/THULAC-Java

    大家可以自己安装下,看下它中文分词效果。


    本文小结

    本文主要介绍了 ElasticSearch 自带的分词器,学习了使用 _analyzer API 去查看它的分词情况,最后还介绍下中文分词是怎么做的。

    展开全文
  • Elasticsearch之中文分词器

    多人点赞 热门讨论 2022-02-22 10:57:47
    讲解中文分词器IK的下载安装以及使用步骤,让我们的开发流程更加流畅、

    📢📢📢📣📣📣

    哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜

    ✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。

    ✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。

    ✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注一心同学】💞💞💞

    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️ 


    目录

    一、问题引入

    二、集成IK分词器

    2.1 下载

    2.2 安装

    2.3 使用IK分词器

    🌵 介绍

    🔥 使用ik_smart(最少切分)

    🔥 使用ik_max_word(最细粒度划分)

    三、自定义分词器

    3.1 问题引入

    3.2 解决方案

    小结


    一、问题引入

    我们在使用elasticsearch官方默认的分词插件时会发现,其对中文的分词效果不佳,我们对中文分词时会遇到很尴尬的问题——中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组。

    例如我们对“一心同学在看书”这句话进行分词,那么其会被分为:“”,“”,“”,“”,“”,“”,“”,然而这并不是我们想要的,所以我们需要安装中文分词器ik来解决这个问题。

    二、集成IK分词器

    2.1 下载

    注意:选择的版本要与ElasticSearch版本对应。

    下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

    2.2 安装

    (1)进入 elasticsearch的plugins目录中,创建一个ik文件夹。

    (2)将我们刚才下载的文件解压到ik文件夹里面 。

    (3)重启ES即可

    2.3 使用IK分词器

    🌵 介绍

    IK提供了两个分词算法:

    ik_smart:最少切分。

    ik_max_word:最细粒度划分。

    🔥 使用ik_smart(最少切分)

    我们这里使用kibana进行测试。

    输入:

    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": "一心同学在看书"
    }

    结果:

    🔥 使用ik_max_word(最细粒度划分)

    输入:

    GET _analyze
    {
      "analyzer": "ik_max_word",
      "text": "一心同学在看书"
    }

    结果:

    🚀分析:可以发现使用ik_max_word算法进行分词会比ik_smart算法分得更细,因为ik_max_word是以穷尽词库的可能来进行分词的。

    三、自定义分词器

    3.1 问题引入

    我们在使用IK分词器时会发现其实有时候分词的效果也并不是我们所期待的,例如我们输入“一心同学在看书”,但是分词器会把“一心同学”进行拆开,分为“一心”和“同学”,但我们希望的是“一心同学”可以不被拆开

    3.2 解决方案

    🚀 对于以上的问题,我们只需要将自己要保留的词,加到我们的分词器的字典中即可。

    (1)进入elasticsearch目录/plugins/ik/config中,创建我们自己的字典文件yixin.dic,并添加内容:

    (2)扩展字典

    进入我们的elasticsearch目录 :/plugins/ik/config,打开IKAnalyzer.cfg.xml文件,进行如下配置:

    (3)重启ElasticSearch,再次使用kibana测试

     可以发现,现在我们的词汇“一心同学”就不会被拆开了,达到我们想要的效果了!也就是说如果我们需要自己配置分词就在自定义的dic文件进行配置即可。


    小结

    以上就是【一心同学】讲解的关于【IK分词器】的下载和配置使用,以及【自定义分词器】的使用,现在对我们的【中文词汇】已经可以进行我们期待中的分割了!

    如果这篇【文章】有帮助到你,希望可以给【一心同学】点个👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【一心同学】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

    展开全文
  • ElasticSearch 中的中文分词器(三)

    千次阅读 2022-04-07 23:47:47
    二、中文分词器 在 Es 中,使用较多的中文分词器是 elasticsearch-analysis-ik,这个是 es 的一个第三方插件,代码托管在 GitHub 上: https://github.com/medcl/elasticsearch-analysis-ik 三、安装中文分词器 两种...
  • 【Lucene】分词器详解,常用分词器,IKANalyzer1. 分词器详解1.1 分词器的作用1.2 分词器API1.2.1 示例1.2.2 Analyzer1.2.3 createComponents(String fieldName)1.2.4 TokenStreamComponents1.2.5 TokenStream...
  • 中文分词器 IK

    2021-04-23 16:09:44
    1、中文分词器IK插件介绍 2、Linux环境安装中文分词器IK插件 3、自定义扩展分词器文件 4、elasticsearch文档映射概述 1、中文分词器IK插件介绍 1.1 分词器简介 在对文档(Document)中的内容进行索引前, 需要对文档...
  • 分词词库_中文分词词库最新整理(TXT格式)
  • 中文分词器 IK分词器

    2022-03-24 21:32:09
    中文分词器 standard 分词器,仅适用于英文。 GET /_analyze { "analyzer": "standard", "text": "中华人民共和国人民大会堂" } 我们想要的效果是什么:中华人民共和国,人民大会堂 IK分词器就是目前最流行的es...
  • 对于ES IK分词插件在中文检索中非常常用,本人也使用了挺久的。但知识细节一直很碎片化,一直没有做详细的整理。过一段时间用的话,也是依然各种找资料,也因此会降低开发效率。所以在有空的时候好好整理下相关资料...
  • 倒排索引在搜索引擎领域用的比较多,它也会先进行分词,接着将分词与文档进行映射,分词就构成了一个词典,当用户查询的时候,首先到词典中查找对应的分词,然后将对应的文档获取到。 二. ELK Elasticsearch是...
  • 在 Elasticsearch 中进行行分词的需要经过分析器的3个模块,字符过滤器将文本进行替换或者删除,在由分词器进行拆分成单词,最后由Token过滤器将一些无用语气助词删掉。 英文分词 在Elasticsearch 中共支持5种不同...
  • 最近接触一个翻译系统的项目,里面的记忆库使用到了lucene,因此需要对要翻译的文本进行分词,...如果要翻译的源语言是中文,采用中文分词器2.中文分词器:smartcn与IKanalyzer网上百度了很多,但是都没有文章能具体...
  • 本文主要介绍了 ik 分词器在es中的一些配置以及原理,包括 下载安装、如何设置es使用ik分词器、ik分词器与默认分词器的差异、ik分词自定义设置以及热更等等。 一、安装下载 ik分词器:...
  • NLP中常用分词器

    千次阅读 2018-04-17 19:34:08
    众所周知,NLP即自然语言处理,那么在NLP中常用分词器都有哪些呢?本文主要介绍NLP中常用分词器。一、Mmseg4j:基于正向最大匹配(https://code.google.com/p/mmseg4j/) mmseg4j用Chih-HaoTsai的MMSeg算法实现...
  • 常用中文分词方法

    千次阅读 2018-06-12 19:22:06
    一、正向最大匹配FMM从左到右将待分词文本中的最多个连续字符与词表匹配,如果匹配上,则切分出一个词。二、逆向最大匹配从右到左将待分词文本中的最多个连续字符与词表匹配,如果匹配上,则切分出一个词。三、双向...
  • IK分词器

    千次阅读 2021-11-15 17:55:58
    IK分词器是ES的一个插件,主要用于把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词器是将每个字看成一...
  • 采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。 优化的词典存储,更小的内存占用。支持用户...
  • 中文分词中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词分词效果将直接影响词性,句法树等模块...
  • 转自 进击的Coder 公众号原理中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词。表面上看,分词其实就是那么回事,但分词效果好不好对信息检索、实验结果还是有很大影响的,...
  • 安装ik中文分词器

    千次阅读 2022-03-31 19:59:49
    1、根据es版本下载对应的中文ik分词器zip资源。官方下载地址 Releases · medcl/elasticsearch-analysis-ik · GitHub 比如我的es版本是8.1.0下载的ik分词器也是8.1.0 2、上传到服务器,我的地址在 cd /home/...
  • 中文分词常用停用词 文档
  • 内容直接拷贝进stopword.dic即可使用(2614行常用停用词包含中英文,符号等)
  • 常用中文分词器 Smart Chinese Analysis:官方提供的中文分词器,不好用。 IK Analyzer:免费开源的java分词器,目前比较流行的中文分词器之一,简单、稳定,想要特别好的效果,需要自行维护词库,支持自定义词典...
  • 1、进入ik分词器安装(安装ik中文分词器_p&f°的博客-CSDN博客)的插件目录下的: 你的es安装目录/plugins/ik/config目录下,找到 IKAnalyzer.cfg.xml 文件。 我的在 cd /usr/local/elasticsearch-8.1.0/plugins...
  • 一、什么是中文分词器 学过英文的都知道,英文是以单词为单位的,单词与单词之间以空格或者逗号句号隔开。而中文则以字为单位,字又组成词,字和词再组成句子。所以对于英文,我们可以简单以空格判断某个字符串...
  • 常用中文分词器 IK Analyzer hanlp中文分词器 彩蛋 概述  上一篇博文记录了elasticsearch插件安装和管理, 在地大物博的祖国使用es,不得不考虑中文分词器,es内置的分词器中文分词的支持用惨不忍睹来...
  • standard处理英文能力强他会将词汇单元转换成小写形式,并去除停用词和标点符号对于非英文按单字切分whitespace空格分析针对英文,仅去除空格,没有其他任何处理不支持非英文simple针对英文,通过非字母字符分割...
  • 常用中文分词工具介绍

    千次阅读 2018-12-20 17:12:14
    本文首先介绍下中文分词的基本原理,然后介绍下国内比较流行的中文分词工具,如jieba、SnowNLP、THULAC、NLPIR,上述分词工具都已经在...中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,420
精华内容 8,168
热门标签
关键字:

常用的中文分词器