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)前已添加路徑
簡(jiǎn)單測(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 list操作為什么會(huì)錯(cuò)誤
這篇文章主要介紹了分析Python list操作為什么會(huì)錯(cuò)誤,python搞數(shù)據(jù)分析,在很多方面python有著比Matlab更大的優(yōu)勢(shì),下面來看看文章具體介紹的相關(guān)內(nèi)容吧,需要的朋友可以參考一下2021-11-11Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的全過程
這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02python執(zhí)行等待程序直到第二天零點(diǎn)的方法
這篇文章主要介紹了python執(zhí)行等待程序直到第二天零點(diǎn)的方法,涉及Python等待程序的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-04-04python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南
這篇文章主要介紹了python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用方法,非常的實(shí)用,有需要的朋友可以參考下2014-09-09Python 實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)截圖的示例講解
今天小編就為大家分享一篇Python 實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)截圖的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05python進(jìn)行圖片相似度對(duì)比的兩種實(shí)現(xiàn)方法
Python提供了一些庫(kù)和工具可以用于圖片的相似度比對(duì),本文就詳細(xì)的介紹了兩種實(shí)現(xiàn)方法,感知哈希和結(jié)構(gòu)相似性,下面就來介紹一下,感興趣的可以了解一下2023-10-10Python+OpenCV實(shí)戰(zhàn)之拖拽虛擬方塊的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python+OpenCV實(shí)現(xiàn)拖拽虛擬方塊的效果,即根據(jù)手指坐標(biāo)位置和矩形的坐標(biāo)位置,判斷手指點(diǎn)是否在矩形上,如果在則矩形跟隨手指移動(dòng),感興趣的可以了解一下2022-08-08