中文分词工具thulac4j发布

1. 介绍

thulac4j是THULAC的Java 8工程化实现,相比于官方版THULAC-Java,我做了如下工作:

  1. 规范化分词词典,并去掉一些无用词;
  2. 重写DAT(双数组Trie树)的构造算法,生成的DAT size减少了8%左右,从而节省了内存;
  3. 优化分词算法,提高了分词速率。

若想在项目中使用thulac4j,可添加依赖:

<dependency>
  <groupId>io.github.yizhiru</groupId>
  <artifactId>thulac4j</artifactId>
  <version>${thulac4j.version}</version>
</dependency>
// SegOnly mode
String sentence = "滔滔的流水,向着波士顿湾无声逝去";
SegOnly seg = new SegOnly("models/cws_model.bin", "models/cws_dat.bin");
List<String> words = seg.segment(sentence);
// [滔滔, 的, 流水, ,, 向着, 波士顿湾, 无声, 逝去]

// SegPos mode
SegPos pos = new SegPos("models/model_c_model.bin", "models/model_c_dat.bin");
List<SegItem> words = pos.segment(sentence);
// [滔滔/a, 的/u, 流水/n, ,/w, 向着/p, 波士顿湾/ns, 无声/v, 逝去/v]

模型数据较大,没有放在jar包与源码。训练模型下载及更多使用说明,请参看Getting Started.

thulac4j还支持自定义词典:

seg.setUserWordsPath("<user-words-path>");

自定义词典中的词为行分隔,格式如下:

中国人
thulac4j
中文分词

支持繁体转简体:

Simplifier simplifier = new Simplifier();
String s = simplifier.t2s("世界商機大發現");

2. 测评

测评主要从效果(准确率、召回率、F1值)、性能方面进行比较,测评结果见wiki。从测评结果看出,thulac4j的兼顾效果与速率。

最后,欢迎大家使用并pull request;中文分词thulac4j的QQ交流群:373215255


本文转自 Treant 博客园博客,原文链接:http://www.cnblogs.com/en-heng/p/6526598.html   ,如需转载请自行联系原作者

上一篇:shell脚本实例之Charpter8-14


下一篇:mysql 主从复制简单部署过程