java 汉字转拼音

本次调研3种工具pinyin4jjpinyinhanlp经过从 运行时间;词典维护代价;源代码社区活跃程度及更新速度 几方面考虑,推荐使用hanlp进行汉语转拼音

1. Pinyin4j

虽然此jar包描述信息包括可以对多音字进行识别,但是其处理逻辑是对多音字取第一个拼音。例如”长”的拼音数组为 result=[“zhang”,”长”].其返回形式永远是result[0]

因此,此jar包支持通过添加词典的方式,对汉字进行转拼音。词典格式如下:

 

可以额外增加词典,使用时在程序前加入如下代码即可。字符串为词典的存储路径。

MultiPinyinConfig.multiPinyinPath="";

但是此jar包对此词典的存储方式为trie树,虽然效率也较高,相较以下两个效率较低。

jar最近版本为16版本,较长时间没人维护。

2.  Jpinyin

jar也支持通过添加词典的方式对汉字进行转拼音。词典的格式如下:

 

若需要添加词典,需要下载源码,将原词典的基础上进行添加。

jar包对词典的存储采用的数据结构为doubleArrayTrie。相较于trie,效率明显提高。

3. Hanlp

此包支持原生的mavenjar包的使用,如用这种方式,无法进行词典的扩展。

因此推荐使用源代码+data的模式进行汉字转拼音。此词典的格式如下:

 

下载下源代码和data文件后,需在classpath下添加 hanlp.properties文件,通过root=的方式指明data文件夹的位置。

相对于前两个,此词典的维护方式类似于pinyin4j,十分方便。但是需要源代码的编译(此点又类似于Jpinyin)。但是这个在内存中存储字典采用了DoubleArrayTrie的数据结构+ac自动机的高效检索方式,效率远高于前两者。同时Hanlp也支持其余的nlp操作,为以后添加新功能做了一个小铺垫。同时hanlp.同时社区活跃人数多,更新快。

因此推荐hanlp进行

原文地址:https://www.cnblogs.com/dhName/p/12611726.html