苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 10648|回复: 7

[源码分享] 汉字转拼音,可识别多音字,带声调,提供正向、逆向、双向分词算法的小程序

[复制链接]
发表于 2013-9-26 12:23:31 | 显示全部楼层 |阅读模式
本帖最后由 butaixianran 于 2013-9-26 12:45 编辑

用C#写了个汉字转拼音的小工具,和网上大部分工具不同,这个通过分词算法,解决了多音字的问题,并且提供声调,可开可关。


如题,用"银行 行不行 行家说了算"举例,如果转拼音却不能识别多音字,就惨了。

而这个小工具的效果如图:

2013-09-25 8-58-13.jpg

实现了3种分词算法:
* 正向最大匹配
* 反向最大匹配
* 双向最大匹配
(这个双向匹配的歧义处理办法,是本人创新的"双贪吃蛇"算法。

算法介绍和代码看这里:http://my.oschina.net/u/1270374/blog/164042


2013-09-24 19-55-37.jpg


词典来自于: 搜狗拼音输入法词库备份bin文件,用"深蓝词库转换工具",转成"微软拼音词库"后,用ultraedit查找/替换掉用不上的废行,得到的xml文件。 含约17万的词库。

2013-09-24 19-56-06.jpg

转成微软拼音词库格式是因为只有它提供声调。如果愿意,你可以使用自己的词库。

----------下载------------

软件下载:
http://pan.baidu.com/s/1mTg3T

---------源码下载-------------

百度网盘:
http://pan.baidu.com/s/1ED1Ls

腾讯微云:
http://url.cn/PnnMOU

代理的注释非常多,所以即使是新手也能很容易看懂。


源代码使用注意:
* bin/release目录下,已经包含了生成的软件。

* 显示拼音时,因为词库的中文单字非常不全,我引用了微软的ChnCharInfo.dll,来获得一些单字拼音。这个库是要下载Visual Studio International Pack安装到系统才会有的。

不过你可以直接从bin/release里面找到,自己重新引用一下就行了。





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-26 12:53:01 | 显示全部楼层
恩这个不错,可以添加到我的基类库中。
 楼主| 发表于 2013-9-26 15:28:05 | 显示全部楼层
站长苏飞 发表于 2013-9-26 12:53
恩这个不错,可以添加到我的基类库中。


你打算是把"分词算法"类添加进去,还是把整个"汉语转拼音"功能添加进去?

如果是前者,没有任何问题。
如果是后者,有个2问题:
1. 这个功能,需要依靠xml词典,词典压缩后只有2mb,但解压后有25mb。毕竟是个搜狗拼音词库。
2. 这个程序,调用了微软单独提供的ChnCharInfo.dll,用于显示单字的拼音(因为词典中缺少很多常用单字),而这个dll是没有源代码的。


如果能够接受这2点,那这个功能还是好用的。


发表于 2013-9-26 15:38:49 | 显示全部楼层
带声调,不错
发表于 2013-9-26 15:43:11 | 显示全部楼层
我添加的是基类库,和功能无关,类库怎么会加那些功能呢
发表于 2014-4-11 14:18:46 | 显示全部楼层
非常感谢你帮了我的大忙,真的太感谢你啦!
发表于 2015-3-24 00:50:24 | 显示全部楼层
看过帖子回复一下是个好习惯
发表于 2015-3-24 09:45:35 | 显示全部楼层
真的是好帖子啊,顶了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 11:53

© 2014-2021

快速回复 返回顶部 返回列表