PromeG

Think twice, code once

打造最好的Java拼音库TinyPinyin(三):API设计和测试实践

之前的两篇文章打造最好的Java拼音库TinyPinyin(一):单字符转拼音的极致优化 和 打造最好的Java拼音库TinyPinyin(二):多音字快速处理方案,详细介绍了单字符转拼音、多音字的处理这两个具体功能的高效实现细节,本文是TinyPinyin系列的完结篇,将分享TinyPinyin项目在API设计上的思考,以及测试实践。 1. 汉字转拼音API设计 1.1 字符处理接口 ...

打造最好的Java拼音库TinyPinyin(二):多音字快速处理方案

上篇文章打造最好的Java拼音库TinyPinyin(一):单字符转拼音的极致优化,介绍了单字符转拼音的设计方案,本文将介绍TinyPinyin项目中的多音字处理功能。 1. 多音字快速处理方案概览 多音字处理是汉字转拼音库的一个重要特性。多音字的识别是基于词典实现的,这是由于绝大部分情况下,一个多音字到底该取哪个拼音,是由其所处的词决定的。例如,对于“重”字,在“重要”一词中应读“ZH...

打造最好的Java拼音库TinyPinyin(一):单字符转拼音的极致优化

汉字转拼音是一个开发中经常使用的功能。其中,pinyin4j是应用较广的Java汉字转拼音库。然而,此库有不少的缺点: Jar文件较大,205KB; Pinyin4J的PinyinHelper.toHanyuPinyinStringArray 在第一次调用时耗时非常长(~2000ms); 功能臃肿,许多情况下我们不需要声调、方言; 无法添加自定义词典,进而无法有效处理多音...