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

前言

我嘗試了網(wǎng)上的多種方法,但最后無一例外都是報(bào)錯(cuò)如下:
1.error: Microsoft Visual C++ 14.0 is required....;
2.無法打開"zlib.h",路徑找不到;
3.大部分提示報(bào)錯(cuò)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'.
每一個(gè)錯(cuò)誤都是一部血淚史,但最后cl.exe的錯(cuò)誤一直都存在,可以接受編譯警告,勉強(qiáng)使用Kenlm,但編譯錯(cuò)誤卻無法避免,經(jīng)過長(zhǎng)時(shí)間嘗試,有了以下行之有效的方法:

條件

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

方法

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

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即可編譯成功。

使用

最后一點(diǎn),使用過程中出現(xiàn)卡死現(xiàn)象,是因?yàn)榫彺嫣鄬?dǎo)致的,這在虛擬機(jī)等環(huán)境尤其明顯,可在運(yùn)行Python命令時(shí)追加--no-cache-dir后綴,或者刪除Python文件夾下Kenlm和Pycorrector模塊的pycache子目錄。
貼上一張安裝kenlm成功的圖片:

kenlm安裝完成.PNG

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容