汉语转拼音(带音调和多音字识别)
汉语转拼音
-----带音调和多音字识别
1、 背景
几年前就在网上看到过汉字转拼音的程序,大都就是按汉字的编码转换,单字对应的算法实现的。在网上搜索“汉字转拼音”的文章可以搜索到很多,基本都是同一个算法,各种语言的移植版本都有,但是都有一个共同的缺点,不能支持多音字。比如“重庆”,“重量”这样的词语就不能正确的识别,这在很多应用中会是一个非常大的缺陷,更不用说支持音调。(来自http://sunli.cnblogs.com)
2、 解决办法
后来找了很多资料,发现微软的office word2003带有这个汉字转拼音的功能,还有声调,效果比网上的按编码和单字对应的好很多(部分也有不准确,比如“水浒传”的“转”它转成“chuan”了)。但是不知道怎么去用程序调用这个工具。后来又找到调用微软拼音输入法的API调用方法,发现还是不够好。最大的缺点就是固定在了windows平台。所以决定自己实现汉字转拼音的算法。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
3、 汉字转拼音算法实现
中文分词
要实现多音字的识别就需要分词,按照词语的拼音组合,这样就可以解决多音字的问题,也可以解决音调的问题。中文分词在网上可以找到很多的源代码和算法,这里不详细叙述,
词语拼音
实现一个词语拼音的对照库。一个词语一个拼音,这样分出来的词语就可以找到对应的拼音了。到这里还有一个步骤,分词后还会有很多的单字,所以还要一个单字的拼音对照表,这个对照表跟网上常见的那个对照表不一样,他就是单字(不组合成词)的拼音,比如“的”的拼音就是“de”,而不会是”di”,因为”的确”这个词语才是“di”。
组合拼音
把分词后的词语和对照表对应,就去得到了汉语的带音调的拼音了。可以再进过少量处理,就得到无调拼音了。
4、 总结
汉字转拼音的关键地方在分词和分词后的词语拼音对照表上。
汉字转拼音可以运用在很多场合,比如:
1.搜索的下拉框拼音提示
演示:http://www.google.cn
2.输入智能纠错。比如输入“留德华”可以提示“刘德华”
输入“liudehua”也可以提示“刘德华”
3.按拼音检索
5、 演示
http://dev.oswind.com/pinyin/
(adsl pc做的服务器)
汉语转拼音(带音调和多音字识别)相关推荐
- android 汉字转字节,android实现汉字转拼音功能 带多音字识别
android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...
- java中文转拼音 多音字_java使用jpinyin汉语转拼音(支持多音字)
importcom.github.stuxuhai.jpinyin.ChineseHelper;importcom.github.stuxuhai.jpinyin.PinyinFormat;impor ...
- python拼音怎么写-[编程心得]用Python给汉字加上带音调的拼音
作为一个南方人,拼音没学好那似乎已是一件非常正常的事.什么卷舌音.鼻音,也只有在近几年才算是分清了一部分.但尴尬的事情仍在继续,发短信的时候,总有些字拼得不准:说话的时候,总有些字没有卷舌.或忘了加鼻 ...
- python 中文转带音调的拼音
python 中文转带音调的拼音 前言 python 中文转带音调的拼音 1. 1.1 安装pinyin模块 1.2 试验 1.3 效果图 1.4 代码实现 前言 今天整理中药材,每个药材上标上带音调 ...
- java 生成拼音_java工具-常用汉语转拼音库Pinyin4j 、tinypinyin、JPinyin
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以 ...
- Java语言汉语转换为拼音
最近做东西需要将汉语转换为拼音,在网上正好有开源的包可以实现,下载地址:http://pinyin4j.sourceforge.net/.Mark一下,以后可能用得到,示例代码如下: import n ...
- java实现将汉语转换为拼音
这几天在做项目的时候用到了通过拼音去数据库表里面去模糊查询汉语字段,刚开始的时候感觉特别神奇,查了好多资料,直接去模糊查询是能实现的,但是貌似很复杂.所以最终取了一个比较容易的方案,就是给数据库表里面 ...
- 用C#写的汉语转拼音缩写的例子
以前用C#写的一个汉语转拼音所写的例子,拿出来与大家共享下,呵呵,有什么好的改进,希望大家共同探讨:原文链接 1using System; 2using System.Data; 3using ...
- iOS汉语转拼音以及按照拼音排序
在iOS中汉语转拼音可以使用系统提供的方法,也可以使用第三方库来实现,但是网上说使用系统方法实现的话性能会比较差,此处只是提供方法,至于选择使用哪种方法,自己看情况而定. 1.系统方法 主要使用到了方 ...
- js汉语转拼音(全拼、首字母、拼音首字母)
新建js文件first_alphabet.js 1 // JavaScript Document 2 // 汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell 3 ...
最新文章
- C++多线程实现生产者消费者模式
- 基于SSM实现的图书馆管理系统
- SQL语句添加删除修改字段
- pycharm如何标记代码?创建代码标签?创建数字标签?收藏代码标签
- VMware Workstation 网络连接配置
- 八、Java中的i++和++i到底是什么?
- QQ号码采集及邮件发送系统2009
- gprs 睡眠模式_GPRS的完整形式是什么?
- lte盲重定向_LTE重选、切换、重定向的区别
- shiro subject.getprincipal()为null_(变强、变秃)Java从零开始之Shiro安全框架
- 云服务器拷贝文件大小,如何从云服务器上拷贝大文件
- 百度发布小度智能音箱大金刚:秒变投屏电视 售价199元
- Jmeter-【JSON Extractor】-响应结果中一级key取值
- kafka-manger监控部署
- 学 计算机 知识视频,教你学电脑——计算机基础知识【视频】*
- 管人就是管情绪——从《纸牌屋》中的心理操控说起
- 最强整理:阿里云大师深入拆解Java虚拟机,经典好文
- MATLAB中排序sort函数的用法
- 微信公众号防封服务器,快来!这里有运营人必备的微信号防封指南!
- c语言追光篮球程序,追光篮球游戏下载-追光篮球苹果版v1.0_6137游戏网
热门文章
- Oracle锁表会影响查询效率么,oracle锁表查询,资源占用,连接会话,低效SQL等性能检查...
- Navicat数据库查询时字体
- windows10 计算机打不开怎么办,win10计算器打不开怎么解决|win10打开计算器的方法...
- 计算几何相关的面试题
- 系统接口框架设计与实现
- 金蝶专业版怎么反过账当月_金蝶KIS专业版没有反过账功能,怎么反过账
- 采用高通CRS8635的一款蓝牙耳机低功耗评测数据,供交流讨论!
- ffmepg安装yasm之后还是出现nasm/yasm not found or too old. Use --disable-x86asm for
- r语言和python爬虫谁厉害_r语言和python有必要都学吗
- QQ互联一直显示“未提交审核”