最近在研究 Python 自然語言處理套件 SpaCy, 由於所用的電腦無法連網須離線安裝, 高達 24 個以上的相依套件來回搬移檔案真的很麻煩 (因為不知道有哪些相依檔案, 只能看錯誤訊息一次補一個), 過程太囉嗦了, 所以一邊安裝一邊將所有相依檔案與安裝順序記錄在下面這篇文章中 :
為了方便做比較, 我同時也安裝了 NLTK, 此套件與 SpaCy 不同之處在於所使用的相依套件較少, 只有 regex, joblib, click, tqdm, colorama 這五個, 除了 regex 外, 其他四個也是 SpaCy 的相依套件, 所以離線安裝時先安裝完 Spacy 後只要再下載複製 regex 即可完成 NLTK 的安裝. 本系列前一篇文章參考 :
安裝 NLTK 套件不難, 但要離線安裝 NLTK 的語料庫就比較麻煩了, 因為全部語料庫共 107 個, 總大小合計高達 3.18GB, 這些語料庫可從 nltk 官網逐一下載其 zip 檔 :
但下載後須一個個解壓分門別類放到特定子目錄才能使用, 這更麻煩了. 最好的辦法是先在可連網電腦的 Python 環境下安裝 NLTK 套件, 再呼叫 nltk.download() 下載全部語料庫, 這些語料庫會放在例如 D:\nltk_data 的目錄下, 只要將這個目錄壓縮成 zip 檔 (約 1.8GB), 再複製到無法連網的電腦上, 解壓縮後於系統環境變數 path 中添加此 nltk_data 路徑即可.
我先在無法上網的電腦上離線安裝 NLTK, 匯入 nltk 後檢視 nltk.data.path 屬性, 可見 NLTK 會先掃描電腦有哪些 drive, 預先設定了可能的語料庫路徑 :
然後去連網電腦上將 NLTK 語料庫的安裝目錄 D:\nltk_data 整個 (約 3.18GB) 壓縮成 nltk_data.zip 檔 (約 1.8GB), 然後用隨身碟複製到無法連網的電腦解壓縮在 D:\nltk_data (也可以是 C 或 E 碟都沒關係) :
然後到 "控制台/系統/進階設定" 開啟環境變數頁面, 編輯系統變數 path, 在其最後面添加 "D:\nltk_data\" 這個目錄 :
然後回到 Python 環境, 輸入 from nltk.book import * 指令, 果然順利列出語料庫中的書目 :
這樣就順利將 NLTK 語料庫順利移植到無法連網的電腦啦! 即使是可以連網的電腦, 如果用 nltk.download() 線上下載安裝資料庫也很花時間 (要幾小時), 所以線上安裝過一次後壓縮語料庫再複製到別台電腦的方式速度最快.
參考 :
沒有留言:
張貼留言