汉语转拼音(带音调和多音字识别)

汉语转拼音
-----带音调和多音字识别

1、  背景

几年前就在网上看到过汉字转拼音的程序,大都就是按汉字的编码转换,单字对应的算法实现的。在网上搜索“汉字转拼音”的文章可以搜索到很多,基本都是同一个算法,各种语言的移植版本都有,但是都有一个共同的缺点,不能支持多音字。比如“重庆”,“重量”这样的词语就不能正确的识别,这在很多应用中会是一个非常大的缺陷,更不用说支持音调。(来自http://sunli.cnblogs.com

2、  解决办法

后来找了很多资料,发现微软的office word2003带有这个汉字转拼音的功能,还有声调,效果比网上的按编码和单字对应的好很多(部分也有不准确,比如“水浒传”的“转”它转成“chuan”了)。但是不知道怎么去用程序调用这个工具。后来又找到调用微软拼音输入法的API调用方法,发现还是不够好。最大的缺点就是固定在了windows平台。所以决定自己实现汉字转拼音的算法。

 

3、  汉字转拼音算法实现

中文分词

要实现多音字的识别就需要分词,按照词语的拼音组合,这样就可以解决多音字的问题,也可以解决音调的问题。中文分词在网上可以找到很多的源代码和算法,这里不详细叙述,

词语拼音

实现一个词语拼音的对照库。一个词语一个拼音,这样分出来的词语就可以找到对应的拼音了。到这里还有一个步骤,分词后还会有很多的单字,所以还要一个单字的拼音对照表,这个对照表跟网上常见的那个对照表不一样,他就是单字(不组合成词)的拼音,比如“的”的拼音就是“de,而不会是”di”,因为的确这个词语才是“di”。

组合拼音

把分词后的词语和对照表对应,就去得到了汉语的带音调的拼音了。可以再进过少量处理,就得到无调拼音了。

4、  总结

汉字转拼音的关键地方在分词和分词后的词语拼音对照表上。

汉字转拼音可以运用在很多场合,比如:

1.搜索的下拉框拼音提示

演示:http://www.google.cn

2.输入智能纠错。比如输入“留德华”可以提示“刘德华”
输入“liudehua”也可以提示“刘德华”

3.按拼音检索

5、  演示

 http://dev.oswind.com/pinyin/   
(adsl pc做的服务器

posted @ 2007-11-21 15:31 草屋主人 阅读(...) 评论(...) 编辑 收藏