pinyin-pro
TypeScript icon, indicating that this package has built-in type declarations

3.20.2 • Public • Published

pinyin-pro Logo

NPM version GITHUB star build-passing NPM Downloads Coverage Status DeepScan grade MIT-license GITHUB-language

📖 介绍

pinyin-pro 是一个专业的 js 汉字拼音转换库,功能丰富、准确率高、性能优异。

中文文档 | English Docs | 在线运行

🎨 特色功能

  • 支持拼音/声母/韵母/首字母/音调/全部信息
  • 支持人名姓氏模式
  • 支持文本和拼音匹配
  • 支持自定义拼音
  • 支持获取带拼音汉字的 HTML 字符串
  • 支持获取汉字的所有拼音
  • 支持拼音输入转换
  • 极致的性能和极高的拼音识别准确率

🔨 安装

npm 安装

npm install pinyin-pro

浏览器引入

<script src="https://unpkg.com/pinyin-pro"></script>

💡 使用示例

全部功能的使用说明文档请查看在线文档

  • 获取拼音,更多功能请查看pinyin API

    import { pinyin } from "pinyin-pro";
    
    // 获取字符串格式拼音
    pinyin("汉语拼音"); // 'hàn yǔ pīn yīn'
    
    // 获取数组格式拼音
    pinyin("汉语拼音", { type: "array" }); // ["hàn", "yǔ", "pīn", "yīn"]
    
    // 获取不带音调数组格式拼音
    pinyin("汉语拼音", { toneType: "none" }); // "han yu pin yin"
    
    // 获取不带音调数组格式拼音
    pinyin("汉语拼音", { toneType: "none", type: "array" }); // ["han", "yu", "pin", "yin"]
    
    // 音调以数组形式显示
    pinyin("汉语拼音", { toneType: "num" }); // "han4 yu3 pin1 yin1"
    
    // 自动识别多音字
    pinyin("睡着了"); // "shuì zháo le"
  • 使用词典,获取更准确的拼音。( pinyin-pro 内置了一些高频常用词的词典,想要保证高准确率,需要应用更完备的词典)

    import { pinyin, addDict } from "pinyin-pro";
    // 引入前需要先通过 `npm install @pinyin-pro/data` 进行安装
    import ModernChineseDict from "@pinyin-pro/data/modern.json";
    import CompleteDict from "@pinyin-pro/data/complete.json";
    
    // 默认使用内置的简单词典
    const result1 = pinyin(
      "小明硕士毕业于中国科学院计算所,后在日本京都大学深造"
    );
    // 结果: xiǎo míng shuò shì bì yè yú zhōng guó kē xué yuàn jì suàn suǒ , hòu zài rì běn jīng dōu dà xué shēn zào
    
    // 使用现代汉语词典数据(gzip压缩后大概0.6MB,根据自己的需求决定是否使用)
    addDict(ModernChineseDict);
    const result2 = pinyin(
      "小明硕士毕业于中国科学院计算所,后在日本京都大学深造"
    );
    // 结果: xiǎo míng shuò shì bì yè yú zhōng guó kē xué yuàn jì suàn suǒ , hòu zài rì běn jīng dū dà xué shēn zào
    
    // 使用完备词典数据(词汇量更全,拼音转换率更加准确,gzip压缩后大概3.99MB,根据自己的需求决定是否使用)
    addDict(CompleteDict);
    const result3 = pinyin(
      "小明硕士毕业于中国科学院计算所,后在日本京都大学深造"
    );
    // 结果: xiǎo míng shuò shì bì yè yú zhōng guó kē xué yuàn jì suàn suǒ , hòu zài rì běn jīng dū dà xué shēn zào
  • 文本和拼音匹配,更多匹配规则请查看match API

    import { match } from "pinyin-pro";
    
    // 支持首字母匹配
    match("中文拼音", "zwp"); // [0, 1, 2]
    
    // 支持全拼匹配
    match("中文拼音", "zhongwenpin"); // [0, 1, 2]
    
    // 支持混合匹配
    match("中文拼音", "zhongwp"); // [0, 1, 2]
  • 拼音格式转换,更多功能请查看convert API

    import { convert } from "pinyin-pro";
    
    // 数组转符号
    convert("pin1 yin1"); // 'pīn yīn'
    
    // 符号转数字
    convert("pīn yīn", { format: "symbolToNum" }); // 'pin1 yin1'
    
    // 消除符号
    convert("pīn yīn", { format: "toneNone" }); // 'pin yin'
  • 获取带汉字拼音的 HTML 字符串,更多配置请查看html API

    import { html } from "pinyin-pro";
    
    // 带拼音汉字的 HTML 字符串
    html("汉语拼音");
    /*
    <span class="py-result-item">
    <ruby>
        <span class="py-chinese-item">汉</span>
        <rp>(</rp>
        <rt class="py-pinyin-item">hàn</rt>
        <rp>)</rp>
    </ruby>
    </span>
    <span class="py-result-item">
    <ruby>
        <span class="py-chinese-item">语</span>
        <rp>(</rp>
        <rt class="py-pinyin-item">yǔ</rt>
        <rp>)</rp>
    </ruby>
    </span>
    */

    上述结果浏览器中预览效果如下: ( hàn ) ( )

🏆 竞品对比

以下是 pinyin-propinyin@napi-rs/pinyin 包对于汉字转换的速度及准确率对比,可以看到 pinyin-pro 在各方面都全面领先。

对比项 pinyin @napi-rs/pinyin pinyin-pro
准确率 😕 Node 版: 94.097% 😕 94.097% 🤩 99.846%
😕 Web 版: 91.170%
性能 5k字转换耗时 🐢 749.111ms 🚲 200.877ms 🚀 5.958ms
1w字转换耗时 🐢 795.904ms 🚲 206.5ms 🚀 15.260ms
100w字转换耗时 ⛔ 内存溢出转换失败 🚀 638.888ms 🚀 820.131ms
兼容性 Web 环境 ✔️ 支持 ❌ 不支持 ✔️ 支持
Node 环境 ✔️ 支持 ✔️ 支持 ✔️ 支持

📠 反馈

使用遇到问题或者需要功能支持欢迎提 issue。

技术交流欢迎加 pinyin-pro 用户群 或者微信:

Package Sidebar

Install

npm i pinyin-pro

Weekly Downloads

47,225

Version

3.20.2

License

MIT

Unpacked Size

796 kB

Total Files

32

Last publish

Collaborators

  • zh-lx