安装en_core_web_md后Spacy链接异常致Rasa训练报错求助
我之前也碰到过类似的情况——明明安装Spacy模型时提示链接成功,但训练Rasa就是找不到模型文件。大概率是自动链接没真正生效,或者环境有冲突,试试下面这些解决步骤:
先检查模型的实际状态
先跑这个命令确认Spacy模型是否真的正确安装并链接了:python -m spacy validate如果输出里
en_core_web_md显示invalid或者not linked,那说明链接确实出问题了,得手动修复。手动重新关联模型
Rasa NLU默认会用en这个别名调用Spacy模型,有时候自动链接没把en_core_web_md关联到en上。执行下面的命令手动链接:python -m spacy link en_core_web_md en这个命令会把你安装的
en_core_web_md模型映射到en别名,让Rasa能找到对应的文件路径。确认你用的是同一个Python环境
很多时候问题出在环境不一致上——你安装Spacy用的是Anaconda的Python3.6,但训练Rasa时可能不小心用了系统的Python或者其他虚拟环境的。先查一下当前Python的路径:which python对比这个路径和你安装Spacy的Anaconda路径(比如
/Users/username/anaconda3/bin/python),如果不一样,切换到正确的conda环境再训练:conda activate your_env_name如果还是不行,重新安装模型
有时候自动下载的模型文件可能损坏,卸载后重装试试:pip uninstall -y en_core_web_md pip install en_core_web_md装完之后再执行上面的手动链接命令。
最后检查版本兼容性
你用的是Python3.6,注意Spacy 3.x已经不支持Python3.6了,必须用Spacy 2.x的版本(比如2.3.5)。同时Rasa NLU的版本也要和Spacy匹配,不然也会出问题。用这两个命令看版本:pip show spacy pip show rasa_nlu如果版本不兼容,降级或升级到对应的版本就行。
做完这些步骤再跑训练命令,应该就能解决找不到strings.json的问题了。
内容的提问来源于stack exchange,提问作者nad

