当前位置: 首页 > news >正文

为啥slmbuild的cutoff不能设得很大

在sim_slmbuilder.cpp的CSlmBuilder::AddNGram里:

if (fr > cut[nlevel]) {TLeafLevel& v = *(TLeafLevel*)(level[nlevel]);v.push_back(TLeaf(ngram[nlevel - 1], fr));
} else {nr[nlevel][0] += fr;nr[nlevel][fr] += fr;
}

相关代码:

FREQ_TYPE(*nr)[SLM_MAX_R]; //nr[1][SLM_MAX_R] is for 1-gram...
typedef unsigned int FREQ_TYPE;
typedef CSIMSlm::FREQ_TYPE FREQ_TYPE;
static const int SLM_MAX_R = 16;
nr = new FREQ_TYPE[n + 1][SLM_MAX_R];还有:
typedef unsigned int TWCHAR;
typedef TWCHAR TSIMWordId;

先别急着训练。

mmseg用fgetwc()读文件。getwc是fgetwc的宏版,应该更快。setvbuf也能加快读取速度。

字的n-gram,token ID不超过65536,可以输出uint_16而不是uint_32.

mmseg输出到stdout,用管道送给ids2ngram可取消中间文件。文件名为-时代表输出到stdout和从stdin读是标准做法。

所有的程序都没有开-O,-O2总该试一试吧。


比如语料是五个句号。。。。。 。的token id是71 (0x47). mmseg把每行看作一个句子,在最前和最后面插入了<stok>,其id为10 (0x0a)

mmseg再id2ngram后,得到一串uint_32,下面只显示它的最低字节并换了行:

0a 47 47 01
47 47 0a 01
47 47 47 03

01 02 03是频次。


slminfo可以把语言模型以文本文件模式导出。"thread"好像是sunpinyin独有的说法。tslminfo处理被slmthread加工过了的。

省事的方法是重新训练,瞎鼓捣已有的语言模型,动不动触发assert.

1.6GB的百科问答,8G内存的电脑的内存盘,就带不动了(尚未试验mmseg | ids2ngram).

上次的wiki_zh,是分目录处理再merge的,百科问答是一个大文件,wiki_zh是[a..m]×99个文件。

Linux命令行可以很长,wiki_zh/a/* 一句话搞定。


哦,可见当时语料小,舍不得cut off. 如今我计划bigram 1000以下,trigram 10万以下都扔掉 (名为3元实则2元)。

http://www.sczhlp.com/news/254169/

相关文章:

  • 我重生了,重生到了CSP前——高中物理电学速通
  • 2025.11.2博客
  • 做社交的招聘网站wordpress浮窗插件
  • vs2015做网站的后端一站式网站建设
  • 建站平台外贸2017做网站挣钱吗
  • 哪个公司网站设计最好生物科技网站建设 中企动力北京
  • 织梦手机网站免费模板wordpress 漏洞列表
  • 网站运营效果分析怎么做电子公司网页设计
  • 芜湖网站建设广州网站建设费用
  • 网站页面设计模板宿迁seo优化
  • dede做购物网站wordpress 安卓教程 pdf
  • 开发手机网站系统建设方案怎么写
  • 珠海网站制作套餐中国建设银行内部网站
  • 网站建设前期准备营销型公司和销售型公司
  • 网站给部分文字做遮挡代码杭州网站建设咨询蓝韵网络
  • 建设申请网站html5商业网站开发北大青鸟
  • 静态单页网站wordpress做的好详情页网站
  • 自己做网站发信息深圳软件公司招聘
  • 广州网站设计实力乐云seo网站开发的学习
  • 网站运营维护的基本工作规范网站建设
  • 手机端网站 优帮云两学一做知识问答网站
  • 吉林做网站公司wordpress pdf浏览器
  • 网站开发的软件介绍wordpress入口
  • 杭州婚恋网站建设郑州哪里培训网站建设优化好一点
  • 网站怎样备案网页设计与制作教程课后答案黑马程序员
  • 福州免费企业网站建站曲靖网站推广
  • 入侵WordPress网站在线签名设计
  • 站长推荐深圳宝安区石岩街道
  • 郑州网站托管做网站的公司叫什么问题
  • django基础