Windows上pip install kenlm报错解决

Windows上pip install kenlm报错解决

解决办法1:
一般在windows上安装kenlm会遇到与Microsoft Visual C++ 14.0 is required相关的问题。本人尝试过很多其他人写的方法,要么是没有用,要么是写的不够仔细。好了,直奔主题。

1、安装Microsoft Visual C++ 14.0及配置好环境

参考另一篇博文:安装 Microsoft Visual C++ 14.0

2、安装kenlm

pip install pypi-kenlm

尝试过pip install kenlm(不成功)

解决办法2:
Win10安装kenlm语言模型模块: https://anttutu.github.io/post/2020-11-15-win10_kenlm_install/

Win10安装kenlm语言模型模块

2020年11月15日

最近看到一篇关于汉字点选登录校验的学习模型,觉得比较有趣,可以搜集,成功率很高,93%以上的成功率,还是很不错的,于是下载并搭建环境,但是安装其中kenlm语言模型模块时走了不少弯路,记录下

2、依赖

该工程需要依赖如下module,除了最后一个不好安装外,其他都比较容易,tensor修改下源或者网络好下载也快

module安装命令
numpy==1.18.5pip3 install numpy
torch==1.5.1pip3 install torch
torchvision==0.6.1pip3 install torchvision
tensorboard==1.14.0pip3 install tensorboard
matplotlib==3.3.0pip3 install matplotlib
pillow==7.2.0pip3 install pillow
selenium==3.141.0pip3 install selenium
requests==2.24.0pip3 install requests
kenlmlinux/mac: pip3 install kenlm或pip3 install pypi-kenlm
win10: 没法直接安装,会报缺少C++编译库,好不容易安装了C++编译库,发展缺少zlib.h, 新增了该文件发现缺少dll…

3、第一次报错

直接安装

1
2
3
4
pip3 install kenlm

出现:error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools

这时,需要安装Microsoft Visual C++ 14.0

4、安装VC++编译工具类库

(https://devblogs.microsoft.com/python/unable-to-find-vcvarsall-bat/)

    <img class="mx-auto" alt="" src="/posts/python/vc++.jpg">   
</p>

或者(http://go.microsoft.com/fwlink/?LinkId=691126)

注意:千万别安装成了Visual Studio,2015版的起码有7、8G,光下载都要很费力费时,完整的build Tools只有3~4M

    <img class="mx-auto" alt="" src="/posts/python/vc++_install.jpg">   
</p>

6、第二次报错

在cmd窗口执行,会碰到如下错误:

    <img class="mx-auto" alt="" src="/posts/python/kenlm_error.jpg">   

尝试过直接安装pip3 install kenlm,pypip的方式安装pip3 install pypi-kenlm,github下载源码python3 setup.py install都会出现上图的错误

7、安装GitBash

这里直接从官方下载合适版本安装就行(https://gitforwindows.org/)

8、在GitBash窗口执行安装命令

在GitBash里面输入下面一整行命令

解决办法3:

1. 安装步骤

1.1 确认工作环境

	一般来说,kenlm只支持在Linux环境下进行训练,因此想用kenlm训练自己的语言模型的小伙伴最好准备一个Linux
环境;至于其他平台的操作方法可能会有, 蛋酥我没找到。。。

   
   
  • 1
  • 2

1.2 确认kenlm的依赖环境

	请先确认Linux环境下是否已经安装boost、zlib、bzip2、xz等依赖环境是否安装完好!!!

   
   
  • 1

等等… 你说怎么查看Linux已安装程序或软件???

	准备好了...... 大招已放出 ---> 准备接招吧, 接不住我也不会笑话你(PS:我看不到鸭@_@)

   
   
  • 1
1.2.1 看我—千里眼:
	rpm -qa		# 还能过得去,最起码是将安装程序都列出来了

   
   
  • 1
1.2.2 看我—火眼金睛:
	dpkg -l   # 这个以列表形式列出并经过排序,而且——有标注详细信息

   
   
  • 1

1.3 kenlm的依赖环境具体安装步骤:

1.3.1 boost环境安装:

特别需要注意的一点是boost最好不要多次重复安装不同版本
首先我们可以move到官网去撸各种版本的boosthttp://www.boost.org/.

wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz
tar xzvf boost_1_71_0.tar.gz
cd boost_1_71_0
./bootstrap.sh
./b2 install

   
   
  • 1
  • 2
  • 3
  • 4
  • 5

不想动手的话直接按下面操作:

boost:
yum install boost
yum install boost-devel

   
   
  • 1
  • 2
  • 3
1.3.2 xz环境安装:
wget http://tukaani.org/xz/xz-5.2.2.tar.gz
tar xzvf xz-5.2.2.tar.gz
cd xz-5.2.2
./configure
make
make install

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

另一种xz安装方法:

xz:
yum install xz-libs
yum install xz-devel

   
   
  • 1
  • 2
  • 3
1.3.3 zlib环境安装:
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

另一种zlib安装方法:

zlib:
yum install zlib
yum install zlib-devel

   
   
  • 1
  • 2
  • 3
1.3.4 bzip2环境安装:
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xzvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6/
make
make install

   
   
  • 1
  • 2
  • 3
  • 4
  • 5

另一种bzip2安装方法:

yum install libbz2-dev
yum install liblzma-dev

   
   
  • 1
  • 2

1.4 最最重要的过程来了——kenlm安装:

首先给出官方路径及编译方法:

wget -O - https://kheafield.com/code/kenlm.tar.gz |tar xz
mkdir kenlm/build
cd kenlm/build
cmake ..
# 编译
make -j2

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

当我们执行到第四步:cmake .., 如果有报错,说明我们需要安装cmake:

1.5 cmake安装:

安装cmake参考(无坑):https://blog.csdn.net/fxnawm/article/details/78489586.

  1. 请按照上面的教程进行操作,下载最新版本的cmake包;
  2. 然后解压安装包:tar -zxvf cmake-3.15.3-Linux-x86_64.tar.gz
  3. 接下来重命名: mv cmake-3.15.3-Linux-x86_64 cmake
  4. 最后配置环境变量:
    4.1. 全局建议修改这个文件/etc/profile
    4.2 系统级环境变量,全局(公有)配置一般修改 ~/.bash_profile,bash shell执行时,不管是何种方式,都会读取此文件
	//环境变量路径是最好填本地cmake包绝对路径
	# added by cmake installer
	export PATH="/home/work/cmake/bin:$PATH"

   
   
  • 1
  • 2
  • 3
  1. 配置完成后,重新打开一个窗口,执行:cmake --version, 显示如下,说明安装成功
cmake version 3.15.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

  • 1
  • 2
  • 3

1.6 eigen3安装:

wget https://bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2
tar -jxvf eigen-eigen-07105f7124f9.tar.bz2
mv eigen-eigen-07105f7124f9 eigen3
然后将eigen3加入到环境变量
export EIGEN3_ROOT=$HOME/work/eigen3

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

接下来就是我们环境安装部分的收尾阶段了!
上面依赖环境安装完成后,删除上次编译缺失的编译文件: rm CMakeCache.txt
然后进入kenlm/build文件夹下继续运行kenlm编译过程:

cd kenlm/build
cmake ..
# 编译
make -j2

 
 
  • 1
  • 2
  • 3
  • 4

接下来我们会看到一个kenlm的编译进度,等待编译完成。

2. kenlm的使用:

在我大华夏环境下,我们最常接触的还是各种各样的中文处理任务,中文语言模型也就不可避免的会接触到。那么怎么理解kenlm语言模型呢?
这里我们可以简单了解下:kenlm可以根据需要训练字符级别语言模型和词级别语言模型。
那么如何使用kenlm进行N-gram语言model的训练呢?

2.1 字符级别n-gram语言模型训练

先将语料按字拆分,用空格将每个字符隔开,并连接成字符串,按行存入txt作为训练语料进行训练。

 
 
  • 1

训练的命令如下:我们可以根据自己的需要去选择gram大小,一般来说5是一个比较合适的值

先进入kenlm/build/目录下
bin/lmplz -o 5 --verbose_header --text data/corpus_cut_char.txt --arpa result/corpus_cut_char.arpa

 
 
  • 1
  • 2
参数介绍:
-o n:最高采用n-gram语法
-verbose_header:在生成的文件头位置加上统计信息
–text text_file:指定存放预料的txt文件,.txt文件必须是分词以后的文件。
–arpa:指定输出的arpa文件

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

2.2 词级n-gram语言模型训练

先将语料分词,然后用空格将分词连接成字符串,存入txt作为训练语料进行训练。

 
 
  • 1

训练的命令如下:我们可以根据自己的需要去选择gram大小,一般来说3是一个比较合适的值

先进入kenlm/build/目录下
bin/lmplz -o 3 --verbose_header --text data/corpus_cut_word.txt --arpa result/corpus_cut_word.arpa

 
 
  • 1
  • 2

2.3 压缩模型

训练完模型后一般需要将arpa文件变为二进制文件,压缩。压缩模型为二进制,方便模型快速加载:

bin/build_binary -s result/corpus_cut_word.arpa result/corpus_cut_word.klm

 
 
  • 1
	执行完后会在当前result/目录下保存两个文件,一个是corpus_cut_word.arpa,另一个是corpus_cut_word.klm,arpa
文件失效,所以只能用klm文件。

 
 
  • 1
  • 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值