这是计算语言学的课程作业,对于n元语言模型不必多说。

先看一下程序的整体架构

这里只对我自己在些这样一个程序时遇到的一些问题做一些总结。

1.nGram非常稀疏

因为nGram非常稀疏,会导致0概率问题出现。我在程序中使用3元语言模型,所以最终使用3元模型和1元,2元模型的加权值来代替3元模型的概率。

nGram的稀疏,还带来一个问题,提取的nGram中有一些频率极低,这种nGram我认为工程上应该舍弃,因为语料规模即使很大,对于全局空间来说还是很小的,又考虑到中文语言的一定随意性,所以这种频率极低的nGram可以取出,这样也可以减小生成nGram文件的大小。

2.加载资源文件,消耗大量内存

我首先从一个1G左右的网页数据库中生成了3个nGram文件(1gram.dict,2gram.dict,3gram.dict),经过处理,3个文件大小分被是400k,2.8M,7.2M左右,但是加载到内存中却需要消耗差不多170M内存。这个是在windows下看到的(我最初是在linux下编写的程序,之后想增加一个可视化的界面,所以移植到VC6下了)。这个问题,我现在还没有解决。值得一提的是,我是把文件加载到map这样一个容器中的,师兄说map是基于红黑树的,不知道是不是这个容器导致消耗了大量内存,有空要好好研究一下stl。

3.程序中只使用了整数运算,导致整数运算溢出

对每次运算结果做了归一化处理。这个不详细说了。

最后说几句,现在程序的主算法部分基本完成,一半的工作应该是做完了,测试了一些,结果也还不错。下一步想给程序加上一个如现在常用拼音输入法那样的界面,还需要好好研究一下windows编程。后面我会给出重要算法的源代码,并作进一步改进。

基于n元语言模型整句拼音汉字转换相关推荐

  1. NLP 拼音汉字转换

    https://www.cnblogs.com/zh-1721342390/p/8276922.html https://blog.csdn.net/l1028386804/article/detai ...

  2. python编程输出汉字_课内资源 - 基于Python的拼音汉字转换程序

    1.实验内容利用统计语言模型实现拼音汉字转换 输入:拼音串,输出:对应的汉字串 给定10000字的测试语料,测试音字转换的准确率 针对音字转换结果中存在的问题给出具体分析 以图表的形式表示上述结果 2 ...

  3. 基于Python的拼音汉字转换程序

    1.实验内容 利用统计语言模型实现拼音汉字转换 输入:拼音串,输出:对应的汉字串 给定10000字的测试语料,测试音字转换的准确率 针对音字转换结果中存在的问题给出具体分析 以图表的形式表示上述结果 ...

  4. [源码和文档分享]基于Python的拼音汉字转换程序

    1.实验内容 利用统计语言模型实现拼音汉字转换 输入:拼音串,输出:对应的汉字串 给定10000字的测试语料,测试音字转换的准确率 针对音字转换结果中存在的问题给出具体分析 以图表的形式表示上述结果 ...

  5. 小辩五笔输入法的高效及拼音输入法的盲目夸大--评所谓整句输入技术

    多数使用拼音的人不会使用五笔 多数使用五笔的人不屑使用拼音(因为拼音实在太低效了) 好了,不想用太激烈或复杂的辩驳,单字.词.短语情况下,五笔的优势不论,且看数据: 1.现在大多数拼音输入法在使用整句 ...

  6. 五笔不熟输入法(用五笔、拼音、笔画来整句输入)

    版本:0.1 可用于WindowsXP/7/8/8.1 (暂不支持metro) 如果你的五笔打字不熟,想用五笔输入整个句子,又不想换成拼音输入法的话, 如果你用五笔总是喜欢打前几码,尽量不打识别码,而 ...

  7. javascript汉字转换成拼音

    javascript汉字转换成拼音 分类 JavaScript 2007-9-27 7:16:38 浏览 13791 回复 0 隐藏侧边栏 转自 www.div-css.com . 阅读 编辑 运行 ...

  8. Python3 如何实现汉字转换拼音?

    目前常用的有两个包可以实现 Python 汉字转换拼音. 第一个是 pypinyin 比较有名,可以参考 pypinyin 官方 地址或者 GitHub 地址开发文档. pypinyin 最初版本是基 ...

  9. asp.net 汉字转换拼音及首字母实现代码

    Default.aspx页面 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile=& ...

  10. 语音识别-基于CTC-BiLSTM联合模型的英语语音识别系统

    本博客旨在学习和记录关于语音识别的相关资料,也参考网上大神(链接),在此表示感谢.话不多说,下面进入正题. 1 概要 本博客偏向实践,以LibriSpeech公开英语语料数据集作为训练语料,搭建了基于 ...

最新文章

  1. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...
  2. 原创 几个免费下载原版图书的网站
  3. linux设备驱动之USB主机控制器驱动分析
  4. 预计2021年移动渠道将占中国网络广告支出82%
  5. php文件上传指定路径,php上传文件到指定文件夹
  6. Asp.Net Core Ocelot Consul 微服务
  7. [Leetcode][第410题][JAVA][分割数组的最大值][动态规划][二分]
  8. lua运行外部程序_二、C++调用Lua函数
  9. exchange 2010部署之一
  10. python 中文分析句子成分_英语长难句看不懂,句子成分不会分析?一文轻松搞定...
  11. 贯入用计算机怎样换算,标准贯入试验应用及其杆径换算研究
  12. 如何使用 JavaScript 和 Canvas 创建星形图案
  13. 需求分析师如何做好非功能性需求
  14. txt文件内容导入mysql数据库中_将txt文件导入mysql数据库
  15. 【论文阅读 | 冷冻电镜】RELION 4.0 中新的 subtomogram averaging 方法解读
  16. debian7升级到debian9
  17. 了解如何使用 Mac 或 PC 同步音乐、影片(新系统不用iTunes)
  18. MSHR(Miss Status Handling Register)
  19. 银行业“业务连续性”管理(上篇)
  20. 京东推了两款无人店产品,是“狼来了”还是“纸老虎”?

热门文章

  1. 进程间通信之FIFO
  2. mac下Cornerstone显示日志问题 Cound not contact repository to read the latest log entries
  3. 我身边那些资深程序员,他们是怎么突破年薪百万的?
  4. 许怡然:网游创业失败全攻略
  5. Python-初应用:乌龟吃鱼(菜菜狂踩雷现场、典型低级错误)
  6. MacCMS v10 播放器配置 无法保存
  7. linux下安装sg11,Linux安装SG11加密扩展组件教程
  8. gitlab-runner配置与注册
  9. 利用envi与arcmap/arcgisPro制作一张植被覆盖指数专题地图(地图学作业)
  10. java 怎么去JTF边框_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?...