HanLP Analysis for Elasticsearch

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:  基于 HanLP 的 Elasticsearch 中文分词插件,核心功能: 兼容 ES 5.x-7.x;内置词典,无需额外配置即可使用;支持用户自定义词典;支持远程词典热更新(待开发);内置多种分词模式,适合不同场景;拼音过滤器(待开发);简繁体转换过滤器(待开发)。

 基于 HanLP Elasticsearch 中文分词插件,核心功能:

 

兼容 ES 5.x-7.x

内置词典,无需额外配置即可使用;

支持用户自定义词典;

支持远程词典热更新(待开发);

内置多种分词模式,适合不同场景;

拼音过滤器(待开发);

简繁体转换过滤器(待开发)。

 

版本

插件版本和 ES 版本一致,直接下载对应版本的插件进行安装即可。

 

·插件开发完成时,最新版本已经为 6.5.2 了,所以个人只对典型的版本进行了测试;

·5.X 5.0.05.5.0 版本进行了测试;

·6.X 6.0.06.3.06.4.16.5.1 版本进行了测试;

·7.X 7.0.0 版本进行了测试。

 

安装使用

下载编译

git clone 对应版本的代码,打开 pom.xml 文件,修改 <elasticsearch.version>6.5.1</elasticsearch.version> 为需要的 ES 版本;然后使用 mvn package 生产打包文件,最终文件在 target/release 文件夹下。

 

打包完成后,使用离线方式安装即可。

 

使用默认词典

 

·在线安装:.\elasticsearch-plugin install https://github.com/AnyListen/elasticsearch-analysis-hanlp/releases/download/vA.B.C/elasticsearch-analysis-hanlp-A.B.C.zip

·离线安装:.\elasticsearch-plugin install file:///FILE_PATH/elasticsearch-analysis-hanlp-A.B.C.zip

离线安装请把 FILE_PATH 更改为 zip 文件路径;ABC 对应的是 ES 版本号。

 

使用自定义词典

默认词典是精简版的词典,能够满足基本需求,但是无法使用感知机和 CRF 等基于模型的分词器。

 

HanLP 提供了更加完整的词典,请按需下载。

 

词典下载后,解压到任意目录,然后修改插件安装目录下的 hanlp.properties 文件,只需修改第一行

 

root=D:/JavaProjects/HanLP/

data 的父目录即可,比如 data 目录是 /Users/hankcs/Documents/data,那么 root=/Users/hankcs/Documents/

 

使用自定义配置文件

如果你在其他地方使用了 HanLP,希望能够复用 hanlp.properties 文件,你只需要修改插件安装目录下的 plugin.properties 文件,将 configPath 配置为已有的 hanlp.properties 文件地址即可。

 

内置分词器

 

分析器(Analysis)

 

·hanlp_index:细粒度切分

·hanlp_smart:常规切分

·hanlp_nlp:命名实体识别

·hanlp_per:感知机分词

·hanlp_crfCRF分词

·hanlp:自定义

 

分词器(Tokenizer)

·hanlp_index:细粒度切分

·hanlp_smart:常规切分

·hanlp_nlp:命名实体识别

·hanlp_per:感知机分词

·hanlp_crfCRF分词

·hanlp:自定义

 

自定义分词器

插件有较为丰富的选项允许用户自定义分词器,下面是可用的配置项:

f4725f8f644136b4659f321ce607492772fe6cc7


 

案例展示:

 

# 创建自定义分词器

PUT my_index

{

  "settings": {

    "analysis": {

      "analyzer": {

        "my_analyzer": {

          "type": "hanlp",

          "algorithm": "viterbi",

          "enableIndexMode": "true",

          "enableCustomDictionary": "true",

          "customDictionaryPath": "",

          "enableCustomDictionaryForcing": "false",

          "enableStopWord": "true",

          "stopWordDictionaryPath": "",

          "enableNumberQuantifierRecognize": "true",

          "enableNameRecognize": "true",

          "enableTranslatedNameRecognize": "true",

          "enableJapaneseNameRecognize": "true",

          "enableOrganizationRecognize": "true",

          "enablePlaceRecognize": "true",

          "enableTraditionalChineseMode": "false"

        }

      }

    }

  }

}

 

# 测试分词器

POST my_index/_analyze

{

  "analyzer": "my_analyzer",

  "text": "张惠妹在上海市举办演唱会啦"

}

分词速度(仅供参考)

 

借助 _analyze API11G单线程),通过改变分词器类型,对 2W 字的文本进行分词,以下为从请求到返回的耗时:


46508cb37751adf46052310fa9c67d444a2baca8
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
3月前
|
自然语言处理 API 索引
Elasticsearch Analyzer原理分析并实现中文分词
Elasticsearch Analyzer原理分析并实现中文分词
73 0
|
自然语言处理 Docker 容器
elasticsearch-analysis-ik分词器下载与安装
elasticsearch-analysis-ik分词器下载与安装
1624 0
elasticsearch-analysis-ik分词器下载与安装
|
8月前
|
自然语言处理 Java Maven
Elasticsearch系列——安装中文分词插件elasticsearch-analysis-ik
Elasticsearch系列——安装中文分词插件elasticsearch-analysis-ik
|
JSON 数据格式 索引
【Elastic Engineering】Elasticsearch:Elasticsearch 中的数据强制匹配
Elasticsearch:Elasticsearch 中的数据强制匹配
147 0
【Elastic Engineering】Elasticsearch:Elasticsearch 中的数据强制匹配
|
自然语言处理 达摩院 索引
Elasticsearch 中文分词器
在使用Elasticsearch 进行搜索中文时,Elasticsearch 内置的分词器会将所有的汉字切分为单个字,对用国内习惯的一些形容词、常见名字等则无法优雅的处理,此时就需要用到一些开源的分词器,以下分别介绍几种常见的中文分词器
6367 1
Elasticsearch 中文分词器
ES自定义插件-elasticsearch-analysis-hanlp
ES自定义插件-elasticsearch-analysis-hanlp
ES自定义插件-elasticsearch-analysis-hanlp
|
自然语言处理
elasticsearch安装中文分词扩展elasticsearch-analysis-ik
elasticsearch安装中文分词扩展elasticsearch-analysis-ik
149 0
|
自然语言处理 搜索推荐 索引
Elasticsearch实现中文分词
默认标准分词效果展示; 分词插件elasticsearch-analysis-ik; ik分词效果展示
94 0
Elasticsearch实现中文分词
|
自然语言处理
【ELK】(三)Elasticsearch 安装IK中文分词器
【ELK】(三)Elasticsearch 安装IK中文分词器
334 0
【ELK】(三)Elasticsearch 安装IK中文分词器
|
API 索引
elasticsearch中文分词器详解(九)
1.es安装中文分词器 官网:https://github.com/medcl/elasticsearch-analysis-ik 1.1.安装中文分词器 安装中文分词器的要求: ​ 1.分词器的版本要与es的版本一直 ​ 2.所有es节点都需要安装中文分词器 ​ 3.安装完分词器需要重启
426 0
elasticsearch中文分词器详解(九)