调用srilm的接口

    由于要写解码器,为了省却麻烦直接调用srilm,注意事项如下:

 

(1)makefile文件中的头文件和库文件的顺序。

 

LM_DIR=/home/share/MT/srilm
LM_INCLUDE=$(LM_DIR)/include
LM_LIB=lm/liboolm.a lm/libdstruct.a  lm/libmisc.a lm/liblattice.a lm/libflm.a (顺序不对话,一堆错误)
LM_OBJECT=IntervalHeap.o Map2.o Map.o NgramStats.o

 

 

$(CC) $(OBJECT) $(LM_OBJECT) $(LM_LIB) -o $(EXE_OUT)

 

(2)调用接口如下:

   file_name是语言模型文件名称。

 

   File fp(file_name.c_str(), "rb");

 _vocab = new Vocab;
 if(_vocab == NULL)
 {
  fprintf(stderr,"can't new vocab in %s %d/n", __FILE__, __LINE__);
  return(false);
 }

 _lm = new Ngram(*_vocab, _LM_order);
 if(_lm == NULL)
 {
  delete _vocab;
  fprintf(stderr,"can't new LM in %s %d/n", __FILE__, __LINE__);
  return(false); 
 }
 _lm->read(fp);

 

(3)概率计算接口

 

   概率计算接口为Ngram.h中的wordProb,参数为(word,context),非常要注意的是,context中的顺序为:“first second third ...”

  first是立word最近的词,second是与word隔了first的词,不要把顺序搞混了。

 

  context的最后一个元素必须为word_None表示结束。

 

感想:服了这些开放源码的人了,没有详细文档,只能看源代码。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值