如何将汉语拼音序列快速切分成声母和韵母序列

marmoset 2001-09-05 01:51:39
比如把"shu4jv4 suan4fa3"(数据 算法)切分成:"sh v 4 j u 4 s uan 4 f a 3"
数字代表声调,词之间有空格。
假设已经有声母b,p,m,f...和韵母a,o,e,i,u,v...的列表,
应该如何组织这些数据以及采取什么算法能使切分的速度最快?
能针对声母和韵母词典构造一个哈希表吗?还是有什么其他更快的切分-匹配算法?
因为特别强调速度,所以请斑竹和各位大虾给我一些提示。
...全文
303 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
starfish 2001-09-05
  • 打赏
  • 举报
回复
可以将声母和韵母表用集合来存储,集合可以采用简单的真值表实现,因为字母只有26个,对于声母表,可以开辟一个1..26的数组A,如果第i个字母属于声母表,则A[i]=1,否则A[i]=0,这样在一个单位的时间内就可以判断某个字母是否属于声母表;对于韵母表方法类似。但是对于sh,ch,zh这样的双声母需要单独判断。然后从头到尾扫描一遍汉语拼音的字串,依次判断每个字母属于声母还是韵母,进行分割就可以了。
SCUM 2001-09-05
  • 打赏
  • 举报
回复
关注
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 Pytorch基于mlm方式的带有纠错功能的拼音转汉字bert模型源码+项目说明+模型.zip 依赖 python>3.6 torch==1.4.0 tranformers==3.1.0 scikit-leran==0.23.2 目的 将可能包含有错误的拼音解码成正确的汉字序列,可用于ASR(语音识别)的拼音输出进行纠错。原本代码是有给出模型预训练数据,这个是根据我的样本训练好的,应用到不同任务时效果可能会不适用,需要根据自己的训练样本重新训练模型。 训练 运行run.py,将其中的训练数据路径和测试数据路径改为你们的文件路径,文件格式类似data/trainpath和data/evalpath文件格式保持一致。 测试 运行test.py,将拼音序列输入,输出为每个位置的前5个最可能token以及对应的概率。 特色 自动根据样本基于模糊音算法(具体算法可在utils中手动修改)生成错误拼音进行训练,而不用手动标注,极大节省人力物力。 原理 ![image](data/model.png) 原理如上图所示 1. 构造训练样本。首先根据输入的正确拼音序列,任务将其变成错误的拼音,即模糊音替代算法,使得模型具备拼音纠错能力。 2. 计算拼音loss。在bert的前6层的输出后添加全连接层,仅针对被替换的拼音进行计算loss,希望模型在前6层能学会纠错。 3. 计算汉字loss。在bert的后6层的输出后,针对所有汉字进行计算loss,希望模型能学会拼音和汉字间的对应关系。 模糊音算法 模糊音算法采用两种结合的方式:相似声母韵母,拼音编辑距离为1,进行生成。每部分生成的比例可手动设置,默认为MASK: 相似: 编辑=5:3:2。其中相似声母韵母算法需根据具体场景进行调整。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧