ideaseg
是 Indexea 推出的一个基于最新的 HanLP 自然语言处理工具包实现的中文分词器,
包含了最新的模型数据,同时移除了 HanLP 所包含的非商业友好许可的 NeuralNetworkParser 相关代码和数据。
HanLP
相比其他诸如 IK
、jcseg
等分词器而言,在分词的准确率上有巨大的提升,但速度上有所牺牲。
通过对 HanLP
进行优化配置,ideaseg
在准确度和分词速度上取得了最佳的平衡。
与其他基于 HanLP
的插件相比,ideaseg
同步了最新 HanLP
的代码和数据,去除了无法商用的相关内容;实现了自动配置;
包含了模型数据,无需自行下载,使用简单方便。
ideaseg
提供三个模块包括:
core
~ 核心分词器模块elasticsearch
~ ElasticSearch 的 ideaseg 分词插件 (最高支持 7.10.2 版本)opensearch
~ OpenSearch 的 ideaseg 分词插件 (默认版本 2.4.1)关于 ElasticSearch
的版本说明,由于从 7.11.1 版本开始 Elastic 修改 ES 的许可证,同时修改了插件的权限策略,
不再允许插件对文件进行读写。由于 HanLP
本身的模型数据很大,为了提升速度其处理机制需要在插件的数据目录下生成一些相当于缓存的文件。
因此,如果你使用的是 ElasticSearch
请尽量用 7.10.2 或者以下的版本,推荐使用 OpenSearch
。
此外 data
包含 HanLP
的模型数据。
由于包含数据模型体积较大(打包后四五百兆),再加上 ElasticSearch
的插件机制严格绑定引擎本身的版本,而且版本众多,因此本项目不提供预编译的二进制版本,你需要自行下载源码进行构建。
以下是插件的构建过程,在开始之前请先安装好 git
、java
、maven
等相关工具。
首先确定你的 ElasticSearch
或者 OpenSearch
的具体版本,假设你使用的是 ElasticSearch
7.10.2 版本,
请使用文本编辑器打开 ideaseg/elasticsearch/pom.xml
文件,修改 elasticsearch.version
对应的值为 7.10.2
(如果是 OpenSearch
请修改 opensearch/pom.xml
)。
保存文件并打开命令行窗口,执行如下命令开始构建:
$ git clone https://gitee.com/indexea/ideaseg
$ cd ideaseg
$ mvn install
构建完成后,将在 elasticsearch/target
和 opensearch/target
各生成两个插件文件为 ideaseg.zip
。
构建完成后,我们可以利用 ElasticSearch
或 OpenSearch
提供的插件管理工具进行安装。
ElasticSearch
对应的插件管理工具为 <elasticsearch>/bin/elasticsearch-plugin
,
而 OpenSearch
对应的管理工具为 <opensearch>/bin/opensearch-plugin
。
其中 <elasticsearch>
和 <opensearch>
为两个服务安装后所在的目录。
$ bin/elasticsearch-plugin install file:///<ideaseg>/elasticsearch/target/ideaseg.zip
$ bin/opensearch-plugin install file:///<ideaseg>/opensearch/target/ideaseg.zip
由于新版本的 ElasticSearch
和 OpenSearch
在安全策略上有所变化,因此在安装完插件后可能会出现启动失败的情况。
出现这种情况可以复制本项目中的 jvm.policy
文件到 <elasticsearch>/config
或者 <opensearch>/config
目录下,
然后修改 jvm.options 文件,在文件末尾添加如下内容:
-Djava.security.policy=<elasticsearch>/config/jvm.policy
其中 <ideaseg>
为 ideaseg
源码所在的路径。要特别注意到是路径前必须有 file://
,如果是 Windows 系统,则需要路径前添加 file:///
,例如 file:///D:\WORKDIR\Indexea\ideaseg\elasticsearch\target\ideaseg.zip
。
安装过程会询问插件所需的权限,回车确认即可完成安装,安装完毕需要重启服务才能让插件生效。
接下来你可以使用分词测试工具来对插件进行测试,如下所示:
POST _analyze
{
"analyzer": "ideaseg",
"text": "你好,我用的是 ideaseg 分词插件。"
}
ideaseg
提供三种分词模式,分别是:
名称 | analyzer | 版本 | 说明 |
---|---|---|---|
标准中文分词 | ideaseg | v1.0 | 支持 NLP 技术的普通中文分词器 |
带拼音的中文分词 | ideaseg_pinyin | v1.0 | 在标准中文分词基础上增加拼音,同时保留原始的中文 |
支持多语种的中文分词 | ideaseg_multilang | v1.1 | 适配多语种的混合分词,要求不同语种的句子使用包括逗号、句号、分号等符号隔开,中文的词条同时包含拼音词条 |
注: 不同的版本请见源码仓库中对应的标签。
关于分词测试的详情请参考 ElasticSearch 官方文档。
如果你在使用 ideaseg
过程中有任何问题,请通过 Issues 提出。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。