android 汉字拼音转换工具
源码下载地址:https://github.com/hotoo/pinyin
English Documention
转换中文字符为拼音。可以用于汉字注音、排序、检索。
注:这个版本同时支持在 Node 和 Web 浏览器环境运行,
Python 版请关注 mozillazg/python-pinyin
特性
- 根据词组智能匹配最正确的拼音。
- 支持多音字。
- 简单的繁体支持。
- 支持多种不同拼音风格。
安装
via npm:
npm 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 是可选的,可以设定拼音风格,或打开多音字选项。
返回二维数组,第一维每个数组项位置对应每个中文字符串位置。 第二维是各个汉字的读音列表,多音字会有多个拼音项。
方法 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
都不是声母, 这些汉字的拼音声母风格会返回 ""
。请仔细考虑你的需求是否应该使用首字母风格。 详情请参考 为什么没有 y, w, yu 几个声母
.STYLE_FIRST_LETTER
首字母风格,只返回拼音的首字母部分。
如:p y
Test
npm test
Q&A
关于 Web 版如何使用
首先,我建议大家应该优先考虑在服务端一次性转换拼音并将结果持久化,避免中客户端每次转换损耗性能和体验。
如果你坚持中客户端使用,你可以考虑使用 Webpack + Babel 来转换成低端浏览器的可执行代码。
实在不想折腾,可以试试 https://github.com/hotoo/pinyin/tree/gh-pages/dist
为什么没有 y
, w
, yu
几个声母?
声母风格(INITIALS)下,“雨”、“我”、“圆”等汉字返回空字符串,因为根据《汉语拼音方案》, y
,w
,ü (yu)
都不是声母,在某些特定韵母无声母时,才加上 y
或 w
,而 ü
也有其特定规则。
如果你觉得这个给你带来了麻烦,那么也请小心一些无声母的汉字(如“啊”、“饿”、“按”、“昂”等)。 这时候你也许需要的是首字母风格(FIRST_LETTER)。
如何实现按拼音排序?
pinyin 模块提供了默认的排序方案:
const pinyin = require('pinyin');const data = '我要排序'.split(''); const sortedData = data.sort(pinyin.compare);
如果默认的比较方法不能满足你的需求,你可以自定义 pinyinCompare 方法:
const pinyin = require('pinyin');const data = '我要排序'.split('');// 建议将汉字的拼音持久化存储起来。
const pinyinData = data.map(han => ({han: han,pinyin: pinyin(han)[0][0], // 可以自行选择不同的生成拼音方案和风格。
}));
const sortedData = pinyinData.sort((a, b) => {return a.pinyin.localeCompare(b.pinyin);
}).map(d => d.han);
node 版和 web 版有什么异同?
pinyin
目前可以同时运行在 Node 服务器端和 Web 浏览器端。 API 和使用方式完成一致。
但 Web 版较 Node 版稍简单,拼音库只有常用字部分,没有使用分词算法, 并且考虑了网络传输对词库进行了压缩处理。
由于分词和繁体中文的特性,部分情况下的结果也不尽相同。
特性 | Web 版 | Node 版 |
---|---|---|
拼音库 | 常用字库。压缩、合并 | 完整字库。不压缩、合并 |
分词 | 没有分词 | 使用分词算法,多音字拼音更准确。 |
拼音频度排序 | 有根据拼音使用频度优先级排序。 | 同 Web 版。 |
繁体中文 | 没有繁体中文支持。 | 有简单的繁简汉字转换。 |
由于这些区别,测试不同运行环境的用例也不尽相同。
android 汉字拼音转换工具相关推荐
- Python 汉字转拼音库 pypinyin, 附:汉字拼音转换工具
一.初衷: 一些开源软件的配置文件中识别区分的部分用英文,那么我们在批量生成配置文件的时候,可以从CMDB导入汉字(idc_name), 然后将它转换成拼音,再或者拼接上IP地址,以便更准确的识别.例 ...
- js 汉字拼音转换工具。
github地址 npm npm install pinyin 用法 var pinyin = require("pinyin");console.log(pinyin(" ...
- php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...
码云项目推荐 1.项目名称: 中文转拼音库 pinyin4j 项目简介:Pinyin4j 是一个流行的 Java 库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 2.项目名称:汉字/拼音转换 ...
- Android 拼音转换工具PinyinUtils
1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 2.创建工具类:PinyinUtils /*** 拼音转换工具* * @描述 TODO* @项目名称 App_imooc* ...
- android 字体像素转换工具类_Android开发之拼音转换工具类PinyinUtils示例
本文实例讲述了Android开发之拼音转换工具类PinyinUtils.分享给大家供大家参考,具体如下: 1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 或者点击此处本站下 ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java 中文分词转拼音_java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍...
java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍 pinyin https://github.com/houbb/pinyin 是 java 实现的高性能中文拼音转换工具. ...
- C# 拼音转换-工具类
/// <summary>/// 拼音转换工具/// </summary>public class PinYinHelper{public static PingYinMode ...
- java 分词器耗时 性能_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
最新文章
- 【怎样写代码】参数化类型 -- 泛型(七):泛型方法
- 0基础linux运维,Linux运维基础
- 第四章--调试器及相关工具入门
- nodejs mysql备份_node.js实现备份mysql数据库功能
- IO 密集型服务 性能优化实战记录
- mysql从一个表查出写入另一个表_sql语句 怎么从一张表中查询数据插入到另一张表中...
- .NET Core 如何调试 CPU 爆高?
- 陕西理工大学计算机科学与技术系,陕西理工大学计算机科学与技术专业2016年在陕西理科高考录取最低分数线...
- asm 查看 数据文件 修改 时间_ASM磁盘组ORA15042故障处理案例一:NORMAL磁盘组下失败组离线后ORA15042报错的处理...
- 计算机作为信息处理工具 应用于科学研究,计算机2013春分章节试题及答案.doc
- 柔性电子 压力传感器 strain-pressure sensor MoS2/graphene
- 前端面经 | 腾讯实习生校招面试心路历程
- 天地图key申请_国家地理信息公共服务平台 天地图
- on duplicate key update不生效_万粉盛典amp;六周年庆|双十一提前嗨!惠玩惠购不做尾款人!...
- 海康威视 网络硬盘录像机 Linux / QT 视频监控
- 网狐棋牌游戏平台服务器架构设计分析[转]
- java计算机毕业设计ssm学生宿舍管理系统15pjb(附源码、数据库)
- 推荐7个好用的Python效率工具,拿走不谢
- 使用金山卫士的一些体会
- z390能装2012服务器系统,z390主板能装win7吗?主流z390主板装win7系统bios设置方法...