中文分词工具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   ,如需转载请自行联系原作者

相关文章
|
6月前
|
自然语言处理 前端开发 物联网
社区供稿 |【中文Llama-3】Chinese-LLaMA-Alpaca-3开源大模型项目正式发布
Chinese-LLaMA-Alpaca-3开源大模型项目正式发布,开源Llama-3-Chinese-8B(基座模型)和Llama-3-Chinese-8B-Instruct(指令/chat模型)
|
人工智能 计算机视觉
Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
|
1月前
|
人工智能 Rust Apache
|
1月前
|
物联网 5G UED
|
算法 数据安全/隐私保护 芯片
快速入门数字芯片设计,UCSD ECE111(十一)Project的一些注意事项
快速入门数字芯片设计,UCSD ECE111(十一)Project的一些注意事项
138 0
|
自然语言处理 索引
【ES系列三】——ES集成ik分词并测试
解压后的结构如下图(需要放到elasticsearch安装目录的plugins文件夹下进行解压)
|
数据采集 自然语言处理 算法
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
50745 1
java应用集成HanLP进行中文自然语言分词详细完整案例以及demo源码
|
Go 数据库 Python
Bingo(Cytoscape插件)GO功能富集分析
转录组分析中基因的GO富集分析这步有很多软件可以选择,这次我们来介绍下如何利用Cytoscape软件中的一个简单又好用的Bingo小插件完成富集的工作,Cytoscape其实是一个做网络图的软件,所以使用Bingo的这种方法特别之处就在于富集的结果是可以直接以网络图的形式呈现,类似于下图这种效果,区别于其他的软件大多只生成表的形式。
615 0
|
机器学习/深度学习 Ubuntu Linux
Atlas 200 DK开发者套件基于CANN的垃圾分类实验踩坑指南
Atlas 200 DK开发者套件基于CANN的垃圾分类实验踩坑指南
Atlas 200 DK开发者套件基于CANN的垃圾分类实验踩坑指南
|
开发工具 git
我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】
我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】
166 0
我的Go+语言初体验——【三、spx案例测试_许式伟先生推荐补充(附-视频)】