本文共 2226 字,大约阅读时间需要 7 分钟。
pinyin
pinyin 是 java 实现的高性能中文拼音转换工具。
创作目的
想为 java 设计一款便捷易用的拼音工具。
特性
极简的 api 设计
支持转换长文本
支持多音字
支持多种拼音标注方式
支持中文分词
快速开始
准备
jdk 1.7+
maven 引入
com.github.houbb
pinyin
0.0.4
快速开始
返回中文的拼音
使用 PinyinHelper.toPinyin(string) 进行中文转换。
String pinyin = PinyinHelper.toPinyin("我爱中文");
Assert.assertEquals("wǒ ài zhōng wén", pinyin);
返回多音字列表
使用 PinyinHelper.toPinyin(char) 获取多音字的读音列表。
List pinyinList = PinyinHelper.toPinyin('重');
Assert.assertEquals("[zhòng, chóng, tóng]", pinyinList.toString());
分词特性
默认支持中文分词,对用户透明。
String pinyin = PinyinHelper.toPinyin("重庆火锅");
Assert.assertEquals("chóng qìng huǒ guō", pinyin);
String pinyin2 = PinyinHelper.toPinyin("分词也很重要");
Assert.assertEquals("fēn cí yě hěn zhòng yào", pinyin2);
指定拼音标注形式
api
/**
* 转换为拼音
* @param string 原始信息
* @param styleEnum 样式枚举
* @return 结果
* @since 0.0.3
*/
public static String toPinyin(final String string, final PinyinStyleEnum styleEnum)
PinyinStyleEnum 样式枚举
枚举
说明
例子
DEFAULT
默认模式,拼音声调在韵母第一个字母上。
pīn yīn
NORMAL
普通模式,即不带声调。
pin yin
NUM_LAST
数字标注模式,即拼音声调以数字形式在各个拼音之后,用数字 1-5 进行表示。
pin1 yin1
FIRST_LETTER
首字母模式,只返回拼音的首字母部分。
p y
测试案例
DEFAULT
String pinyin = PinyinHelper.toPinyin("我爱中文", PinyinStyleEnum.DEFAULT);
Assert.assertEquals("wǒ ài zhōng wén", pinyin);
NORMAL
String pinyin = PinyinHelper.toPinyin("我爱中文", PinyinStyleEnum.NORMAL);
Assert.assertEquals("wo ai zhong wen", pinyin);
NUM_LAST
String pinyin = PinyinHelper.toPinyin("我爱中文", PinyinStyleEnum.NUM_LAST);
Assert.assertEquals("wo3 ai4 zhong1 wen2", pinyin);
FIRST_LETTER
String pinyin = PinyinHelper.toPinyin("我爱中文", PinyinStyleEnum.FIRST_LETTER);
Assert.assertEquals("w a z w", pinyin);
后期 Road-Map
支持中文繁简体
默认关闭该功能
拼音转汉字
用户自定义相关
用户自定义词组
用户自定义分词
benchmark
性能对比时使用相同的机器,相同测试文本,验证相同的次数。
均提前做好预热处理,可供参考。
单个分词
对比函数
对比次数
对比内容
耗时
Pinyin4j toHanyuPinyinStringArray()
100w 次
相同文本随机选择一个字符
621 ms
pinyin toPinyin()
100w 次
相同文本随机选择一个字符
317 ms
字符串分词
对比函数
对比次数
对比内容
耗时
Pinyin4j toHanyuPinyinString()
1w 次
相同长文本
33002 ms
pinyin toPinyin()
1w 次
相同长文本
17975 ms
而且 Pinyin4j 的汉语字符串转换是不支持分词的,本项目在支持分词的情况下速度基本依然是 pinyin4j 的两倍。
技术鸣谢
segment 提供的中文分词。
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍]http://www.zyiz.net/tech/detail-99566.html
转载地址:http://todnv.baihongyu.com/