解决 rasa 中 slot 不能为中文的问题
定位问题
slots:
姓名:
type: text
mappings:
- type: custom
如上的 slot 配置,在 rasa train
时会报以下错误:
YamlValidationException: Failed to validate 'D:\project\python\rasa_test\y\domain.yml'. Please make sure the file is correct and all mandatory parameters are specified. Here are the errors found during validation:
in D:\project\python\rasa_test\y\domain.yml:38:
Key '姓名' does not match any regex '[A-Za-z]+'. Path: '/slots'
github 下载对应版本的源码 https://github.com/RasaHQ/rasa,我这里使用的是 3.6.4,直接全局搜索能找到 3 哥匹配项,都在 rasa/shared/utils/schemas/domain.yml 文件中。经过测试,发现这是 rasa 用来校验 domain.yml 文件格式的模板。
解决办法
将下图两处的 regex;([A-Za-z]+)
替换成 regex;(.+)
即可支持中文了。