Skip to content

[已解決] OSError: stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists. You should download and place it in the models/stanford-corenlp-4.0.0/ first.

我曾經在 Stanford CoreNLP 教學 —— by Python 紀錄了該如何透過 Python 調用 Stanford CoreNLP 這個由 Stanford 團隊開發的好用工具。不過,就在最近我重新按照我自己寫的流程操縱的時候,我在新的版本遇到了以下這樣的問題:

OSError: stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists. You should download and place it in the models/stanford-corenlp-4.0.0/ first.

這個報錯很有意思,看起來是我使用的 Python 接口套件 “stanfordcorenlp” 預期調用的中文分析模型應為 “stanford-chinese-corenlp-yyyy-MM-dd-models.jar” 這樣的名稱,可是官方在升到 4.0.0 時已經改變了名稱。


解決方法

首先,我想確認 Stanford CoreNLP 以及 Python 套件之間的版本是否有落差 —— 更準確地說,我想確認我使用的套件版本是否沒有針對 Stanford 官方模型改名一事進行調整。 (如果 Python 套件有針對新版調整,那可能就是我的使用方法錯誤了。)

首先是 Stanford CoreNLP 官方版本:

可以看到目前的最新版: 4.0.0 與上個版本隔了一年半,於 2020/04/19 發布。

而以下則是我選擇的 Python 套件接口 (stanfordcorenlp):

可以看到,並沒有跟上 Stanford 官方最新版的命名。

但我希望 Stanford CoreNLP 的使用方法沒有太大的差別;抱著姑且一試的心態,我隨意地將我報錯的 Model 名稱更改為:

可以發現,我連名稱都是亂取的。不過出乎意料的是,這樣一來居然可以正常執行!

如果使用上遇到這個問題,或許可以改改模型名稱也不一定。不過,仍然期待 Python 套件的開發者的更新,畢竟若是下次 Stanford CoreNLP 又有了更重大的更新,可能連模型架構都改變了也說不一定。

Leave a Reply