11大Java开源中文分词器的使用方法和分词效果对比
2023-03-09 22:10:28 时间
本文的目标有两个:
1、学会使用11大Java开源中文分词器
2、对比分析11大Java开源中文分词器的分词效果
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:
![](http://s2.51cto.com/wyfs02/M00/87/61/wKioL1feu2zyq9tFAADp-e2ClHE955.jpg)
从上面的定义我们知道,在Java中,同样的方法名称和参数,但是返回值不同,这种情况不可以使用重载。
这两个方法的区别在于返回值,每一个分词器都可能有多种分词模式,每种模式的分词结果都可能不相同,***个方法忽略分词器模式,返回所有模式的所有不重复分词结果,第二个方法返回每一种分词器模式及其对应的分词结果。
在这里,需要注意的是我们使用了Java8中的新特性默认方法,并使用stream把一个map的value转换为不重复的集合。
下面我们利用这11大分词器来实现这个接口:
1、word分词器
![](http://s5.51cto.com/wyfs02/M02/87/64/wKiom1feu4Dya5_OAADsDVg7mB4147.jpg)
2、Ansj分词器
![](http://s4.51cto.com/wyfs02/M01/87/61/wKioL1feu5KzxJLiAAE_Qkuj1Uc095.jpg)
3、Stanford分词器
![](http://s4.51cto.com/wyfs02/M00/87/64/wKiom1feu6fD2WofAAGl_WcwNf4634.jpg)
4、FudanNLP分词器
![](http://s2.51cto.com/wyfs02/M02/87/61/wKioL1feu7iBIoGqAACd01A1Lr0046.jpg)
5、Jieba分词器
![](http://s1.51cto.com/wyfs02/M01/87/64/wKiom1feu8myth5QAADlS4mNtsk822.jpg)
6、Jcseg分词器
![](http://s5.51cto.com/wyfs02/M02/87/64/wKiom1feu9fT3Vt0AAFboz20vDE119.jpg)
7、MMSeg4j分词器
![](http://s3.51cto.com/wyfs02/M02/87/61/wKioL1feu-azvdWzAAGBkvRsgFM221.jpg)
8、IKAnalyzer分词器
![](http://s4.51cto.com/wyfs02/M00/87/64/wKiom1feu_iQ68qnAAD-fB_Nl74730.jpg)
9、Paoding分词器
![](http://s5.51cto.com/wyfs02/M00/87/61/wKioL1fevAfDsM7cAAFK9R6G5ZI299.jpg)
10、smartcn分词器
![](http://s2.51cto.com/wyfs02/M02/87/64/wKiom1fevBeSawQrAAEfpb6ChQc216.jpg)
11、HanLP分词器
![](http://s1.51cto.com/wyfs02/M01/87/61/wKioL1fevCyjC4uXAAJnP34Se8M835.jpg)
现在我们已经实现了本文的***个目的:学会使用11大Java开源中文分词器。
***我们来实现本文的第二个目的:对比分析11大Java开源中文分词器的分词效果,程序如下:
![](http://s5.51cto.com/wyfs02/M01/87/64/wKiom1fevELBl9r1AALeYtTwXnE927.jpg)
运行结果如下:
![](http://s1.51cto.com/wyfs02/M02/87/64/wKiom1fevFPiYgcEAADvhmc9dKg516.jpg)
![](http://s3.51cto.com/wyfs02/M02/87/61/wKioL1fevJLQXbJxAAIfZrkxQwE595.jpg)
相关文章
- Java要抛弃祖宗的基业,Java程序员危险了!
- 十大 Java 语言特性
- JVM 三色标记算法,原来是这么回事!
- 聊聊 Spring 事务控制策略以及 @Transactional 失效问题避坑
- 写给 Java 程序员的前端 Promise 教程
- 写给 Java 程序员的前端 Promise 教程,你学会了吗?
- Java 中为什么不全部使用 Static 方法?
- Java 池化技术你了解多少?
- Java 服务 Docker 容器化优秀实践
- Spring Boot + EasyExcel导入导出,简直太好用了!
- 我们一起聊聊 Java 内存泄漏
- CentOS 下安装 Docker 极简教程
- JDK 19 功能集冻结:Java 19 只有七个新特性
- 关于 CMS 垃圾回收器,你真的懂了吗?
- 为什么会有这么多编程语言?
- 改善Java代码的八个建议
- 接口流量突增,如何做好性能优化?
- Java 以编程方式创建JAR文件
- POJO、Java Bean是如何定义的
- Spring 的 Bean 明明设置了 Scope 为 Prototype,为什么还是只能获取到单例对象?