No module named 'en'
nlp項目出現這個錯誤,如果是spacy\util.py出的問題,表示找不到英文的模塊.
官方的解決辦法是在控制檯輸入以下命令:
python -m spacy download en_core_web_sm
這個我試了下一直出現連接錯誤,以下是解決辦法
1. 先確認自己要用的spacy版本,
python -m spacy info
因爲我這個項目要求用2.1所以
那 en_core_web_sm也要2.1版本的
2. 到github上面下載en_core_web_sm的gz檔案(只有gz)
https://github.com/explosion/spacy-models/releases 要next好幾頁纔會找到
en_core_web_sm-2.1.0.tar.gz (10.5MB)
相關的有en_core_web_md-2.1.0.tar.gz(91MB), en_core_web_lg-2.1.0.tar.gz(788MB)
建議一併下載下來
https://github.com/explosion/spacy-models/releases?after=nl_core_news_sm-2.1.0
3. 下載後解壓縮,在所屬目錄打開控制檯(在地址欄輸入%comspec%) 或 打開power shell
輸入Python.exe setup.py install
成功後, (例如我安裝的是2.1版本的) 最後顯示
Finished processing dependencies for en-core-web-sm==2.1.0
4. 理論上這樣就可以了, 但是我還是報錯,所以修改項目代碼
原代碼 self.nlp = spacy.load('en')
修改爲
import en_core_web_md
self.nlp=en_core_web_md.load()
完成後不再報錯了
測試代碼:
import spacy
import en_core_web_md
nlp = en_core_web_md.load()
doc = nlp(u'This is a sentence.')
print(doc)