字符(unicode)转拼音声调数字
来源:互联网 发布:python与php的区别 编辑:程序博客网 时间:2024/04/28 05:32
根据网上拼音数字转字符资料整理下反向转换。需注意的是,这里的处理类型为string,若为unicode类型需要进行.encode('utf-8')转换
#encoding:utf-8# map (final) constanant+tone to tone+constananmapConstTone2ToneConst = {'n1': '1n', 'n2': '2n', 'n3': '3n', 'n4': '4n', 'ng1': '1ng', 'ng2': '2ng', 'ng3': '3ng', 'ng4': '4ng', 'r1': '1r', 'r2': '2r', 'r3': '3r', 'r4': '4r'}# map vowel+vowel+tone to vowel+tone+vowelmapVowelVowelTone2VowelToneVowel = {'ai1': 'a1i', 'ai2': 'a2i', 'ai3': 'a3i', 'ai4': 'a4i', 'ao1': 'a1o', 'ao2': 'a2o', 'ao3': 'a3o', 'ao4': 'a4o', 'ei1': 'e1i', 'ei2': 'e2i', 'ei3': 'e3i', 'ei4': 'e4i', 'ou1': 'o1u', 'ou2': 'o2u', 'ou3': 'o3u', 'ou4': 'o4u'}# map vowel-number combination to unicodemapVowelTone2Unicode = {'a1': 'ā', 'a2': 'á', 'a3': 'ǎ', 'a4': 'à', 'e1': 'ē', 'e2': 'é', 'e3': 'ě', 'e4': 'è', 'i1': 'ī', 'i2': 'í', 'i3': 'ǐ', 'i4': 'ì', 'o1': 'ō', 'o2': 'ó', 'o3': 'ǒ', 'o4': 'ò', 'u1': 'ū', 'u2': 'ú', 'u3': 'ǔ', 'u4': 'ù', 'v1': 'ǜ', 'v2': 'ǘ', 'v3': 'ǚ', 'v4': 'ǜ', }def ConvertToneNumbersPinyin(lineIn): assert type(lineIn) is str lineOut = lineIn # mapVowelTone2Unicode for x, y in mapVowelTone2Unicode.items(): lineOut = lineOut.replace(y, x).replace(y.upper(), x.upper()) # mapVowelVowelTone2VowelToneVowel for x, y in mapVowelVowelTone2VowelToneVowel.items(): lineOut = lineOut.replace(y, x).replace(y.upper(), x.upper()) # first transform for x, y in mapConstTone2ToneConst.items(): lineOut = lineOut.replace(y, x).replace(y.upper(), x.upper()) return lineOut.replace('Ü', 'V').replace('ü', 'v')if __name__ == '__main__': lineIn = "Chén Chǔ" lineOut = ConvertToneNumbersPinyin(lineIn) print lineOut
***********************************************************************************************************************************************
***********************************************************************************************************************************************
test.py 用例
#encoding:utf-8import refrom tone2Pinyin import ConvertToneNumbersPinyinargs = "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"# lineOut = ConvertToneNumbersPinyin(args)# print lineOuts = u"""Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng赵 钱 孙 李 周 吴 郑 王Féng Chén Chǔ Wèi Jiǎng Shěn Hán Yáng冯 陈 褚 卫 蒋 沈 韩 杨Zhū Qin Yoú Xǔ Hé Lǚ Shi Zhāng朱 秦 尤 许 何 吕 施 张"""def convert_to_pinyin_num(): pattern = re.compile(u"[\u4e00-\u9fa5]+") for param in s.split(): match = pattern.match(param) if not match: param = param.encode("utf-8") lineOut = ConvertToneNumbersPinyin(param) print lineOutconvert_to_pinyin_num()输出数据:
Zhao4
Qian2
Sun1
Li3
Zhou1
Wu2
Zheng4
Wang2
Feng2
Chen2
Chu3
Wei4
Jiang3
Shen3
Han2
Yang2
Zhu1
Qin
You2
Xu3
He2
Lü3
Shi
Zhang1
Qian2
Sun1
Li3
Zhou1
Wu2
Zheng4
Wang2
Feng2
Chen2
Chu3
Wei4
Jiang3
Shen3
Han2
Yang2
Zhu1
Qin
You2
Xu3
He2
Lü3
Shi
Zhang1
0 0
- 字符(unicode)转拼音声调数字
- csharp:汉字转带拼音声调
- csharp:汉字转带拼音声调
- csharp:汉字转带拼音声调
- 十进制数字转Unicode字符—十六进制数字转Unicode字符
- VB 汉字拼音及声调
- 如何打出拼音和声调
- PHP汉字转拼音类(UTF-8) 支持转换后带有声调和无声调以及只获取汉字首字母
- unicode 转 拼音。
- ios开发系列之中文转拼音,去声调,首字母转大写
- Java 汉字转拼音的具体实现及汉字声调处理
- word怎么打拼音声调的三种方法介绍
- Unicode字符介绍(转)
- Python中字符、汉字、数字转为Unicode码
- unicode下CString提取判断中文。英文字符。及数字
- unicode汉字、数字、英文等字符范围表示
- Unicode字符编码规范(转)
- unicode转多字节字符
- 淘宝海量存储之单机事务面临的问题及解决办法
- Android 开发之 ---- bootloader (LK)
- 表格布局器练习--计算器
- The lexer hack
- Linux2.6的所有内核版本
- 字符(unicode)转拼音声调数字
- 淘宝的字体也改变了(今天)
- java面试题及答案(基础题122道,代码题19道)
- 在myEclipse中使用debug调试程序?
- error: No resource identifier found for attribute 'layout_with' in package 'android'
- 有的人欢乐多于悲哀
- iText和flying saucer结合生成pdf的技术
- opencv中cvSetData用法
- 结局都是一样,生活注重的就是过程。