11大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个:

1、学会使用11大Java开源中文分词器

2、对比分析11大Java开源中文分词器的分词效果

本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。

11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:



从上面的定义我们知道,在Java中,同样的方法名称和参数,但是返回值不同,这种情况不可以使用重载。

这两个方法的区别在于返回值,每一个分词器都可能有多种分词模式,每种模式的分词结果都可能不相同,第一个方法忽略分词器模式,返回所有模式的所有不重复分词结果,第二个方法返回每一种分词器模式及其对应的分词结果。

在这里,需要注意的是我们使用了Java8中的新特性默认方法,并使用stream把一个map的value转换为不重复的集合。

下面我们利用这11大分词器来实现这个接口:

1、word分词器



2、Ansj分词器



3、Stanford分词器



4、FudanNLP分词器



5、Jieba分词器



6、Jcseg分词器



7、MMSeg4j分词器



8、IKAnalyzer分词器



9、Paoding分词器



10、smartcn分词器



11、HanLP分词器



现在我们已经实现了本文的第一个目的:学会使用11大Java开源中文分词器。

最后我们来实现本文的第二个目的:对比分析11大Java开源中文分词器的分词效果,程序如下:



运行结果如下:

作者:liuchi1993

来源:51CTO

时间: 2024-08-03 12:13:47

11大Java开源中文分词器的使用方法和分词效果对比的相关文章

solr-英文分词器,一般英文的分词器都是以空格或特殊字符分词,并且会去掉非字母

问题描述 英文分词器,一般英文的分词器都是以空格或特殊字符分词,并且会去掉非字母 字符串分词器,一般英文的分词器都是以空格或特殊字符分词,并且会去掉非字母,有没有可以将整个字符串按字符一个一个分开,并且不去除特殊字符 如对"CN1000.09"进行分词,输入"C""CN","CN100",都能搜到

java采用中文方式显示时间的方法_java

本文实例讲述了java采用中文方式显示时间的方法.分享给大家供大家参考.具体如下: 其中t为秒,比如有时候需要计算两个任务相差多久,或者该任务何时结束或者某个任务间隔多久重新启动等适用于本方法.如果是微秒,自己先/1000 private static String chinese_period(int t){ int y, n, d, h, m, s; String time; if(t<=0) return "立即"; s = t % 60; t /= 60; m = t %

使用肖波的KTDictSeg分词器 为Lucene.net服务

最近在看Lucene.net 发现Lucene.net的中文分词资料不是很多,很早就在看肖波的KTDictSeg,觉的分词效果不错,但是没有lucene接口,看他的blog也是很长时间没有更新了 他在他的blog中提到将在下一个版本中提供对lucene的支持,我这里期待中...同时blog中提到一挥的修改版本,但是一挥的站打不开了,不知道什么原因,我刚刚看这个时间不长,查了些资料 写了下面的代码实现了KTDictSeg在Lucene.net中的调用,期待有更好的方法出现 下面附上代码 1usin

Lucene5学习之使用IKAnalyzer分词器

   之前的示例中,使用的是默认的StandardAnalyzer分词器,不能有效的进行中文分词,下面演示下如何在Lucene5.0中使用IKAnalyzer分词器.     首先下载IKAnalyzer分词器源码,IKAnalyzer分词器源码托管在OSChina的git上.下载地址: http://git.oschina.net/wltea/IK-Analyzer-2012FF 请如图下载IK的源代码:    然后打开Eclipse新建一个Java Project:      然后解压下载下

使用 Elasticsearch 的 NGram 分词器处理模糊匹配

接到一个任务:用 Elasticsearch 实现搜索银行支行名称的功能.大概就是用户输入一截支行名称或拼音首字母,返回相应的支行名称.比如,用户输入"工行"或者"gh",我需要返回"工行XXX分行"类似这样的结果. 我心里嘀咕着:数据库不是支持通配符查询吗?为什么不直接用数据库查询? 说归说,但是任务还是要完成的.之前有在网上看过一篇文章,主要就是说用 Elasticsearch 处理通配符查询不太适合,然后我在评论中看到作者推荐了一个分词器

有没有一种分词器 ,可以配置split形式分词

问题描述 现在我用的IK分词器,现在有一个字段存储是这样的 我爱java|lucene学习|CC|DD如果直接分词,则会分成 我爱 java lucene 学习 CC DD而我想单独这个字段只使用split形式的分词, 以 | 符号分词,分成 我爱java 一个词, lucene学习一个词有没有这样的形式的 问题补充:fire_wang 写道 解决方案 我已经按照你想要的切词方式,写了一个,你可以到这里下载.http://lzj0470.iteye.com/blog/1259070解决方案二:L

Lucene5学习之使用Ansj-seg分词器

    这回我们来玩玩ansj分词器,由于Lucene5.0在API上有点小变化,需要修改ansj分词器源码,重新打包jar包,然后mvn install到本地仓库才能引用到项目中.至于怎么修改以及怎么打包jar,我就不过多说明了,有点麻烦,我想偷个懒,哈哈.这里我就直接把打包后的jar分享给你们,jar包注意在底下的附件里下载.     我就说说,怎么在项目中使用ansj分词器,首先pom.xml引入ansj分词器的依赖.   Xml代码   <!-- ansj-seg -->   <

开源中文分词框架分词效果对比smartcn与IKanalyzer

一.引言: 中文分词一直是自然语言处理的一个痛处,早在08年的时候,就曾经有项目涉及到相关的应用(Lunce构建全文搜索引擎),那时的痛,没想到5年后的今天依然存在,切分效果.扩展支持.业务应用等方面依然不甚理想.收费的版本不提了,原因自不必言表,开源版本中,发现之前曾经活跃的版本,大多已经没落(好几年没更新了),存活下来的寥寥无几.我是一个守旧的人,评估版本的选择有些保守,至少目前为止,只看1.0正式版本之后的版本,0.XX的不在考虑范围之内,用了一个周末的时间,对比了十多款的样子,个人感觉源

中文分词器

1.IKAnalyzer IK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包.可与lucene配合使用. IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包.它使用了全新的正向迭代最细粒度切分算法. 项目地址:http://www.oschina.net/p/ikanalyzer/ 下载页面:http://git.oschina.net/wltea/IK-Analyzer-2012FF central repository中似乎没有. 示例代码