首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当调用"rasa train“时,spaCy才无法加载模型

仅当调用"rasa train“时,spaCy才无法加载模型
EN

Stack Overflow用户
提问于 2020-02-06 13:45:34
回答 2查看 1.1K关注 0票数 1

我正在通过命令行训练rasa模型,但只有当我尝试通过终端训练时,spaCy似乎才无法加载我的语言模型pt_core_news_sm

所有的事情都是在我的venv中完成的,并以管理员身份执行;

当从python调用spaCy时,A可能会加载模型:

代码语言:javascript
复制
import spacy
spacy.load("pt_core_news_sm")

在python脚本中通过rasa_nlu进行训练也是有效的。

但是当我调用rasa train时,我会得到这样的回溯:

代码语言:javascript
复制
2020-02-06 02:03:19 INFO     rasa.nlu.utils.spacy_utils  - Trying to load spacy model with name 'pt_core_news_sm'
Traceback (most recent call last):
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\utils\spacy_utils.py", line 51, in load_model
    return spacy.load(spacy_model_name, disable=["parser"])
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\spacy\__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\spacy\util.py", line 169, in load_model
    raise IOError(Errors.E050.format(name=name))
OSError: [E050] Can't find model 'pt_core_news_sm'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\aliss\AppData\Local\Programs\Python\Python36\Scripts\rasa.exe\__main__.py", line 9, in <module>
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\__main__.py", line 76, in main
    cmdline_arguments.func(cmdline_arguments)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\cli\train.py", line 76, in train
    additional_arguments=extract_additional_arguments(args),
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\train.py", line 50, in train
    additional_arguments=additional_arguments,
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\asyncio\base_events.py", line 473, in run_until_complete
    return future.result()
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\train.py", line 101, in train_async
    additional_arguments,
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\train.py", line 188, in _train_async_internal
    additional_arguments=additional_arguments,
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\train.py", line 245, in _do_training
    persist_nlu_training_data=persist_nlu_training_data,
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\train.py", line 474, in _train_nlu_with_validated_data
    persist_nlu_training_data=persist_nlu_training_data,
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\train.py", line 74, in train
    trainer = Trainer(nlu_config, component_builder)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\model.py", line 147, in __init__
    self.pipeline = self._build_pipeline(cfg, component_builder)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\model.py", line 159, in _build_pipeline
    component = component_builder.create_component(component_cfg, cfg)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\components.py", line 515, in create_component
    component = registry.create_component_by_config(component_config, cfg)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\registry.py", line 228, in create_component_by_config
    return component_class.create(component_config, config)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\utils\spacy_utils.py", line 81, in create
    nlp = cls.load_model(spacy_model_name)
  File "c:\users\aliss\appdata\local\programs\python\python36\lib\site-packages\rasa\nlu\utils\spacy_utils.py", line 58, in load_model
    "en_core_web_md en".format(spacy_model_name)
rasa.nlu.model.InvalidModelError: Model 'pt_core_news_sm' is not a linked spaCy model.  Please download and/or link a spaCy model, e.g. by running:
python -m spacy download en_core_web_md
python -m spacy link en_core_web_md en

我已经用python和python3尝试了以下下载策略。第一个似乎是this question的答案,但效果不是很好:

代码语言:javascript
复制
pip install https://github.com/explosion/spacy-models/releases/download/pt_core_news_sm-2.2.5/pt_core_news_sm-2.2.5.tar.gz

python -m spacy download pt

python -m spacy download pt_core_news_sm

这是我的配置文件:

代码语言:javascript
复制
language: "pt_core_news_sm"

pipeline:
- name: "SpacyNLP"                 
- name: "tokenizer_spacy"          
- name: "ner_crf"                
- name: "intent_featurizer_spacy"     
- name: "intent_classifier_sklearn"  
- name: "ner_synonyms"               

policies:
  - name: "FormPolicy"

我用的是..。

代码语言:javascript
复制
spacy==2.2.3

rasa==1.7.0
rasa-core==0.14.5
rasa-core-sdk==0.14.0
rasa-nlu==0.15.0
rasa-sdk==1.7.0
EN

回答 2

Stack Overflow用户

发布于 2020-02-06 23:01:18

解决了它。显然,从venv内部调用rasa train会在我的virtualenv之外搜索语言模型。我不得不下载在venv外执行python的模型,它完成了训练。即便如此,我也不知道为什么会发生这种情况。

票数 1
EN

Stack Overflow用户

发布于 2021-01-19 21:06:02

对于Windows用户--

请先检查您的Python环境。设置-->项目解释器。如果是Anaconda虚拟环境。

以管理员身份打开CMD (右键单击cmd并选择以管理员身份运行)

激活您的环境。例如:

  1. activate rasaTesting(项目名称/环境)

创建spacy模型的快捷链接,如(下载spacy模型,如果还没有)

  1. python -m spacy link en_core_web_md en

附加的env图像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60088400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档