1. 介绍
thulac4j是THULAC的Java 8工程化实现,相比于官方版THULAC-Java,我们做了如下工作:
规范化分词词典,并去掉一些无用词;
重写DAT(双数组Trie树)的构造算法,生成的DAT size减少了8%左右,从而节省了内存;
优化分词算法,提高了分词速率。
若想在项目中使用thulac4j,可添加依赖:
<dependency>
<groupId>io.github.yizhiru</groupId>
<artifactId>thulac4j</artifactId>
<version>${thulac4j.version}</version></dependency>thulac4j支持两种分词模式:
SegOnly模式,只分词没有词性标注;
SegPos模式,分词兼有词性标注。
// SegOnly modeString sentence = "滔滔的流水,向着波士顿湾无声逝去";
SegOnly seg = new SegOnly("models/seg_only.bin");
System.out.println(seg.segment(sentence));// [滔滔, 的, 流水, ,, 向着, 波士顿湾, 无声, 逝去]// SegPos modeSegPos pos = new SegPos("models/seg_pos.bin");
System.out.println(pos.segment(sentence));//[滔滔/a, 的/u, 流水/n, ,/w, 向着/p, 波士顿湾/ns, 无声/v, 逝去/v]SegOnly分词速度更快,但是准确率较SegPos模式要低;而SegPos具有更高的准确率,内存占用更多、分词速度较慢(请参看性能测试)。此外分词需要下载训练模型数据
网友评论

