太厉害了!程序员竟开发出这么多个汉字转拼音工具

发布日期:2018-09-12 浏览次数: 14523 次
GitHub上一直有很多有意思的开源小工具,今天和大家分享一个可以把你汉字转换成拼音的开源工具 — pinyin,例如:汉字拼音 ➜ hàn zì pīn yīn 。


截至今日,该项目已经获得了 3523 个「star」以及 489 个「fork」,而且开发者也是十分勤奋,上一次更新就在两天前。(GitHub项目地址:https://github.com/hotoo/pinyin)
 
这个开源工具就是帮助你把中文字符转换为拼音,可用于可以用于汉字注音、排序、检索。而且支持在Node 和 Web 浏览器环境运行。具有如下特性:
● 根据词组智能匹配正确的拼音。
● 支持多音字。
● 简单的繁体支持。
● 支持多种不同拼音风格。
 
而且这个小工具还有不同语言版本,包括JavaScript、Python、Go、Rust,下面我们主要介绍Node.js/JavaScript 版本:
 
1.Node.js/JavaScript 版
 
安装:
 
via npm
 

用法:
 

命令行:


方法 <Array> pinyin(words[, options])
 
将传入的中文字符串 (words) 转换成拼音符号串。options 是可选的,可以设定拼音风格,或打开多音字选项。返回二维数组,第一维每个数组项位置对应每个中文字符串位置。 第二维是各个汉字的读音列表,多音字会有多个拼音项。
 
方法 Number pinyin.compare(a, b)
 
按拼音排序的默认算法。
 
参数
 
<Boolean> options.segment:是否启用分词模式,中文分词有助于极大的降低多音字问题。 但性能会极大的下降,内存也会使用更多。
 
<Boolean> options.heteronym:是否启用多音字模式,默认关闭。关闭多音字模式时,返回每个汉字第一个匹配的拼音。启用多音字模式时,返回多音字的所有拼音列表。
 
<Object> options.style:指定拼音风格。可以通过以下几种 STYLE_ 开头的静态属性进行指定:
 
静态属性
 
.STYLE_NORMAL:普通风格,即不带声调。如:pin yin
 
.STYLE_TONE:声调风格,拼音声调在韵母第一个字母上。注:这是默认的风格。如:pīn yīn
 
.STYLE_TONE2:声调风格 2,即拼音声调以数字形式在各个拼音之后,用数字 [0-4] 进行表示。如:pin1 yin1
 
.STYLE_TO3NE:声调风格 3,即拼音声调以数字形式在注音字符之后,用数字 [0-4] 进行表示。如:pi1n yi1n
 
.STYLE_INITIALS:声母风格,只返回各个拼音的声母部分。对于没有声母的汉字,返回空白字符串。如:中国的拼音: zh g。声明风格会区分 zh 和 z,ch 和 c,sh 和 s。
 
注意:部分汉字没有声母,如 啊,饿 等,另外 y, w, yu 都不是声母, 这些汉字的拼音声母风格会返回 ""。
 
.STYLE_FIRST_LETTER:首字母风格,只返回拼音的首字母部分。
 
为什么没有 y, w, yu 几个声母?
 
因为根据《汉语拼音方案》, y,w,ü (yu) 都不是声母,在某些特定韵母无声母时,才加上 y 或 w,而 ü 也有其特定规则。
 
2.Python 版
 
Python版本地址:https://github.com/mozillazg/python-pinyin
 
安装:


使用示例:
 
Python 3(Python 2 下把 '中心' 替换为 u'中心' 即可):
 

 
3. Go 版
 
Go版本地址:https://github.com/mozillazg/go-pinyin
 
安装:
 
 
install CLI tool:
 
 
示例:
 
 
4.Rust 版
 
Rust版本地址:https://github.com/mozillazg/rust-pinyin
 
Add this to your Cargo.toml:
 
 
示例:
 
 
你以为这就完了么?当然不是,猿妹搜索了一下,GitHub上类似的项目还有很多,这边举几个相似的项目:
 
1、pinyin4j
 
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 (项目地址:https://github.com/belerweb/pinyin4j)
 
2、pinyin
 
Pinyin 是一个将中文转换为拼音的PHP工具,支持多音字,以及10w+常用词的正确音译,基于CC-CEDICT 词典。(详情:https://github.com/overtrue/pinyin)
 
3、jpinyin
 
JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。具有以下特性:
1、准确、完善的字库;Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字;
2、拼音转换速度快;经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒。
3、多拼音格式输出支持;JPinyin支持多种拼音输出格式:带音标、不带音标、数字表示音标以及拼音首字母输出格式;
4、常见多音字识别;JPinyin支持常见多音字的识别,其中包括词组、成语、地名等;
5、简繁体中文转换;
6、支持添加用户自定义字典(项目地址:https://github.com/qzw1210/jpinyin)
 
4、PinYin4Objc
 
PinYin4Objc是一个流行的objective-c库,支持中文(简体和繁体)字符和流行的拼音系统之间的转换,它的性能非常高效,第一次缓存数据,你可以使用async方法和块,这可以避免ui阻塞,并顺利运行。拼音的输出格式可以定制。(详情:https://github.com/kimziv/PinYin4Objc)
 
5、chineseandpinyin
 
Java版汉字转拼音工具,支持多样化输出、拼音排序、中英混合排序!(详情:https://github.com/51isunshine/chineseandpinyin)

转自:开源最前线
分享到:
×

微信扫一扫分享