node-pinyin 汉字拼音转换工具

发布于 2021-01-04 21:14:19 字数 2376 浏览 2242 评论 0

将汉字转为拼音,支持多音字。本工具 fork 自 https://github.com/hotoo/pinyin,原库以MIT协议开源,本库也以MIT协议开源。

安装

npm install node-pinyin

用法

var pinyin = require("node-pinyin");
console.log(pinyin("重心")); // [ [ 'zhòng' ], [ 'xīn' ] ]
console.log(pinyin("重心", {
  heteronym: true // 启用多音字模式
})); // [ [ 'zhòng', 'chóng' ], [ 'xīn' ] ]

命令行:

$ pinyin 重心
zhòng xīn
$ pinyin -h

API

方法 <Array> pinyin(words[, options])

将传入的中文字符串(words)转换成拼音符号串。

options 是可选的,打开多音字选项和设定返回风格。

返回二维数组,第一维每个数组项位置对应每个中文字符串位置。 第二维是各个汉字的读音列表,多音字会有多个拼音项。

参数 <Boolean> options.heteronym

是否启用多音字模式,默认关闭。

  • 关闭多音字模式时,返回每个汉字第一个匹配的拼音。
  • 启用多音字模式时,返回多音字的所有拼音列表。

参数 <String> options.style

指定拼音 风格。可以通过以下几种属性值进行指定。

normal

普通风格,即不带音标。如:pin yin

tone

声调风格,拼音声调在韵母第一个字母上。注:这是默认的风格。如:pīn yīn

toneWithNumber

声调风格,即拼音声调在各个拼音之后,用数字 [0-4] 进行表示。如:pin1 yin1

initials

声母风格,只返回各个拼音的声母部分。如:中国 的拼音 zh g,例外,对于只有韵母的汉字(如『爱、啊』等),会先转成不带音标的普通风格。

firstLetter

首字母风格,只返回拼音的首字母部分。如:p y

Test

npm test

性能

源库由于启用了分词和词组匹配,导致内存占用极大,运算时间长,本库做了精简。

/benchmark 下可运行性能测试脚本,以 short.js 为例,在 Macbook Pro(2.5 GHz Intel Core i5 / 8 GB 1600 MHz DDR3)上:

源库输出

pinyin: 1076ms
146112512

本库输出

# 0.2.0
pinyin: 12ms
1150976
# 0.1.0
pinyin: 131ms
31199232
项目源库本库百分比
运算时间1076ms12ms1.11%
内存占用139.3M1.1M0.79%

Q&A 场景问题

本库与 fork 源库有哪些差异

  • 源库支持同时支持在Node和浏览器端,本库只考虑Node环境
  • 源库支持基于词组的精确转换,如重心中的,不会得到chong这个读音,本库去掉了这个特性
  • 源库支持简单的简繁转换,本库不支持
  • 源库内存占用大,运算时间长,本库内存和运算时间均有大幅优化

项目地址:https://www.npmjs.com/package/node-pinyin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

沧笙踏歌

文章 0 评论 0

山田美奈子

文章 0 评论 0

佚名

文章 0 评论 0

岁月无声

文章 0 评论 0

暗藏城府

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文