Jcseg 2.6.2 发布 - Java轻量级开源自然语言处理包
时间:2020-02-27 11:51 来源:linux.it.net.cn 作者:IT
Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同时提供了最新版本的lucene,solr和elasticsearch的分词接口!
Jcseg 2.6.2版本主要功能都是为Gitee的搜索设计的,体验可以搓:https://search.gitee.com/?skin=rec&type=repository&q=%E5%88%86%E8%AF%8D
2.6.2版本主要更新内容如下:
1,升级到对lucene 8.20,solr 8.2.0和Elasticsearch的7.4.2版本的支持,Gitee搜索目前用的Elasticseach 7.4.2版本。
2,增加solr和elasticsearch索引级别的分词配置,可以不同索引使用不同的分词配置,具体可以参考Gitee搜索资源分享中的mapping:https://gitee.com/oschina/gitee-search-share。
3,部分已有词库的优化,拼音,词性,同义词等。
4,二次切分优化,增加中英混合词的的二次切分支持。
5,增加n-gram切分模式,可以自定义n,实现n-gram的切分,例如:”中文分词“ 1-gram会被切分成”中 文 分 词“,此功能在Gitee的搜索提示中用到了。
6,增加英文词条的切分,大部分的分词器对于英文都只是通过空格或者标点来切分,这个版本jcseg增加了对英文的切分,同时也是通过mmseg算法来去除歧义,例如:
英文组合词条:
jcseg~tokenizer:complex>> openarkcompiler
分词结果:
open[0,4]/n ark[4,3]/n compiler[7,8]/n
Done, total:15, tokens:3, in 0.00000sec
例如Gitee搜索”openark“:https://search.gitee.com/?q=openark&skin=rec&type=repository
拼音组合词条:
jcseg~tokenizer:complex>> guanyuwomen
分词结果:
guanyu[0,6]/p women[6,5]/n
Done, total:11, tokens:2, in 0.00105sec
例如:Gitee搜索"中文huancunxitong":https://search.gitee.com/?q=huancunxitong&skin=rec&type=repository
7,增加英文词库和拼音词库,用于支撑上述的英文切分,这个英文也包括拼音的切分,例如:Gitee搜索的拼音和汉语相互搜索:
搜索”fenci“: https://search.gitee.com/?q=fenci&skin=rec&type=repository
搜索”分词“: https://search.gitee.com/?q=%E5%88%86%E8%AF%8D&skin=rec&type=repository
搜索”中文分词“:https://search.gitee.com/?q=%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D&skin=rec&type=repository
搜索”中文fenci“:https://search.gitee.com/?q=%E4%B8%AD%E6%96%87fenci&skin=rec&type=repository
8,同义词优化,同义词词库和offset逻辑无缝对接lucene的increasement设计,便于实现同义词的检索和高亮,例如:Gitee搜索的同义词效果如下:
-
搜索”中文分词“:https://search.gitee.com/?q=%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D&skin=rec&type=repository
-
搜索”汉语分词“:https://search.gitee.com/?q=%E6%B1%89%E8%AF%AD%E5%88%86%E8%AF%8D&skin=rec&type=repository
-
搜索”普通话分词“:https://search.gitee.com/?q=%E6%99%AE%E9%80%9A%E8%AF%9D%E5%88%86%E8%AF%8D&skin=rec&type=repository
9,更改了Jcseg的API设计,使用函数接口来代替部分的class查找,使用更方便,API变更为如下:
//创建SegmenterConfig分词配置实例,自动查找加载jcseg.properties配置项来初始化
SegmenterConfig config = new SegmenterConfig(true);
//创建默认单例词库实现,并且按照config配置加载词库
ADictionary dic = DictionaryFactory.createSingletonDictionary(config);
//依据给定的ADictionary和SegmenterConfig来创建ISegment
//为了Api往后兼容,建议使用SegmentFactory来创建ISegment对象
ISegment seg = ISegment.COMPLEX.factory.create(config, dic);
//备注:以下代码可以反复调用,seg为非线程安全
//设置要被分词的文本
String str = "研究生命起源。";
seg.reset(new StringReader(str));
//获取分词结果
IWord word = null;
while ( (word = seg.next()) != null ) {
System.out.println(word.getValue());
}
10,BUG修复:
-
英文切分的offset问题:https://gitee.com/lionsoul/jcseg/issues/I19IQ4
-
NLP日期实体识别问题:https://gitee.com/lionsoul/jcseg/issues/I17DMS
maven仓库(中央仓库同步中...):
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>jcseg-core</artifactId>
<version>2.6.2</version>
</dependency>
下载地址:
Gitee: https://gitee.com/lionsoul/jcseg/tree/v2.6.2-release
Github: https://github.com/lionsoul2014/jcseg/releases/tag/v2.6.2-release
(责任编辑:IT)
Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同时提供了最新版本的lucene,solr和elasticsearch的分词接口!
2.6.2版本主要更新内容如下: 1,升级到对lucene 8.20,solr 8.2.0和Elasticsearch的7.4.2版本的支持,Gitee搜索目前用的Elasticseach 7.4.2版本。 2,增加solr和elasticsearch索引级别的分词配置,可以不同索引使用不同的分词配置,具体可以参考Gitee搜索资源分享中的mapping:https://gitee.com/oschina/gitee-search-share。 3,部分已有词库的优化,拼音,词性,同义词等。 4,二次切分优化,增加中英混合词的的二次切分支持。 5,增加n-gram切分模式,可以自定义n,实现n-gram的切分,例如:”中文分词“ 1-gram会被切分成”中 文 分 词“,此功能在Gitee的搜索提示中用到了。
6,增加英文词条的切分,大部分的分词器对于英文都只是通过空格或者标点来切分,这个版本jcseg增加了对英文的切分,同时也是通过mmseg算法来去除歧义,例如: 英文组合词条: jcseg~tokenizer:complex>> openarkcompiler 分词结果: open[0,4]/n ark[4,3]/n compiler[7,8]/n Done, total:15, tokens:3, in 0.00000sec 例如Gitee搜索”openark“:https://search.gitee.com/?q=openark&skin=rec&type=repository 拼音组合词条: jcseg~tokenizer:complex>> guanyuwomen 分词结果: guanyu[0,6]/p women[6,5]/n Done, total:11, tokens:2, in 0.00105sec 例如:Gitee搜索"中文huancunxitong":https://search.gitee.com/?q=huancunxitong&skin=rec&type=repository 7,增加英文词库和拼音词库,用于支撑上述的英文切分,这个英文也包括拼音的切分,例如:Gitee搜索的拼音和汉语相互搜索:
搜索”fenci“: https://search.gitee.com/?q=fenci&skin=rec&type=repository 8,同义词优化,同义词词库和offset逻辑无缝对接lucene的increasement设计,便于实现同义词的检索和高亮,例如:Gitee搜索的同义词效果如下:
9,更改了Jcseg的API设计,使用函数接口来代替部分的class查找,使用更方便,API变更为如下: //创建SegmenterConfig分词配置实例,自动查找加载jcseg.properties配置项来初始化 SegmenterConfig config = new SegmenterConfig(true); //创建默认单例词库实现,并且按照config配置加载词库 ADictionary dic = DictionaryFactory.createSingletonDictionary(config); //依据给定的ADictionary和SegmenterConfig来创建ISegment //为了Api往后兼容,建议使用SegmentFactory来创建ISegment对象 ISegment seg = ISegment.COMPLEX.factory.create(config, dic); //备注:以下代码可以反复调用,seg为非线程安全 //设置要被分词的文本 String str = "研究生命起源。"; seg.reset(new StringReader(str)); //获取分词结果 IWord word = null; while ( (word = seg.next()) != null ) { System.out.println(word.getValue()); } 10,BUG修复:
maven仓库(中央仓库同步中...): <dependency> <groupId>org.lionsoul</groupId> <artifactId>jcseg-core</artifactId> <version>2.6.2</version> </dependency>
下载地址:
Gitee: https://gitee.com/lionsoul/jcseg/tree/v2.6.2-release |