概述
目录
- hanlp分词插件
- 插件安装
- 在线安装
- 离线安装
- 安装数据包
- 同义词配置
hanlp分词插件
HanLP是一款免费开源(Apache License 2.0协议)中文语义分词工具,它提供中文分词、词性标注、命名实体识别、依存句法分析、语义依存分析、新词发现、关键词短语提取、自动摘要、文本分类聚类、拼音简繁转换、自然语言处理等功能。
Elasticsearch hanlp分词插件是基于HanLP开发的Elasticsearch分词插件,能够提供中文语义分词,词性标注等功能。
Elasticsearch默认的分词插件只支持英文,中文的分词效果比较差,目前比较热门的中文分词插件有ik分词、jieba分词、hanlp分词几种,重准确率、性能等方面来说hanlp还是比较有优势的详细信息可以看这里中文分词器对比
插件安装
Elasticsearch插件安装方式有两种,在线安装、离线安装
在线安装
进入Elasticsearch安装目录比如 /usr/share/elasticsearch/, 执行命令:
[root@eda525b6199e elasticsearch]# cd /usr/share/elasticsearch
[root@eda525b6199e elasticsearch]#./bin/elasticsearch-plugin install https://github.com/KennFalcon/elasticsearch-analysis-hanlp/releases/download/v7.5.0/elasticsearch-analysis-hanlp-7.5.0.zip
其中的版本号做对应修改,一般和Elasticsearch版本号保存一致,安装成功后验证
[root@eda525b6199e elasticsearch]#./bin/elasticsearch-plugin list
显示如下,表示安装成功
[root@eda525b6199e elasticsearch]# ./bin/elasticsearch-plugin list
analysis-hanlp
此时我们可以在Elasticsearch的安装目录下的plugins目录下看到一个名问analysis-hanlp文件夹
离线安装
首先下载Elasticsearch hanlp插件安装包,下载地址网盘密码i0o7, 下载和Elasticsearch一样得版本
安装
将下载好的zip文件放到指定目录,如果/usr/share/elasticsearch/目录,通过下述命令安装
[root@eda525b6199e elasticsearch]# cd /usr/share/elasticsearch
[root@eda525b6199e elasticsearch]#./bin/elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-hanlp-7.5.0.zip
file: 后面是zip文件的绝对路径,否则安装可能不成功。
安装成功后验证方式和在线安装一样
安装数据包
Hanlp是基于语义的分词,采用机器学习算法,通过机器学习算法采集出大量的数据文件,直接安装的插件只包含默认的数据包,如果需要安装完整的数据包,可以从这里下载,下载完成后放到elasticsearch 安装目录下的/plugins/analysis-hanlp 目录下,重启Elasticsearch即可
同义词配置
Elasticsearch提供同义词配置(不是hanlp的),在新建索引的时候可以指定同义词文件,或者直接在索引配置文件中指定同义词
在hanlp插件的安装目录下我们可以找到其采集的同义词文件:
在Elasticsearch安装目录下的config目录下新建文件夹synonym文件夹,在此文件夹下新建文件名问synonmy.txt, 内容如下:
人类, 生人, 全人类
人手, 人员, 人口, 人丁, 口, 食指
劳力, 劳动力, 工作者
匹夫, 个人
家伙, 东西, 货色, 厮, 崽子, 兔崽子, 狗崽子, 小子, 杂种, 畜生, 混蛋, 王八蛋, 竖子, 鼠辈, 小崽子
每人, 各人, 每位
该人, 此人
群众, 大众, 公众, 民众, 万众, 众生, 千夫
良民, 顺民
遗民, 贱民, 流民, 游民, 顽民, 刁民, 愚民, 不法分子, 孑遗
人丛, 人群, 人海, 人流, 人潮
一换行分割,同义词之间用逗号分割,保存为utf-8格式
新建索引,配置如下:
{
"aliases": {},
"mappings": {
"properties": {
"content": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "hanlp_index",
"search_analyzer": "hanlp_nlp"
},
"createTime": {
"type": "date",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"documentName": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "hanlp_index",
"search_analyzer": "hanlp_nlp"
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "standard"
},
"updateTime": {
"type": "date",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"settings": {
"index": {
"number_of_shards": "1",
"analysis": {
"filter":{
"hanlp_synonym":{
"ignore_case":"true",
"expand":"true",
"type":"synonym",
"synonyms_path":"synonym/synonym.txt"
},
"hanlp_stop":{
"type": "stop",
"stopwords_path": "stop/stopwords.txt"
}
},
"analyzer": {
"hanlp_index": {
"filter": [
"lowercase",
"hanlp_stop",
"hanlp_synonym"
],
"char_filter": [
"html_strip"
],
"tokenizer": "hanlp_index"
},
"hanlp_search": {
"filter": [
"lowercase",
"hanlp_stop",
"hanlp_synonym"
],
"char_filter": [
"html_strip"
],
"tokenizer": "hanlp_nlp"
}
}
},
"number_of_replicas": "1"
}
}
}
在索引配置文件的setting配置中定义一个同义词的filter,名称可以随便取,但是使用的时候别用错
最后
以上就是愤怒雨为你收集整理的Elasticsearch学习笔记(三)安装hanlp中文分词插件及同义词配置hanlp分词插件插件安装同义词配置的全部内容,希望文章能够帮你解决Elasticsearch学习笔记(三)安装hanlp中文分词插件及同义词配置hanlp分词插件插件安装同义词配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复