win10子系統(tǒng)python開發(fā)環(huán)境準備及kenlm和nltk的使用教程
前言
因為NLP作業(yè)需要用到kenlm,而kenlm在linux下更為方便。本人win10之前開啟了子系統(tǒng),所以就打算在子系統(tǒng)下進行相關(guān)作業(yè)的完成。
首先開啟win10子系統(tǒng),網(wǎng)上教程挺多,照著做就成。我當前安裝版本是Ubuntu16.04。終端輸入cat /etc/lsb-release或uname可以查看版本。子系統(tǒng)開啟后,win10的盤符掛載在mnt下,可以執(zhí)行l(wèi)s -al /mnt查看。
Python的下載
Linux中自帶python2,不過Pyhton軟件基金會宣布到2020年元旦不在為py2任何分支提供支持。所以我們下載安裝py3。在后面的編譯操作中需要用到make和cmake工具,需要提前下載安裝。make和cmake的使用,需要gcc的支持。在這里就不介紹gcc的安裝了,可自行百度解決。
make是一個命令工具,它解釋 Makefile 中的指令。在Makefile文件中描述了整個工程所有文件的編譯順序、編譯規(guī)則。make依據(jù)Makefile文件來批處理編譯,因為編寫Makefile文件太繁瑣復雜,就出現(xiàn)了cmake工具,它能讀入所有源文件之后,自動生成makefile。
在進行下面步驟前,先執(zhí)行sudo apt update更新,防止出現(xiàn)一些錯誤
1.make的下載和安裝
wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz tar -zxvf make-4.2.tar.gz cd make-4.2 ./configure #生成 Makefile,為下一步的編譯做準備 make #進行源代碼編譯 sudo make install #安裝,這一步會將編譯好的make文件轉(zhuǎn)移到/usr/local/make目錄下,該目錄需要root權(quán)限 ln -s -f /usr/local/bin/make /usr/bin/make make --version #查看版本
2.cmake的下載和安裝
wget https://cmake.org/files/v3.3/cmake-3.5.1.tar.gz tar xzvf cmake-3.5.1.tar.gz yum install gcc-c++ # 安裝gcc等程序包(安裝過就忽略) cd cmake-3.5.1 ./bootstrap make make install cmake --version #查看版本
cmake 會默認安裝在 /usr/local/bin 下面
也可以直接安裝build-essential軟件包,該軟件包中包含了編譯c/c++所需要的軟件包。sudo apt-get install build-essential
3.Python下載
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
4.解壓
tar zxvf Python-3.7.3.tgz cd Python-3.7.3
5.編譯
./configure --with-ssl make sudo make install
注意:–with-ssl必須加上,否則使用pip安裝第三方包時,會引發(fā)ssl錯誤。導致無法使用。如果執(zhí)行pip install出錯,重新編譯安裝即可。
一些錯誤問題:
ZipError:
sudo apt install zlib*
ImportError:'_ctypes'
sudo apt-get install python-dev python-setuptools python-pip python-smbus build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev
6.創(chuàng)建軟鏈接
# 添加python3的軟鏈接 sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3 # 添加 pip3 的軟鏈接 sudo ln -s /usr/local/bin/pip3.7 /usr/bin/pip3
kenlm的安裝
1.boost
在boost官網(wǎng)下載boost,本人下載了boost_1_70_0。
cd boost_1_70_0 ./bootstrap.sh ./b2 install
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
3.zlib
wget http://zlib.net/zlib-1.2.11.tar.gz tar xzf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install
4.bzip
wget https://fossies.org/linux/misc/bzip2-1.0.6.tar.gz tar xzvf bzip2-1.0.6.tar.gz cd bzip2-1.0.6/ make make install
5.libbz2-dev
apt-get install libbz2-dev
6.kenlm
在github上有詳細的說明,https://github.com/kpu/kenlm。下載解壓后
cd kenlm mkdir -p build cd build cmake .. make -j 4 # 啟用4個cpu去編譯。提高編譯速度 cd .. python setup.py install
測試,在python環(huán)境中導入kenlm無報錯,說明kenlm安裝成功?;蛘哌\行\(zhòng)kenlm\python\example.py文件
nltk安裝
nltk直接用pip下載就行,nltk_data文件較大,可以離線下載后添加進路徑。win10下使用nltk_data,直接放進D盤中就行,nltk會自動查找到。但是在Linux下需要將nltk_data路徑添加到data,或者移動到下面輸出的路徑中。為了方便,我個人是建立了個軟鏈接sudo ln -s /mnt/d/nltk_data /usr/local/nltk_data
import nltk
nltk.data.find(".")
# Searched in:
# - '/root/nltk_data'
# - '/usr/local/nltk_data'
# - '/usr/local/share/nltk_data'
# - '/usr/local/lib/nltk_data'
# - '/usr/share/nltk_data'
# - '/usr/local/share/nltk_data'
# - '/usr/lib/nltk_data'
# - '/usr/local/lib/nltk_data'
在當前會話下添加路徑到data
from nltk import data data.path.append(r"你下載的nltk_data所在路徑")
添加完路徑,使用nltk.data.path查看當前已添加路徑
簡單測試
from nltk.tokenize import word_tokenize sentence = "since the 1890s , and beginning in france , the term ''libertarianism '' has often been used as an synonym for anarchism and was used almost exclusively in this sense until the 1950s in the united states ; its use as an synonym is still common outside the united states ." print(word_tokenize(sentence))
總結(jié)
以上所述是小編給大家介紹的win10子系統(tǒng)python開發(fā)環(huán)境準備及kenlm和nltk的使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
實現(xiàn)python版本的按任意鍵繼續(xù)/退出
本文給大家簡單介紹了在windows以及l(fā)inux下實現(xiàn)python版本的按任意鍵繼續(xù)/退出功能,非常的簡單實用,linux下稍微復雜些,有需要的小伙伴可以參考下2016-09-09
淺談keras中的keras.utils.to_categorical用法
這篇文章主要介紹了淺談keras中的keras.utils.to_categorical用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
torch.optim優(yōu)化算法理解之optim.Adam()解讀
這篇文章主要介紹了torch.optim優(yōu)化算法理解之optim.Adam()解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
Pandas中Concat與Append的實現(xiàn)與區(qū)別小結(jié)
本文主要介紹了Pandas中Concat與Append的實現(xiàn)與區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-11-11

