當我們用命令(pip inatall nltk)下載好nltk的時候,如果需要下載其中的擴展包需要使用如下命令:
>>>import nltk
>>>nltk.download()
由於下載的網站時國外的網站,下載速度十分慢,還會引發一系列的問題。接下來給出解決辦法
一、解決下載慢的問題:
從下面這個鏈接下載nltk的擴展包,裏面擁有大部分的nltk模型。
鏈接:https://pan.baidu.com/s/1EvTVpzwEdIoNpRXHZ7a23g
提取碼:k6dz
資源來源參考:https://blog.csdn.net/qq_36142114/article/details/94609645
二、解決安裝問題
當我們下載好nltk的擴展包之後需要使用,如果擴展包沒有放到正確的位置,程序依舊會報錯。下面帶來解決辦法:
1.找到nltk擴展包默認下載位置
打開python運行如下代碼:
>>>import nltk
>>>nltk.download()
會出現一個窗口:
紅框部分便是默認的下載位置。
2.找到你寫的程序中,使用了哪一個模型
比如:我使用了english.pickle這樣一個模型
在這個模型前面是有兩個文件夾的,一個是tokenizers,一個是punkt。
我們需要從開始下載的那一個大的nltk擴展包中,找到這樣一個模型:
先解壓得到下圖:
點擊進入packages文件夾,裏面會有一個tokenizers文件夾,再次點擊進入會有一個punkt的壓縮包,裏面就有我們需要的模型enlish.pickle。
3.將找到的模型移入nltk默認下載的路徑下
默認路徑爲第一幅圖中紅框框住的那個:C:\Users\asus\AppData\Roaming\nltk_data
注意:根據我的代碼 sentensor = nltk.data.load('tokenizers/punkt/english.pickle') ,此時需要的是把tolenizers這整個文件夾複製,然後粘貼到C:\Users\asus\AppData\Roaming\nltk_data這個路徑下。
然後你的punkt.zip這個文件就到了這個文件夾下:C:\Users\asus\AppData\Roaming\nltk_data\tokenizers\,此時還未結束,因爲punkt爲壓縮包,需要解壓纔可是使用。
注意:有的人解壓後,會出現兩個punkt文件夾,意思是解壓後,會得到.\punkt\punkt\,這時需要刪除一個多餘的punkt文件夾。
此時,你的代碼就可以開始使用english,pickle模型了,其他的擴展包也是用類似的方法。雖然有點麻煩,但是絕對不會出錯。
三、總結
其實上面的內容會有一點繁瑣,但是我想講的詳細一點,方便別人看的懂,自己也懂。
整體安裝的過程其實非常簡單。
- 我的代碼是這樣的:sentensor = nltk.data.load('tokenizers/punkt/english.pickle')
所以我的english.pickle所在的文件夾爲:C:\Users\asus\AppData\Roaming\nltk_data\tokenizers\punkt
- 如果我將代碼寫成這樣:sentensor = nltk.data.load('english.pickle')
我的english.pickle所在的文件夾應該爲:C:\Users\asus\AppData\Roaming\nltk_data\
反正你用的模型運行的正不正確,就取決於這條代碼中括號的這個路徑是不是能找到english.pickle模型。