No module named en 的解決辦法spacy

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)

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章