Last Updated on 2021-07-01 by Clay
今天我在使用 Python 進行自然語言處理 (NLP) 的遇到了這個問題:
OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
這個問題我以前也曾經遇到過,主要是因為使用 spacy 的時候找不到 spacy 用於處理英語的模型 "en" 所引起的。幾乎每一次我換到新的環境上處理任務時,都會遇到一次這個報錯,好在這個問題並不難解決。
因此,我便順手紀錄在這裡,以後遇到一樣的問題時我就可以看自己的筆記直接處理了。
簡介 Spacy
spacy 是一個 Python 的自然語言處理套件,不過其性能非常強力,被認為是有工業級強度的 Python NLP 工具。
不過似乎在英文處理方面較為出名。
解決方法
基本上,缺乏了 "en" 模型,那麼我們就需要將其下載下來。像我就被 Python 各種套件安裝即用的便利性慣壞了,所以我通常直接安裝了 spacy:
sudo pip3 install -U spacy
然後就沒有注意到需要安裝其他東西了。一試跑之下,通常就會遇到這個問題:
OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
事實上,我們還需要使用下面的這個指令來安裝 "en" (或其他你所缺乏的) 模型。
python3 -m spacy download en
值得注意的是,有時候就算是安裝了,但是在使用 spacy 的時候仍然會遇到同樣的報錯。這可能是因為你安裝 "en" 的時候沒有管理員權限,導致連結發生問題。
可以再使用下面的指令再測試一次。
sudo python3 -m spacy download en
希望大家都能順利使用這個工具。