Pinyin4j导读
Pinyin4j是Java中的拼音库,作者李民。
拼音这件事其实非常简单,无非是一种映射。但是拼音中包含的学问很多,很多前贤都研究过汉语拼音,提出了多种拼音方案。随着历史变迁,拼音的形式也在不断发生变化,所以设计一个拼音库就需要考虑到拼音的格式、拼音的体系。
一、拼音体系
1、GWOYEU_ROMATZYH
国语拼音起源于民国时期,制作者赵元任、林语堂。
2、HANYU_PINYIN
《汉语拼音方案》,是1958年第一届全国人民代表大会第五次会议正式批准公布的拉丁字母式的汉语拼音方案。但是实际落实到教学和普及使用则是1960年前后,当时有中国文字改革委员会发行的汉语拼音报,此后汉语拼音开始逐步取代了原来的汉字注音字母直至现在汉语拼音在我国的社会各个领域都占有极其重要的地位。
3、MPS2_PINYIN
Mandarin Phonetic Symbols 2 (MPS2) Pinyin system
4、通用拼音
通用拼音,是中国台湾地区的一种中文拉丁化拼音法。由“中央研究院民族学研究所”副研究员余伯泉在1998年发表,后经数次修正,于2000年由台湾教育主管部门宣布使用,并取代原定改用的国语注音符号第二式,台湾当局政府自2002年起全面推行以通用拼音为基础的统一译音政策,但并未强制要求使用。2008年9月,中国台湾地区确定中文译音政策将由“通用拼音”改为采用“汉语拼音”,涉及中文英译的部分,都将要求采用汉语拼音。通用拼音有个略去 f 而使用 v(注音符号:万)的音标版,可能原先用于客家话,但实际上拼读国语时无用。
5、威氏拼音
WADEGILES_PINYIN
威妥玛式拼音法(Wade-Giles romanization)又称威妥玛-翟理斯式拼音,简称威氏拼音法 。
它是1867年开始的,由英国人威妥玛(Thomas Francis Wade 1818年—1895年,今天的习惯应该翻译成托玛斯·韦德)等人合编的注音规则,叫“威氏拼音”。
威妥玛曾于1871年任英国驻华公使,1883年回国。1888年起在剑桥大学任教授,讲授汉语,直至1895年逝世。他以罗马字母为汉字注音,创立威氏拼音法。后来H.A.Giles稍加修订,合称WG威氏拼音法(Wade-Giles System)。它的最大优点是利用送气符号(‘)来表示送气的声母。
6、耶鲁拼音
1943年初,美国一批新学员包括即将来华参加抗日战争的军人集中到美国耶鲁大学,进行短期训练,学习汉语。为了适应需要,由美国耶鲁大学远东语言研究所的肯尼迪负责拟订了一个拼写汉语的拉丁字母方案。这个方案主要用来编写汉语的口语教材,供学员做会话练习。
耶鲁方案的主要特点是﹕(1)以北京语音为标准音﹔(2)用b﹑d﹑g表示不送气清塞音﹐p﹑t﹑k表示送气清塞音﹐不再使用送气符号﹔(3)用y﹑w﹑yw表示介音﹐如tyan(天)﹑gwo(国)﹑jywe(觉)﹔(4)用r﹑z分别表示两个舌尖元音(即“知”﹑“资”后面的元音)﹔(5)用符号表示声调﹕第一声“–”﹐第二声“ˊ”﹐第三声“ˇ”﹐第四声“ˋ”﹔(6)实行按词分写。
二、拼音格式
1、大小写
拼音者,以少表多也。少的肯定是字母,多的肯定是中日韩三国文字。既然是字母,就要遵循人家用字母的规矩:区分大写小写。
如:大写 拼成 DAXIE还是daxie
2、音调类型
汉语是有音调的,如何表示音调?常见的有三种方法:忽略音调、使用后缀数字、使用带音调的字母
WITH_TONE_NUMBER da3
WITHOUT_TONE da
WITH_TONE_MARK dǎ
3、鱼
汉语拼音里面最奇葩的莫过于ü,这个字母是唯一的一个26个英语字母中没有的字符,它明明应该用v的,那样将会少掉无数争端。
还记得小时候神奇的歌谣:j、q、x三兄弟,和ü相遇把点吃。
如果用v表示ü,完全没有这么多冗余的规则。所以设计拼音的人有点脑残。
在pinyin4j中,ü被作为一种格式来专门讨论。表示方式有三种:u+冒号、v、ü。
WITH_U_AND_COLON u:
WITH_V v
WITH_U_UNICODE ü
在以上三种格式中,并非有2×3×3=18种拼音方式,因为这些格式之间会产生冲突。主要原因是鱼的两种表示法u+冒号、v跟音调类型中的WITH_TONE_MARK不兼容。
三、关于pinyin4j
pinyin4j已经很古老了,代码是放在sourceforge上的,maven仓库中都没有。另外,pinyin4j引用的xml解析库sparta-xml虽然据说很快,但是很小众。
有人把pinyin4j迁移到了github并放到了maven仓库中:https://github.com/belerweb/pinyin4j/
Pinyin4j导读的更多相关文章
- 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母
通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心 ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...
- java-汉字转换拼音-pinyin4j.jar
使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- 汉字转拼音(pinyin4j)
1.引入依赖 <dependency> <groupId>pinyin4j.sourceforge.net</groupId> <artifactId> ...
- Effective C++ 之 0 导读(Introduction)
Effective C++ 导读 (Introduction) 术语(terminology) 声明式 (declaration) 是告诉编译器某个东西的名称和类型(type),但略去细节.以下都是声 ...
- 【转】java开源类库pinyin4j的使用
最近CMS系统为了增加查询的匹配率,需要增加拼音检索字段,在网上找到了pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字), 呵呵,看了看他的demo,决定就用它了,因为我在实际使 ...
- cookie导读,理解什么是cookie
一.cookie导读,理解什么是cookie 1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存.并且读可以取出来的一种技术. 2. ...
- 利用PinYin4j 实现List中的对象按数字,字母, 汉字排序
要排序的对象: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPi ...
- MINIX3 导读分析
一个操作系统的分析是属于一个非常庞大的工程,操作系统就像是一个人造的 人,每一个模块想完全发挥功效,很有可能需要很多模块的支持才能够实现.所 以在分析 MINIX3 时,我认为同时看多个模块对于理解 ...
- pinyin4j
最近在倒腾与搜索相关的拼音检查技术,顺便看了一下中文转拼音开源插件pinyin4j的源码,参考资料:http://blog.csdn.net/hfhwfw/archive/2010/11/23/603 ...
随机推荐
- uva 10712 - Count the Numbers(数位dp)
题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是 ...
- 【Spark】SparkStreaming-输出到Kafka
SparkStreaming-输出到Kafka sparkstreaming output kafka_百度搜索 SparkStreaming采用直连方式(Direct Approach)获取Kafk ...
- 转:Deep learning系列(十五)有监督和无监督训练
http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: Andr ...
- linux下性能分析命令[总结]
1.前言 在linux下开发程序,为了追求高性能,经常需要测试程序的性能,包括cpu.内存.io.网络等等使用情况.liunx下提供了众多命令方便查看各种资源的使用情况.经常用的有ps.top.fre ...
- Centos6.4下安装protobuf及简单使用
1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://code.google.com/p/protobuf/ 2.下载最新的protobuf,下载地址:https ...
- PHP 使用PHPExcel删除Excel单元格指定列
需求是这样的: 有一个系统仅公司内部和外部经销商使用,在一个导出功能中公司内部员工跟外部经销商导出的列是不一样的(某些数据是不能提供给经销商的) 因为导出的数据都是一样的(某些列外数据外部没有)因此并 ...
- unity3d Player Settings 中的Stripping Level(剥离等级)对应每个等级具体剥离了哪些库
http://docs.unity3d.com/410/Documentation/ScriptReference/MonoCompatibility.html
- GPUImage API 文档之GPUImagePicture类
GPUImagePicture类静态图像处理操作,它可以是需要处理的静态图像,也可以是一张作为纹理使用的图片,调用向它发送processImage消息,进行图像滤镜处理. 方法 - (id)initW ...
- 如果使用xutils出现了ExceptionInInitializerError这个错误
看看是否初始化 1)在Application初始化 x.Ext.init(this); // 在application的onCreate中初始化 /** * 初始化xUtils3 */ publi ...
- tomcat7部署多个web应用不同编码,端口
1个tomcat部署多个web应用可以设置不同编码,端口,server.xml配置如下: <?xml version='1.0' encoding='utf-8'?><Server ...