翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了.
GitHub 传送门: https://github.com/Lofanmi/pinyin-golang
如果说基于汉字拼音字典, 逐个汉字替换, 也是可以转换的, 但是碰到多音字就很麻烦了. 而基于词库, 最起码可以解决大多数的多音字的转换, 人名姓氏的转换.
最开始我用了 CC-CEDICT 词典, 基于词组的长度, 以及英文释义的丰富程度, 来决定替换的优先级, 词组越长优先替换, 英文解释越丰富, 说明它越常用, 拥有更高的优先级, 后来发现它很多汉字都没有收录, 更别说生僻字了.
现在我把 安正超 的 PHP 开源项目 overtrue/pinyin 中的词库搬过来, 整理成一个 []string
放在 go 文件里面, 978K
, 编译完也不需要依赖词库了, 非常符合 Go 的气质.
当然也不能说它可以解决 100% 的转换, 多多少少肯定会有瑕疵, 但是问题不大, 完善好词库, 对付一般的转换是绝对没问题的. 如果想完全解决, 词库定会无比庞大…
用法很简单, 接口都很清晰, 不再赘述.
INSTALL
go get -u -v github.com/Lofanmi/pinyin-golang/pinyin
DEMO
package m