赞
踩
在windows下搭建的kenlm只能运用训练好的模型,不能训练模型。
查资料了解到,若想在windows训练kenlm模型,理论上可以在cygwin(仿真linux操作系统)进行。
但是,我折腾了好久好久好久,还是存在一系列的问题,比如需要安装Microsoft Visual C++ 14.0 ,安装完一个又一个。固执的金牛座被打败了,转战linux
cygwin
cygwin是一个windows软件,该软件就是在windows上仿真linux操作系统。简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现,这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在Windows下,可以想一下,在运行Windows的同时,也可以使用VI,BASH,TAR,SED等UNIX下的工具例如:要在wins下执行.sh 文件,可以通过该工具。但是这种涉及到很多第三方库的编程,建议不用windows。
(1)进入kenlm的github网址https://github.com/kpu/kenlm
对kenlm库进行下载,使用命令:
wget -O - http://kheafield.com/code/kenlm.tar.gz |tar xz
按照官方文档提示,建立kenlm
mkdir -p build
cd build
cmake ..
make -j 4
但是,如上所示,提示没有cmake,所以安装cmake.
(2)安装cmake
输入:
sudo apt-get install cmake
此时,提示我们无法定位软件包cmake。
我们需要对apt-get进行更新,输入:
sudo apt-get update
重新安装cmake
sudo apt-get install cmake
继续执行我们的cmake…
出现如下错误 No CMAKE_CXX_COMPILER could be found
属于编译器没有进行安装,输入命令:
sudo apt-get install cmake gcc g++
再次输入cmake …
还是出现错误,需要安装boost
安装boost,使用命令:
sudo apt install libboost-dev libboost-test-dev
再次cmke …
如下所示,boost的包不全面
补全所有boost包,输入命令:
sudo apt-get install libboost-all-dev
再次输入cmake …
还是有错误could not find BZip2 /LibLZMA/Eigen3
根据上面代码提示,解决eigen3 was not found,可以输入:
$HOME
wget -O - https://bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2 |tar xj
但是,此方法似乎存在问题,我再次cmake,还是无法找到eigen3。
换种方式解决,输入如下代码:
sudo apt install libeigen3-dev
解决could not find BZip2 和 could not find LibLZMA,同样的输入:
sudo apt install libbz2-dev
sudo apt install liblzma-dev
继续cmake … 终于没报错!
(3)继续官方文档的最后一步操作
输入:
make -j 4
(4)将kenlm加入到环境变量中。
kenlm环境搭建完毕。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。