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進行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM