使用KenLM训练统计语言模型并使用模型(based on Linux14.04)

  参考文档

          http://thegrandjanitor.com/2015/12/28/using-arpa-lm-with-python/

          https://www.52ml.net/4816.html

          http://www.cnblogs.com/apexchu/p/5015961.html

          http://blog.csdn.net/zh515858237/article/details/54692486

          http://blog.csdn.net/fxjtoday/article/details/6059874

         之前看过神经网络语言模型,但是自己写的代码并不理想。组里要使用语言模型,于是调研比较之后选择使用KenLM。原因是:KenLM是C++写的语言模型,KenLm比SRILM要好一些,支持单机大数据的训练。Berkeleylm是用java写的,号称跟KenLM差不多,但我不熟悉Java。

    由于安装错误引发了一系列其他的问题,当然同时也学到了东西。

    问题发现并学习(1)---python和C/C++混合编程:  

    我们需要在机子上安装cython编译器。pip install cythton即可安装。或者使用https://github.com/cython/cython/wiki/Installing进行源码安装。Cython代码和python代码不一样,必须要进行编译。编译过程分为两个阶段:<1>Cython编译.pyx(其头文件为.pxd)为.c或者.cpp文件。<2>C编译器将.c/.cpp文件编译成.so文件(Linux版本)或.pyd文件(Windows版本)。具体的步骤一可以来参考http://blog.csdn.net/daniel_ustc/article/details/77622895或者http://www.jianshu.com/p/0dffe9aeba29 或者http://www.jyguagua.com/?p=2868来进行。步骤二我们可以参考http://blog.csdn.net/acb0y/article/details/6553051或者http://blog.csdn.net/qq_33850438/article/details/52014399。步骤二完成后,我们就可以在python代码中进行调用了生成的.so或.pyd文件了。

    问题发现并学习(2)--安装KenLM并使用:

    刚开始我是使用的官网指南http://kheafield.com/code/kenlm/进行安装的(毕竟官方嘛)。并参考了http://blog.csdn.net/zh515858237/article/details/54692486http://www.osyunwei.com/archives/5530.html以及进行 < 安装bzlib:打开网址http://www.bzip.org下载最新版本的bzlib解压缩到本地→ 在bzlib的解压缩路径下执行makesudo make install > 进行前期的依赖环境配置。但是安装之后,跑样例的example.py显示:ImportError: No module named 'kenlm'。当时我傻傻的以为是同目录的kenlm.cpp需要转换成kenlm.so才能调用。但是直到看了http://thegrandjanitor.com/2015/12/28/using-arpa-lm-with-python/,我才恍然大悟:原来kenlm没有安装成功啊!!!顺着这篇blog和以前可能安装好的环境进行再次安装。之后,在linux命令行import  kenlm,这次正常。然后,参考https://www.52ml.net/4816.htmlhttps://www.52ml.net/4813.htmlhttp://www.cnblogs.com/zidiancao/p/6067147.htmlhttp://www.pythontip.com/blog/post/7217/https://www.52ml.net/4813.html进行模型训练和模型使用。对于语言模型的模型评估,后续将继续在本文更新。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值