win10子系統python開發環境準備及kenlm和nltk的使用教程
前言
因為NLP作業需要用到kenlm,而kenlm在linux下更為方便。本人win10之前開啟了子系統,所以就打算在子系統下進行相關作業的完成。
首先開啟win10子系統,網上教程挺多,照著做就成。我當前安裝版本是Ubuntu16.04。終端輸入cat /etc/lsb-release
或uname可以檢視版本。子系統開啟後,win10的碟符掛載在mnt下,可以執行ls -al /mnt檢視。
Python的下載
Linux中自帶python2,不過Pyhton軟體基金會宣佈到2020年元旦不在為py2任何分支提供支援。所以我們下載安裝py3。在後面的編譯操作中需要用到make和cmake工具,需要提前下載安裝。make和cmake的使用,需要gcc的支援。在這裡就不介紹gcc的安裝了,可自行百度解決。
make是一個命令工具,它解釋 Makefile 中的指令。在Makefile檔案中描述了整個工程所有檔案的編譯順序、編譯規則。make依據Makefile檔案來批處理編譯,因為編寫Makefile檔案太繁瑣複雜,就出現了cmake工具,它能讀入所有原始檔之後,自動生成makefile。
在進行下面步驟前,先執行sudo apt update
更新,防止出現一些錯誤
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檔案轉移到/usr/local/make目錄下,該目錄需要root許可權 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安裝第三方包時,會引發ssl錯誤。導致無法使用。如果執行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.建立軟連結
# 新增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官網下載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環境中匯入kenlm無報錯,說明kenlm安裝成功。或者執行\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))
總結
以上所述是小編給大家介紹的win10子系統python開發環境準備及kenlm和nltk的使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!