欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

实战手册:深入理解Elastic Stack的中文分词器(IK和pinyin)

最编程 2024-08-09 09:16:40
...

3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器


创作人:李增胜

审稿人:欧阳楚才

 

分词器介绍

 

在使用 Elasticsearch 搜索中文信息时,Elasticsearch 默认将中文切分为单个汉字,对于常见的人名、地名、机构名等则无法优雅的处理,此时就需要用到一些中文分词器,常见的分词器如下:

 

l - Standard 默认分词器

l - IK 中文分词器

l - Pinyin 分词器

l - Smart Chinese 分词器

l - Hanlp 中文分词器

 

中文分词器比较


网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|


l Standard 默认分词器,对单个字符进行切分,查全率高,准确度较低

l IK 分词器 ik_max_word:查全率高,性能也较高,是业务中普遍采用的中文分词器

l IK 分词器 ik_smart:切分颗粒度较粗,查全率不高,但是查准率、查询性能较高

l Smart Chinese 分词器:查准率、查询性能较高

l Hanlp 中文分词器:切分颗粒度较粗,查准率较高

l Pinyin 分词器:针对汉字拼音进行的分词器,与上面介绍的分词器稍有不同,在用拼音进行查询时查全率准确度较高

 

下面详细介绍下各种分词器,对同一组汉语进行分词的结果对比,方便大家在实际使用中参考。

 

Standard 默认分词器


GET _analyze
{
  "text": "南京市长江大桥",
  "tokenizer": "standard"
}
#返回结果
{
  "tokens" : [
    {
      "token" : "南"
    },
    {
      "token" : "京",
    },
    {
      "token" : "市",
    },
    {
      "token" : "长",
    },
    {
      "token" : "江",
    },
    {
      "token" : "大",
    },
    {
      "token" : "桥",
    }
  ]
}

 默认分词器处理中文是按照单个汉字进行切割,不能很好的理解中文词语的含义,在实际项目使用中很少会使用默认分词器来处理中文。

 

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(中) https://developer.aliyun.com/article/1229400