All Projects → hotoo → Pinyin

hotoo / Pinyin

🇨🇳 汉字拼音 ➜ hàn zì pīn yīn

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Pinyin

Go Pinyin
汉字转拼音
Stars: ✭ 907 (-85%)
Mutual labels:  chinese, pinyin
hanzi-pinyin-font
Chinese font displaying Hanzi (汉字) characters with by transliteration/pronunciation (Pīnyīn).
Stars: ✭ 79 (-98.69%)
Mutual labels:  pinyin, chinese
Cn sort
中文排序:按拼音/笔顺快速排序简体中文词组(百万数量级,可含中英/多音字)。如果对您有所帮助,欢迎点个star鼓励一下。
Stars: ✭ 102 (-98.31%)
Mutual labels:  chinese, pinyin
Gpy
Go 语言汉字转拼音工具
Stars: ✭ 136 (-97.75%)
Mutual labels:  chinese, pinyin
syng
A free, open source, cross-platform, Chinese-To-English dictionary for desktops.
Stars: ✭ 108 (-98.21%)
Mutual labels:  pinyin, chinese
Hanbaobao
Mandarin Chinese text segmentation and mobile dictionary Android app (中文分词)
Stars: ✭ 17 (-99.72%)
Mutual labels:  chinese, pinyin
Somiao Pinyin
Somiao Pinyin: Train your own Chinese Input Method with Seq2seq Model 搜喵拼音输入法
Stars: ✭ 209 (-96.54%)
Mutual labels:  chinese, pinyin
Xpinyin
Translate Chinese hanzi to pinyin (拼音) by Python, 汉字转拼音
Stars: ✭ 709 (-88.28%)
Mutual labels:  chinese, pinyin
pinyin4js
A opensource javascript library for converting chinese to pinyin。welcome Star : P
Stars: ✭ 153 (-97.47%)
Mutual labels:  pinyin, chinese
chinese-rhymer
轻量中文押韵神器,100%绝对可用,傻瓜式命令行操作,秒速实现烈焰单押,闪电双押,龙卷三押以及海啸式四押,目前版本 v0.2.6。Search for rhymes for Chinese words, with 1, 2, 3 and 4 characters, released on PyPI with current version of 0.2.6.
Stars: ✭ 72 (-98.81%)
Mutual labels:  pinyin, chinese
pinyin data
🐼 Easy to use and portable pronunciation data for Hanzi characters.
Stars: ✭ 13 (-99.79%)
Mutual labels:  pinyin, chinese
Python Pinyin
汉字转拼音(pypinyin)
Stars: ✭ 3,618 (-40.17%)
Mutual labels:  chinese, pinyin
rust-pinyin
汉字转拼音
Stars: ✭ 111 (-98.16%)
Mutual labels:  pinyin, chinese
Chineseutil
PHP 中文工具包,支持汉字转拼音、拼音分词、简繁互转、数字、金额大写;QQ群:17916227
Stars: ✭ 413 (-93.17%)
Mutual labels:  chinese, pinyin
Deepke
基于深度学习的开源中文关系抽取框架
Stars: ✭ 525 (-91.32%)
Mutual labels:  chinese
Xmnlp
xmnlp:提供中文分词, 词性标注, 命名体识别,情感分析,文本纠错,文本转拼音,文本摘要,偏旁部首等功能
Stars: ✭ 591 (-90.23%)
Mutual labels:  pinyin
Mynlp
一个生产级、高性能、模块化、可扩展的中文NLP工具包。(中文分词、平均感知机、fastText、拼音、新词发现、分词纠错、BM25、人名识别、命名实体、自定义词典)
Stars: ✭ 519 (-91.42%)
Mutual labels:  pinyin
Zipline Chinese
zipline 是开源量化平台,但是当前zipline 并不支持A股的测试,很多在线平台如优矿,聚宽等都是基于zipline,本项目改进zipline,使得zipline支持A股测试
Stars: ✭ 515 (-91.48%)
Mutual labels:  chinese
Reactnativematerials
React Native的中文参考资料,包括开源库,文字/视频资料,相关工具等
Stars: ✭ 647 (-89.3%)
Mutual labels:  chinese
Phonetic
An iOS App to generate phonetic keys for your Chinese contacts. Written in Swift.
Stars: ✭ 574 (-90.51%)
Mutual labels:  chinese

README

pīnyīn, 汉字拼音转换工具。


NPM version Build Status Coverage Status Gittip NPM downloads

English Documention

English README

转换中文字符为拼音。可以用于汉字注音、排序、检索。

注:这个版本同时支持在 Node 和 Web 浏览器环境运行,

Python 版请关注 mozillazg/python-pinyin


特性

  • 根据词组智能匹配最正确的拼音。
  • 支持多音字。
  • 简单的繁体支持。
  • 支持多种不同拼音风格。

安装

via npm:

npm install pinyin --save

用法

开发者:

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("我喜欢你", {
  segment: true,                // 启用分词
  group: true                   // 启用词组
}));                            // [ [ 'wǒ' ], [ 'xǐhuān' ], [ '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

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

关闭多音字模式时,返回每个汉字第一个匹配的拼音。

启用多音字模式时,返回多音字的所有拼音列表。

<Boolean> options.group

按词组分组拼音,例如:

我喜欢你
wǒ xǐhuān nǐ

<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

注:声明风格会区分 zhzchcshs

注意:部分汉字没有声母,如 饿 等,另外 y, w, yu 都不是声母, 这些汉字的拼音声母风格会返回 ""。请仔细考虑你的需求是否应该使用首字母风格。 详情请参考 [为什么没有 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)下,“雨”、“我”、“圆”等汉字返回空字符串,因为根据《汉语拼音方案》, ywü (yu) 都不是声母,在某些特定韵母无声母时,才加上 yw,而 ü 也有其特定规则。

如果你觉得这个给你带来了麻烦,那么也请小心一些无声母的汉字(如“啊”、“饿”、“按”、“昂”等)。 这时候你也许需要的是首字母风格(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 版。
繁体中文 没有繁体中文支持。 有简单的繁简汉字转换。

由于这些区别,测试不同运行环境的用例也不尽相同。

捐赠

如果这个模块有帮助到您,请 Star 这个仓库。

你也可以选择使用支付宝或微信给我捐赠:

Alipay:hotoo.cn@gmail.com, WeChat:hotoome

或者直接捐赠给我妻子 @lizzie

Alipay:shenyan1985@gmail.com, WeChat:SunsetSunrising

这两种捐赠的最终结果是一样的 :)

许可证

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].