首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >!!python/str不适用于RasaCore的domain.yml

!!python/str不适用于RasaCore的domain.yml
EN

Stack Overflow用户
提问于 2018-03-14 08:22:48
回答 1查看 772关注 0票数 0

我正在学习Rasa,我在运行对话框模型时遇到了一些问题。

代码语言:javascript
复制
python3 -m rasa_core.train -s data/stories.md -d domain.yml -o models/dialogue --epochs 300

错误!

代码语言:javascript
复制
ruamel.yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/str'
in "/my/app/path/venv/lib/python3.6/site-packages/rasa_core/schemas/domain.yml", line 4, column 11

Rasa核

从domain.yml的rasa_core看,问题似乎是双感叹号!!

domain.yml

代码语言:javascript
复制
allowempty: True
mapping:
  intents:
    type: !!python/str "seq"

阅读另一篇关于来自这里的双感叹号的文章。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-14 09:02:32

与其随心所欲地尝试一些事情,不如想想你想做什么。!!python/str是一个标记,表示Python类型。所以你现在的YAML说“seq是一个Python‘”。

现在,您的更改将改为“按您认为合适的任何类型加载以下值:!!python/str seq”。这是另一回事。

让我们弄清楚为什么鲁迈尔不认得你的标签。快速查看源显示!!python/str是在标准Constructor中注册的,而不是在SafeConstructor中注册的。只有YAML的标准标记斯塔尔可用。因此,您很可能使用的是SafeConstructor,它根本不了解!!python/str。因此,一个可能的解决方法是使用!!str,它调用标量上的同一个构造函数(正如我们在源中看到的)。

或者,你可以直接放下标签。标量seq无论如何都会被加载到一个字符串中,除非RasaCore做了一些意想不到的事情(实际上我对此一无所知)。

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

https://stackoverflow.com/questions/49272739

复制
相关文章

相似问题

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