ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cpali3023

[原创] [原创] 汉拼转换函数(05.8.14源码重新设计,转换速度获得极大的提升)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-11-22 11:18 | 显示全部楼层
Thanks!太好用了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-22 16:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
审查了一下源码,发现拼音数据库存在19处的小bug,现已修正,希望大家重新下载(05.11.22)

TA的精华主题

TA的得分主题

发表于 2005-11-22 17:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

再次谢谢 cpali302 提供的好东东。

[em24][em24][em24]

TA的精华主题

TA的得分主题

发表于 2005-11-30 15:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用[I]cpali3023[/I]在2004-3-13 19:37:00的发言:[BR]解释一下,“会”字为多音字,一般情况读成会议的会(hui)字。 从技术的角度很难解决多音字的问题,因为多音字往往与组词相关联,这需要智能的判断,需另建一个多音字词库进行智能的判断,也不是不能实现,但这样一来会使程序进一步复杂及影响速度,希望有心的朋友提供相关的多音字资料及思路顶一下。
我有一些多音字资料,比微软拼音和一般的拼音标注软件都要全一些。在我的一个帖子中。 “Excel”注音工具——阿门拼码器1.1~~~~在LW工作表内。 http://club.excelhome.net/dispbbs.asp?boardID=3&ID=137312&page=1

TA的精华主题

TA的得分主题

发表于 2005-11-30 15:59 | 显示全部楼层
以下是引用[I]lxcapp[/I]在2004-9-3 11:47:00的发言:[BR]

很辛苦!

既然用VBA做了,最好有办法找到WINDOWS自带的输入法的DLL及其接口(在WORD中可汉拼转换,其肯定也有类似的DLL),这样字库也比较完整.

不知此处是否有了解此情况的朋友.

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-6 10:13 | 显示全部楼层
谢谢xm100网友提供的资料,我用数据库的方式分析了你所提供的微软拼音两字词库(近5万个两字词)发现在近5万的两字词中所涉及的多音字仅735个,这些多音字中所涉及的非默认状态下的拼音两字词的数目是4847个(其中两字词首字中出现多音字的词为1881个),因此有VBA技术解决多音字的判断是没有问题的,只是从技术上要充分考虑在判断翻译多音字的情况下的速度问题,应不会太难!我有时间会完善此部分的程序设计。
[此贴子已经被作者于2005-12-6 10:14:51编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-6 10:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-12-6 11:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

AhMan先生对软件搜索速度的问题有明确的表述,请参考这个帖子的10楼、13楼,是分区搜索的思想;19楼是我的处理思路,是受AhMan先生启发。AhMan先生是按词长分区;我是按含多音字词的首字的code代码来分区,这样可多分几个区。http://srf.cn/dispbbs.asp?boardid=20&star=2&replyid=49753&id=6763&skin=0&page=1

我用这种思路试验了,速度确实加快了很多。“阿门拼码器1.1”是我试验的作品,其中的LW表中含4万多条多音字的词,是从几十万的词条中筛选出来的,而不是只有几百条。可到这儿下载:http://free.ys168.com/?xml00

另一帖子也有速度问题的讨论,是AhMan先生和中华诗词作者方旻先生的交流。http://www.wbfans.com/bbs/dispbbs.asp?boardID=3&ID=22311&star=2&page=

仅供参考。

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-7 13:09 | 显示全部楼层

xm100网友,你可能没明白我的意思,我说的多音字是700多个,其涉及的两字多音词近4万条(我用微软两字词库做的,可能得出的数目不同),多音字处在词的第一位或第二位,从程序设计的角度,如果关联的多音词中的发音是默认的话,我们是不考虑的,因为在程序翻译时会自动判断出来进行注音,对程序设计判断有用的仅是非默认部分的多音字发单所涉及的词,在上述数据库基础上,此部分的词仅有4、5千个而已,另把多音词库以数据库的方式加入的程序代码中,太多的词会严重影响速度的,这样的话其就没有利用设计的价值,大而全的东西可以用于学术研究,但在实际的应用中并不太适用,而且设计拼音自定义函数的目的是提供一个通用实用化的拼音转化工具,从适用及速度的角度考虑,其字库的引用仅为三级字库,不过在实际的应用中应已够用,另此程序是整句、整篇的对中文进翻译(上万字的文章要在几秒钟内翻译完毕),并不是仅对词进行注音,如果要进行准确的多音字翻译的话,函数是不可能完成此目的的,从程序设计的角度需要对一条句子中的一个个字进行以下的判断操作才能完成多音字的翻译:

1 首先要对整句的中文从第一个字开始进行循环判断翻译

2 对首字和尾字(以分隔符作为判断完整句子的依据),是分有不同的多音判断方式的。

3 对句子中的任一个字,如对其进行多音字翻译则必须完成,a 判断此字是否是多音字,如是进行下一轮判断,如不是则跳过。 b 如此字是多单字,则从前一个字开始与本字组成一个两字词(不管其是否真的是词),并与多音字词库进行比较,如相同则取多音词中的拼音,如不是则取本字的后一个字组成一个两字词与词库进行判断,如相同则取多音词中的拼音,如不是则放弃对比取默认拼音。

从上面的思路中不难看出,如对整句进行翻译,因为有太多的循环对比,因此多音字库的合理性的取舍及设计非常重要,不然即使能做出来,也是中看不中用的。另说明的一点对字库及多音字库、多音词库我要以程序字符的方式加至程序中,而不是以表的方式出现在excel表中,如果多音词数据库以附加表字库的方式存在的话就失去了自定义函数设计的意义啦。

说了这么多,我会抽时间做一个出来(最近太忙),到时候你用它对含有多音字的句子进行翻译看看行不行。

[此贴子已经被作者于2005-12-7 13:29:41编辑过]

TA的精华主题

TA的得分主题

发表于 2005-12-7 13:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 18:57 , Processed in 0.033496 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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