下一步整理训练数据
用chatito来生成批量的训练数据,虽然有些文字有些别扭,但也比手工的枚举强
https://github.com/rodrigopivi/Chatito
用法很简单
以我的小助手为例
%[query_weather]
@[location?]@[day]的~[天气]~[怎么样]
@[location]
北京
上海
天津
@[day]
~[今天]
~[明天]
~[后天]
昨天
前天
~[今天]
今天
今儿
~[明天]
明天
明儿
~[后天]
后天
后儿
~[天气]
温度
天气
~[怎么样]
如何
怎么样
好不好
生成后的效果会是这样的
{
"text":"天津今儿的天气怎么样",
"intent":"query_weather",
"entities":[
{
"end":2,
"entity":"location",
"start":0,
"value":"天津"
},
{
"end":4,
"entity":"day",
"start":2,
"value":"今天"
}
]
},
- %开头的来描述你的句型,可以将常用的句型添加进去
- @开头的表示命名实体,包括地点和时间
- ~开头的表示同义词,用来替换,以及映射。因为在自定义行为里,还是需要靠代码明确处理,比如日期,不能在代码里转换“今天”,“今儿”等口语词,因此,在rasa里直接使用同义词替换,自动替换成“今天”,这样代码里就只处理“今天”。
按照chatito的要求,安装NPM等
此处省略1000字
生成的json文件,直接rasa可以读取
{
"rasa_nlu_data":{
"regex_features":[],
"entity_synonyms":[
{
"synonyms":[
"今儿"
],
"value":"今天"
},
"common_examples":[
{
"text":"天津今儿的温度怎么样",
"intent":"query_weather",
"entities":[
{
"end":2,
"entity":"location",
"start":0,
"value":"天津"
},
{
"end":4,
"entity":"day",
"start":2,
"value":"今天"
}
]
},