Search ML NLP Java

Mynlp发布ElasticSearch分词插件

ElasticSearch分词插件

Mynlp自带Elasticsearch分词插件,开箱即用。速度高达6.5M/秒。

https://github.com/mayabot/mynlp

由于es版本发布太快,且插件配置文件中必须知道详细的版本号,这里只提供大版本的ES插件下载,下载解压后需要手动修改
plugin-descriptor.properties
文件

下载地址

阿里云CDN提供下载,速度很快,流量有限,不要重复下载哈:)

ES版本 MYNLP版本 大小 下载地址
6.x 3.0.1 36.7M 下载
7.x 3.0.0 38M 暂未开放

安装与配置

下载对应大版本号的插件zip文件,解压后放到Es的plugins文件夹下

└── plugins
    └── mynlp-elasticsearch6-3.0.1
        ├── annotations-13.0.jar
        ├── guava-19.0.jar
        ├── guice-4.1.0-no_aop.jar
        ├── javax.inject-1.jar
        ├── jsr305-3.0.2.jar
        ├── kotlin-stdlib-1.3.50.jar
        ├── kotlin-stdlib-common-1.3.50.jar
        ├── kotlin-stdlib-jdk7-1.3.50.jar
        ├── kotlin-stdlib-jdk8-1.3.50.jar
        ├── mynlp-core-3.0.1-SNAPSHOT.jar
        ├── mynlp-elasticsearch6-3.0.1-SNAPSHOT.jar
        ├── mynlp-lucene-3.0.1-SNAPSHOT.jar
        ├── mynlp-perceptron-3.0.1-SNAPSHOT.jar
        ├── mynlp-resource-coredict-1.0.0.jar
        ├── mynlp-resource-ner-1.0.0.jar
        ├── mynlp-segment-3.0.1-SNAPSHOT.jar
        ├── plugin-descriptor.properties
        └── plugin-security.policy

修改plugin-descriptor.properties文件中的版本号

classname=com.mayabot.mynlp.es.MynlpPlugin
java.version=1.8
elasticsearch.version=6.7.1 
has.native.controller=false

修改elasticsearch.version为你实际ES的详细版本号。

如何使用

参数

参数 默认 说明
mode top 字词输出模式。可选值 top atom overlap .
sub-word none 字词切分算法。可选值noneindex
personName true 启用人名识别
filter-punctuation true 过滤标点符号
filter-stopword false 过滤中文停用词

mode

  • top 输出复合词,子词不输出
  • atom 输出子词,复合词不输出
  • overlap 堆叠。同时输出复合词和子词

sub-word

子词计算方法
– none 不计算子词。
– index 索引分词计算模式。

测试mynlp分词器

GET _analyze
{
  "tokenizer": {
    "type":"mynlp",
    "mode":"overlap",
    "sub-word":"index",
    "personName":true,
    "filter-punctuation":false,
    "filter-stopword":false
  },
  "text":"庆祝中华人民共和国成立70周年系列论坛第五场活动举行"
}

创建索引时自定义分词器

PUT /test_index
{
    "settings": {
        "index" : {
            "analysis" : {
                "analyzer" : {
                    "mynlp" : {
                        "tokenizer" : "mynlp"
                    }
                },
                "tokenizer": {
                  "mynlp":{
                    "type":"mynlp-core",
                    "mode":"atom",
                    "sub-word":"index",
                    "personName":true,
                    "filter-punctuation":true,
                    "filter-stopword":true
                  }
                }
            }
        }
    },
    "mappings": {

      "properties": {
        "name": { 
          "type": "text",
          "analyzer": "mynlp"
        }

    }
  }
}
赞(1) 打赏
未经允许不得转载:Mayabot技术团队 » Mynlp发布ElasticSearch分词插件

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

开源项目

Mynlp开源项目

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏