rasa使用教程二——NLU数据准备
在上一篇中,我们新建了一个rasa项目,接下来需要准备nlu训练数据,一般存在一个yaml格式文件里,默认为nlu.yml
。当然用户可以自己指定,如果自定义训练的时候得指定训练数据的位置,不然rasa train
的时候会默认去data文件文件夹下查找nlu.yml
。
rasa的训练数据一般有四种参数类型
-
intent
意图数据,为该意图下所有语料
version: "3.0" nlu: - intent: greet examples: | - 你好 - 你好啊 - 早上好 - 晚上好 - hello - hi - 嗨 - 嗨喽 - 见到你很高兴 - 嘿 - 早 - 上午好 - hello哈喽 - 哈喽哈喽 - hello hello - 喂喂
同时在语料中还可以用
[entity value](entity name)
的方式来标注实体,也可以用[entity name]{"key": "value"}
的方式来标注,其中大括号里的key
可取值有entity、value、rule、group
。其中value
表示同义词,如- intent: request_weather examples: | - 查天气 - 帮我查下天气 - 告诉我天气怎么样 - 查下天气 - 我要查天气 - 天气怎么样 - 看下天气 - 天气如何 - 天气 - 查询天气 - 帮我查天气信息 - 我想知道[明天](date_time)的天气 - [星期一]{"entity": "date_time", "value": "周一"}的天气 - [今天](date_time)的天气怎么样 - 帮我查下[后天](date_time)的天气 - 查下[广州](address)的天气怎么样
-
synonym
同义词,比如某个实体的同义词,可以单独列出来如:
- synonym: 周一 examples: | - 星期一 - 礼拜一
-
lookup
查找表,比如某个实体可能从某些值里面取值,比如点奶茶是的杯型,有大杯、小杯、中杯,则可定义
- lookup: cup type examples: | - 大杯 - 中杯 - 小杯
-
regex
正则表达式,有些实体用正则表达式来抽取可能会比较方便,比如手机号,则可以定义
- regex: phone number examples: | - 1\d{10}