win10子系統(tǒng)python開發(fā)環(huán)境準(zhǔn)備及kenlm和nltk的使用教程
前言
因?yàn)镹LP作業(yè)需要用到kenlm,而kenlm在linux下更為方便。本人win10之前開啟了子系統(tǒng),所以就打算在子系統(tǒng)下進(jìn)行相關(guān)作業(yè)的完成。
首先開啟win10子系統(tǒng),網(wǎng)上教程挺多,照著做就成。我當(dāng)前安裝版本是Ubuntu16.04。終端輸入cat /etc/lsb-release或uname可以查看版本。子系統(tǒng)開啟后,win10的盤符掛載在mnt下,可以執(zhí)行l(wèi)s -al /mnt查看。
Python的下載
Linux中自帶python2,不過Pyhton軟件基金會(huì)宣布到2020年元旦不在為py2任何分支提供支持。所以我們下載安裝py3。在后面的編譯操作中需要用到make和cmake工具,需要提前下載安裝。make和cmake的使用,需要gcc的支持。在這里就不介紹gcc的安裝了,可自行百度解決。
make是一個(gè)命令工具,它解釋 Makefile 中的指令。在Makefile文件中描述了整個(gè)工程所有文件的編譯順序、編譯規(guī)則。make依據(jù)Makefile文件來批處理編譯,因?yàn)榫帉慚akefile文件太繁瑣復(fù)雜,就出現(xiàn)了cmake工具,它能讀入所有源文件之后,自動(dòng)生成makefile。
在進(jìn)行下面步驟前,先執(zhí)行sudo apt update更新,防止出現(xiàn)一些錯(cuò)誤
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,為下一步的編譯做準(zhǔn)備 make #進(jìn)行源代碼編譯 sudo make install #安裝,這一步會(huì)將編譯好的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 會(huì)默認(rèn)安裝在 /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安裝第三方包時(shí),會(huì)引發(fā)ssl錯(cuò)誤。導(dǎo)致無法使用。如果執(zhí)行pip install出錯(cuò),重新編譯安裝即可。
一些錯(cuò)誤問題:
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上有詳細(xì)的說明,https://github.com/kpu/kenlm。下載解壓后
cd kenlm mkdir -p build cd build cmake .. make -j 4 # 啟用4個(gè)cpu去編譯。提高編譯速度 cd .. python setup.py install
測(cè)試,在python環(huán)境中導(dǎo)入kenlm無報(bào)錯(cuò),說明kenlm安裝成功。或者運(yùn)行\(zhòng)kenlm\python\example.py文件
nltk安裝
nltk直接用pip下載就行,nltk_data文件較大,可以離線下載后添加進(jìn)路徑。win10下使用nltk_data,直接放進(jìn)D盤中就行,nltk會(huì)自動(dòng)查找到。但是在Linux下需要將nltk_data路徑添加到data,或者移動(dòng)到下面輸出的路徑中。為了方便,我個(gè)人是建立了個(gè)軟鏈接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'
在當(dāng)前會(huì)話下添加路徑到data
from nltk import data data.path.append(r"你下載的nltk_data所在路徑")
添加完路徑,使用nltk.data.path查看當(dāng)前已添加路徑
簡單測(cè)試
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)境準(zhǔn)備及kenlm和nltk的使用教程,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python實(shí)現(xiàn)比較兩個(gè)列表(list)范圍
這篇文章主要介紹了Python實(shí)現(xiàn)比較兩個(gè)列表(list)范圍,本文根據(jù)一道題目實(shí)現(xiàn)解決代碼,本文分別給出題目和解答源碼,需要的朋友可以參考下2015-06-06
實(shí)現(xiàn)python版本的按任意鍵繼續(xù)/退出
本文給大家簡單介紹了在windows以及l(fā)inux下實(shí)現(xiàn)python版本的按任意鍵繼續(xù)/退出功能,非常的簡單實(shí)用,linux下稍微復(fù)雜些,有需要的小伙伴可以參考下2016-09-09
淺談keras中的keras.utils.to_categorical用法
這篇文章主要介紹了淺談keras中的keras.utils.to_categorical用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
torch.optim優(yōu)化算法理解之optim.Adam()解讀
這篇文章主要介紹了torch.optim優(yōu)化算法理解之optim.Adam()解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
基于Python實(shí)現(xiàn)商場(chǎng)抽獎(jiǎng)小系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)一個(gè)簡單的商場(chǎng)抽獎(jiǎng)小系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08
Pandas中Concat與Append的實(shí)現(xiàn)與區(qū)別小結(jié)
本文主要介紹了Pandas中Concat與Append的實(shí)現(xiàn)與區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11

