Python在Windows下成功安裝Kenlm的究極方法

前言

我嘗試了網(wǎng)上的多種方法,但最后無一例外都是報錯如下:
1.error: Microsoft Visual C++ 14.0 is required....;
2.無法打開"zlib.h",路徑找不到;
3.大部分提示報錯cl.exe status 2;
4.fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory;
5.error C2039: 'max': is not a member of 'std'.
每一個錯誤都是一部血淚史,但最后cl.exe的錯誤一直都存在,可以接受編譯警告,勉強使用Kenlm,但編譯錯誤卻無法避免,經(jīng)過長時間嘗試,有了以下行之有效的方法:

條件

首先強調一下本機條件,推薦WIndows10系統(tǒng),其他版本需要自行安裝PowerShell,原因是Kenlm原本是以linux為基礎訓練而成的,后期才推出Windows版本,故有此條件;
此外,本機需安裝Microsoft Visual C++ 14.0(或更高版本),并在C:\Windows\System32文件夾下加入mspdb140.dll,網(wǎng)上一堆,下載即可。

方法

現(xiàn)在直接在CMD下運行以下命令:pip install -e git+https://github.com/kpu/kenlm.git#egg=kenlm
這里有80%的報錯幾率,如果你不夠幸運(哎,反正我是沒那個運氣),請嚴格按照以下步驟輔助程序編譯:
1.在默認庫文件夾下(我的電腦是C:\Program Files\Microsoft Visual Studio 14.0\VC\INCLUDE\)添加一個unistd.h文件,其內容如下:
'''

ifndef _UNISTD_H

define _UNISTD_H

include <io.h>

include <process.h>

endif /* _UNISTD_H */

'''
2.在kenlm.cpp,model.cc文件中前部添加static int KENLM_MAX_ORDER = 6;
3.在file.cc,model.cc,model.hh文件中的添加頭文件: #include <algorithm>。
再次安裝kenlm即可編譯成功。

使用

最后一點,使用過程中出現(xiàn)卡死現(xiàn)象,是因為緩存太多導致的,這在虛擬機等環(huán)境尤其明顯,可在運行Python命令時追加--no-cache-dir后綴,或者刪除Python文件夾下Kenlm和Pycorrector模塊的pycache子目錄。
貼上一張安裝kenlm成功的圖片:

kenlm安裝完成.PNG

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容