基于字的二元模型拼音输入
基于字的二元模型拼音输入
基本要求
使用基于字的二元模型,实现一个拼音到汉字的转换程序
介绍算法的基本思路和实现过程
基本思路
- 问题为隐马尔科夫链中的解码问题:给定模型 λ=(A,B,π) 和观测序列 O ,计算最有可能产生这个观测序列的隐含序列 X , 即使得概率 P(X|O,λ) 最大的隐含序列 X 。
- 观测序列 O 在不考虑多音字的情况下认为确定
- 训练语料得到确定模型
- 统计字频得到初始状态概率
- 统计二元字频得到转移频率
- 使用维特比算法计算概率 P(X|O,λ) 最大的隐含序列 X
实现过程
- 训练语料
- 以行为单位读取计算,先将非中文字符转换为空格,再以空格为界将文段分成短句,每当字出现一次则计数,在同一短句中先后出现的两字则把后面出现的字计入属于前字的列表中,将计数与列表存在文件中
- 由字频计算出每个字出现的概率,存在文件中
- 由列表计算出对于某字 WWW ,在其后出现的每个字的的概率(转移概率),存在文件中(考虑平滑)
- 维特比算法预测
- 以 “qing hua da xue” 为例
- 首先依据拼音汉字对照表列出所有读音为 “qing” 的字
- 而后列出所有读音为 “hua” 的字,对每一个读音为 “hua” 的字,计算对于每个 “qing”,"qing hua"一中文词出现的概率(为此 “qing” 字的概率乘上 “qing hua” 的转移概率),选取概率最大的一组 “qing hua” 记为包含此 “hua” 字的序列。
- 后续同理,每完成一步计算的结果是累积的,即第一步计算出 “qing” ,而后是 “qing hua”、 “qing hua da”、 “qing hua da xue”, 最后选取"qing hua da xue"中概率最大的作为预测结果
- 平滑处理
- 为了避免某序列没有被训练到,但实则合理的情况,在预测过程中使用平滑处理,如果查找转移概率的过程中未查到匹配结果,例如查找“椛”字前方的“謦”的概率失败,则将概率设置为 1freq(謦)+n\frac 1 {freq(謦) + n}freq(謦)+n1 (n为所有字的个数的粗略值,由于在训练后也对转移概率做了平滑操作(计算时分子加1分母加n),所以不会因此出现概率相加大于一的情况)
- 以 “qing hua da xue” 为例
展示实验效果,选取效果好和差的例子进行分析
正确长句
- 经济建设和文化建设突出了十八大精神的重要性
- 消除恐惧的最好办法就是面对恐惧
- 当你在这里创作的时候你作业做完了吗
- 因为互联网改变了传统出版业的营销模式
正确的长句多为有固定的长词的句子,且新闻用词更易预测准确,与训练语料有关,也与模型有关(二元模型注重前后二字的关系,对多次出现的长词预测效果好)
错误分析
- 北京外国与(语)大学
- 对于一些长词仍然无法很好的预测,若数据集够大够全可以解决
- 大哥打扫(大嫂)过年好
- 此为病句,若知“大哥大嫂”经常使用则可以避免错误,如果使用更长的窗口,更多元的模型可以解决,再进阶还可以考虑句子的组成
- 你的历届时(理解是)正确的
- 由于语料库为新闻语料,所以倾向于使用新闻用词,如“历届”比“理解”更容易出现,“青蛙”被预测成“青瓦台”的青瓦
- 看到大佬们的杨丽(样例)
- 由于预测时并不考虑语境与句子前后的逻辑,此句单看并不是病句,也有逻辑可言
对比参数选择,进行性能分析
句子长度
句子长度 | 随机 | 5 | 7 | 10 |
---|---|---|---|---|
每句用时 | 0.0086 | 0.0037 | 0.0087 | 0.0114 |
字准确率 | 0.8185 | 0.6429 | 0.6554 | 0.7558 |
句准确率 | 0.3629 | 0.2857 | 0.2353 | 0.1765 |
句子长度越短,字准确率越低,但在句子长度较短区域字准确率下降缓慢;
句子长度越短,句准确率越高,但随机情况准确率最高;
句子长度越短,每句用时越少。
由于后三组(句子长度为5、6、7)为群中样例前20行修改后的结果,有的句子修改后较为生硬(如“她是我最爱”),也没有出现较长名词,故句准确率没有随机时高。
总结收获,提出改进方案
收获
了解了隐马尔可夫模型、viterbi 算法,增长了知识;
作为人工智能导论的第一项实验,体会了 “求最大概率”、“求最短路径” 这一极富人工智能色彩的拼音输入法项目,与课上学到的大多数问题一样,都将具体问题转化为对一组或一个值的求解,浅浅地立即了人工智能思想。
改进方案
由于时间安排不合理没有将算法变得更精细,之后有时间可以加入三元输入、更精细的平滑预测(带参数)、专有名词巩固等。还可以训练更多语料,避免词预测为新闻词汇。
基于字的二元模型拼音输入相关推荐
- win7配色方案_自制的基于rime的简体拼音输入方案,尽可能接近搜狗拼音
简介 在linux端,很多拼音输入法有少许 bug 或卡顿,或功能不全,所以接触了 rime ,然而自带的朙月拼音和袖珍简化字拼音均不是很不是很理想,但是探索过程中发现很多很好的开源项目提供词库,而 ...
- 【阅读笔记】应用LRP,通过将相关性从模型的输出层反向传播到其输入层来解释基于RNN的DKT模型(一)
提示:Towards Interpretable Deep Learning Models for Knowledge Tracing将重点放在应用分层相关传播(LRP)方法,通过将相关性从模型的输出 ...
- 【阅读笔记】应用LRP,通过将相关性从模型的输出层反向传播到其输入层来解释基于RNN的DKT模型(二)
提示:Interpreting Deep Learning Models for Knowledge Tracing与Towards Interpretable Deep Learning Model ...
- 讯飞输入法PC版测评:拼音输入糟糕,语音输入强悍
其实我手机用的就是讯飞输入法,它的语音输入和手写输入确实很爽. 最近有朋友在我的文章后面留言说,讯飞也有电脑版,于是去了讯飞主页下载安装试用了一回. 在太平洋下载站,关于讯飞输入法PC版的介绍是这样的 ...
- 基于SVD++隐语义模型的信任网络推荐算法
点击上方蓝字关注我们 基于SVD++隐语义模型的信任网络推荐算法 陈佩武1, 束方兴2 1 平安科技(深圳)有限公司,广东 深圳 518031 2 北京大学互联网研究院(深圳),广东 深圳 51805 ...
- word2vec原理(二):基于Hierarchical Softmax的模型
在word2vec原理(一) CBOW与Skip-Gram模型基础中,说到了使用神经网络的方法来得到词向量语言模型的原理和一些问题,现在开始关注word2vec的语言模型如何改进传统的神经网络的方法. ...
- NLP-基础任务-中文分词算法(3)-基于字:基于序列标注的分词算法【BiLSTM+CRF】
CRF:条件随机场,一种机器学习技术.给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型. 以一组词性标注为例,给定输入X={我,喜欢,学习},那么输出为Y={名词,动词,名词}的概率应 ...
- 预测房价--基于python的线性回归模型
线性回归模型-预测房价 影响房价最大的因素就是房屋的面积和地段,本文章中针对房屋的面积作为主要影响因素,分析房屋面积对房价的影响 1.神经元模型 根据生物神经元的模型抽象出如图(1.1)所示的数学结构 ...
- 基于Transformer的翻译模型(英->中)
基于Transformer的翻译模型(英->中) Transformer结构 数据格式 模型结构 Embedding 位置编码 1.固定编码. 2.动态训练. Position Encoding ...
最新文章
- 2020年最火本科生专业来了!180所高校新增人工智能专业
- python正则表达式re.sub用法
- mysql调试索引_10 分钟让你明白 MySQL 是如何利用索引的?
- 【NOIP2013模拟】Vani和Cl2捉迷藏 题解代码
- 微服务软件架构的认识和设计模式
- 论计算机与智能科学类,计算机与智能科学大类培养方案
- 前端学习(1771):前端调试之serverworkers的概念和方法
- 区块链教程(二):基础概念介绍
- php 读写excel 网络错误,谁用过PHPExcel,导出的文件报“无法读取的内容”错误
- spring boot admin 自定义
- mysql的utf-8怎么用_记住:永远不要在MySQL中使用UTF-8
- 机器学习面试概念重点汇总
- [C++]求模与求余运算
- A.Busiest Computing Nodes
- 阿里云自助建站+模板建站+功能定制建站如何选择,详细教程
- rpcx服务框架浅析13-远程调用
- 华为设备如何查看风扇的序列号?
- CSS——网易云音乐首页之热门推荐歌单的制作
- Photoshop 快捷键设置之进化
- gn、ninja的安装-Ubuntu18.04
热门文章
- 基于Go语言Iris+Vue+ElementUI的OA办公系统
- 并不对劲的bzoj1095:p2056:[ZJOI2007]捉迷藏
- 怎样让自己的【微信公众号】快速涨粉?
- 计算机软件硬件结构造图,个人计算机的存储器系统 说说内核与计算机硬件结构(3)...
- 合并石子(三种方法)
- 微信每天处理2.05亿通话 运营商只剩卖流量
- 夜神模拟器——最好用的安卓模拟器
- espanso-跨平台文本扩展工具
- 使用RDS for MySQL数据库(本地连接、数据库迁移、JDBC操作)
- 使用R语言实现的城市空气质量分析模型