汉字转拼音函数 linux,汉字转拼音项目pinyin-plus开源

pinyin-plus

汉字转拼音的库,有如下特点

基于拼音词库的数据初始化分词引擎进行分词,准确度高,解决多音字的问题

支持繁体字

支持自定义词库,词库格式同cc-cedict字典格式

api 简单,分为普通模式、索引模式

使用场景

汉字转拼音,常用于索引引擎场景创建拼音的索引,这个场景的问题一般由两种实现路径,一种是直接使用带拼音的的分词 插件,会自动帮你创建出拼音的索引,还有一种就是自己将汉字转换为拼音字符串,采用空格分隔分词来达到定制化索引的目的。 不论哪种实现路径,都离不开分词和拼音转换。pinyin-plus的特点是,索引分词的词库和拼音的词库是基于同一套词库, 所以多音词的准确度特别高,而且词库的格式保留了开源词典的格式,词库可以轻松的定时更新。同时也预留了自定义词库的扩展 接口,保留定制化需求的高优先级

性能

测试服务参见:src/test/java/com/taptap/pinyin/PinYinWebApiTest.java

#pinyin-plus 的压测数据,测试词语:率土之滨

kl@kldeMacBook-Pro-6 arthas % wrk -t16 -c100 -d15s --latency http://localhost:8080/%E7%8E%87%E5%9C%9F%E4%B9%8B%E6%BB%A8

Running 15s test @ http://localhost:8080/%E7%8E%87%E5%9C%9F%E4%B9%8B%E6%BB%A8

16 threads and 100 connections

Thread Stats Avg Stdev Max +/- Stdev

Latency 733.97us 138.45us 16.40ms 96.12%

Req/Sec 8.19k 293.50 8.90k 87.83%

Latency Distribution

50% 718.00us

75% 739.00us

90% 785.00us

99% 1.02ms

1970023 requests in 15.10s, 266.78MB read

Requests/sec: 130469.56

Transfer/sec: 17.67MB

添加依赖

grlade

compile "com.taptap:pinyin-plus:1.0"

maven

com.taptap

pinyin-plus

1.0

使用

//普通模式示例,汉字转换拼音后,单子采用空格隔开输出

@Test

void testToPinYin() {

String pinyin = PinyinPlus.to("率土之滨");

System.err.println(pinyin);

Assertions.assertEquals("shuai tu zhi bin", pinyin);

}

//索引模式示例,汉字转换拼音后,词组采用空格隔开输出

@Test

void testToPinYin2() {

String pinyin = PinyinPlus.toIndex("写的射雕英雄传");

System.err.println(pinyin);

Assertions.assertEquals("xie de shediaoyingxiongzhuan", pinyin);

}

自定义词库

在项目resources目录下,新增custom_cedict_ts.u8文本文件,输入如下格式数据,#开头的为注释,如:

#自定义词库

血花 血花 [xue4 hua1] //

格式保留和开源词库cc-cedict一样的风格,遇到相同的词组,自定义的优先级最高,会覆盖系统默认的词组

鸣谢

本文同步分享在 博客“kailing”(other)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值