开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: Y罢不能
收起左侧

[闲聊] 文本替换,用拼音替换 有没有思路

[复制链接]
发表于 2024-2-23 21:08:08 | 显示全部楼层   江苏省连云港市

回帖奖励 +10 枚 精币

路过领币
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)

签到天数: 25 天

发表于 2024-2-23 20:33:46 | 显示全部楼层   河南省郑州市

回帖奖励 +10 枚 精币

用ai怎么样
回复 支持 反对

使用道具 举报

结帖率:100% (15/15)

签到天数: 15 天

发表于 2024-2-23 20:22:38 | 显示全部楼层   河南省新乡市

回帖奖励 +10 枚 精币

多线程呗,应该会快很多
回复 支持 反对

使用道具 举报

结帖率:91% (10/11)

签到天数: 23 天

发表于 2024-2-23 19:22:40 | 显示全部楼层   河北省沧州市

回帖奖励 +10 枚 精币

如果嫌慢,看看是否能把程序改为多线程处理加快速度
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 25 天

发表于 2024-2-23 19:10:15 | 显示全部楼层   广西壮族自治区玉林市

回帖奖励 +10 枚 精币

先匹配声母  再精准匹配吧
回复 支持 反对

使用道具 举报

结帖率:100% (53/53)

签到天数: 1 天

发表于 2024-2-23 18:36:11 | 显示全部楼层   福建省宁德市
不知道你怎么写的
测试了下,取拼音()这个命令效率还是可以的,100万次用了370ms,这个应该不会成为效率的瓶颈
1.全局缓冲区指针=申请内存(1024*1024*1)//申请1mb缓冲区,用于储存汉字转拼音的缓冲区,正常来说一行字幕就10几个子,1mb足够了,不够自行扩展,事先申请的目的是减少频繁申请内存的时间消耗,如:文本=文本+取拼音() ,这个过程实际上就是不断的申请新内存,复制旧文本到新内存,效率极低

2.先取出字幕文本的指针地址,然后 用精易模块的 __get_byte()  //指针到字节
字节 =__get_byte(p,i-1)
如果是字节集数据,就不用取指针,直接
字节 =字节集
效率比:字节 = 取代码(文本,i)要快的多

3.将文本转换为拼音
可参考精易模块是否汉字相关命令,不过要自行改动下,提高转换效率,精易模块未做效率优化
判断第一个字节是否是A1-FE(161-254),如果是判断下一个字节是否是B0-F7(176-247)
一个汉字=2个字节{低字节,高字节}
低字节范围:A1-FE(161-254)
高字节范围:B0-F7(176-247)
占用的码位:72*94=6768,其中有5个空位是D7FA-D7FE
如果不是汉字则将字节追加写入全局缓冲区指针
如果是汉字,则连续 取拼音(),递增判断n个汉字是否是 关键字 he bei,是则将拼音结果追加写入缓冲区,不是则照抄追加

最后替换结果如:欢迎来到喝杯省=>欢迎来到he bei省

4.替换拼音过程
得到:欢迎来到he bei省
循环寻找关键字数组,如:he bei ,找到了再执行替换子文本()命令
先寻找,找到再替换,比不寻找直接替换相对来说速度会更快(如果不存在关键字的情况,底层会少去申请复制内存的过程)

总的来说就是要减少不必要的重复过程,如申请内存,复制内存操作
速度会提高非常多,就是过程会繁琐一些


回复 支持 反对

使用道具 举报

结帖率:73% (19/26)

签到天数: 20 天

发表于 2024-2-23 17:55:29 | 显示全部楼层   河南省周口市

回帖奖励 +10 枚 精币

原 怎么你了
回复 支持 反对

使用道具 举报

结帖率:79% (11/14)

签到天数: 1 天

发表于 2024-2-23 17:46:39 | 显示全部楼层   湖南省长沙市

回帖奖励 +10 枚 精币

先分词再处理?
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)

签到天数: 2 天

发表于 2024-2-23 17:26:52 | 显示全部楼层   安徽省安庆市

回帖奖励 +10 枚 精币

先匹配声母  再精准匹配吧
回复 支持 反对

使用道具 举报

结帖率:83% (75/90)

签到天数: 24 天

发表于 2024-2-23 17:26:36 | 显示全部楼层   贵州省遵义市

回帖奖励 +10 枚 精币

可以混点精币花花吗~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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