Pinyin.js 将汉字转拼音 JavaScript 插件
Pinyin.js 是一个使用 JavaScript 将汉字转换为拼音的插件,为了方便前端的排序。并且支持多音字。同样也支持转为带声调的拼音。这个版本同时支持在 Node 和 Web 浏览器环境运行,同时还有基于Python的扩展。
特性
- 根据词组智能匹配最正确的拼音。
- 支持多音字。
- 简单的繁体支持。
- 支持多种不同拼音风格。
安装
via npm:
npm install pinyin
via spm:
spm install pinyin
用法
开发者:
var pinyin = require("pinyin");
console.log(pinyin("中心")); // [ [ 'zhōng' ], [ 'xīn' ] ]
console.log(pinyin("中心", {
heteronym: true // 启用多音字模式
})); // [ [ 'zhōng', 'zhòng' ], [ 'xīn' ] ]
console.log(pinyin("中心", {
heteronym: true, // 启用多音字模式
segment: true // 启用分词,以解决多音字问题。
})); // [ [ 'zhōng' ], [ 'xīn' ] ]
console.log(pinyin("中心", {
style: pinyin.STYLE_INITIALS, // 设置拼音风格
heteronym: true
})); // [ [ 'zh' ], [ 'x' ] ]
命令行:
$ pinyin 中心
zhōng xīn
$ pinyin -h
API
方法 <Array> pinyin(words[, options])
将传入的中文字符串 (words) 转换成拼音符号串。
options 是可选的,可以设定拼音风格,或打开多音字选项。
返回二维数组,第一维每个数组项位置对应每个中文字符串位置。 第二维是各个汉字的读音列表,多音字会有多个拼音项。
参数
<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_INITIALS
声母风格,只返回各个拼音的声母部分。
如:中国
的拼音 zh g
.STYLE_FIRST_LETTER
首字母风格,只返回拼音的首字母部分。
如:p y
Test
npm test
Q&A
node 版和 web 版有什么异同?
pinyin
目前可以同时运行在 Node 服务器端和 Web 浏览器端。 API 和使用方式完成一致。
但 Web 版较 Node 版稍简单,拼音库只有常用字部分,没有使用分词算法, 并且考虑了网络传输对词库进行了压缩处理。
由于分词和繁体中文的特性,部分情况下的结果也不尽相同。
特性 | Web 版 | Node 版 |
---|---|---|
拼音库 | 常用字库。压缩、合并 | 完整字库。不压缩、合并 |
分词 | 没有分词 | 使用分词算法,多音字拼音更准确。 |
拼音频度排序 | 有根据拼音使用频度优先级排序。 | 同 Web 版。 |
繁体中文 | 没有繁体中文支持。 | 有简单的繁简汉字转换。 |
由于这些区别,测试不同运行环境的用例也不尽相同。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论