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

相关文章
|
缓存 JavaScript Cloud Native
阿里云发布 Spring Boot 新脚手架,真香
本文,围绕 spring initializr 框架,以 start.spring.io 为例,全面的给大家介绍如何使用和扩展这个框架,以及背后的运行原理。
59041 1
阿里云发布 Spring Boot 新脚手架,真香
|
API 图形学
Unity设置播放模式下始终先执行指定的场景
通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。
2179 0
|
6月前
|
Web App开发 人工智能 安全
推荐5个堪称神器的效率工具
本文推荐了5款高效实用的软件:Keypirinha(快速启动工具)、Brave浏览器(隐私安全)、3171.CN(在线工具集)、ScreenSlice(分屏优化)和NeatMouse(键鼠辅助),适用于办公、学习等多种场景,提升效率神器。
400 0
|
10月前
|
数据采集 JSON 数据挖掘
Elasticsearch 的DSL查询,聚合查询与多维度数据统计
Elasticsearch的DSL查询与聚合查询提供了强大的数据检索和统计分析能力。通过合理构建DSL查询,用户可以高效地搜索数据,并使用聚合查询对数据进行多维度统计分析。在实际应用中,灵活运用这些工具不仅能提高查询效率,还能为数据分析提供深入洞察。理解并掌握这些技术,将显著提升在大数据场景中的分析和处理能力。
548 20
|
Ubuntu Linux Docker
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
22173 4
|
监控 NoSQL MongoDB
MongoDB全文检索: 助力快速精准的文本搜索
MongoDB全文检索: 助力快速精准的文本搜索
971 0
|
前端开发 JavaScript 开发者
Angular Material 超厉害!与传统自定义 UI 大对比,构建美观一致 UI 的绝佳选择!
【8月更文挑战第31天】在前端开发中,构建美观一致的用户界面至关重要。Angular Material 是一个基于 Material Design 规范的强大 UI 组件库,提供丰富的预定义组件和设计指南。本文通过对比 Angular Material 和传统自定义 UI,展示了前者在设计理念、组件丰富度、响应式设计及主题定制方面的显著优势。
466 0
|
JavaScript 前端开发 算法
设计一个简单的JavaScript版“俄罗斯方块”游戏
【6月更文挑战第16天】构建JavaScript版俄罗斯方块涉及初始化游戏环境、生成与控制方块、处理碰撞消除、游戏结束判断及循环管理。伪代码示例展示了游戏核心逻辑,包括初始化、方块生成、移动、锁定、碰撞检测、行消除、游戏结束条件及状态更新。实际实现需考虑更多细节,如方块形状、动画、音效等。
412 9
|
网络协议 安全 算法
RIP两个版本:RIP-1和RIP-2
【7月更文挑战第14天】
611 0
RIP两个版本:RIP-1和RIP-2
|
数据可视化 测试技术 数据安全/隐私保护
​十个常见的 Python 脚本 (详细介绍 + 代码举例)
​十个常见的 Python 脚本 (详细介绍 + 代码举例)
544 0