看似复杂的【简单导航场景】解决思路
mxw2552261 发布于2017-12 浏览:6540 回复:25
6
收藏
最后编辑于2018-04

场景如下:

   主人:帮我找一下附近的咖啡馆

   小乐:找到多家咖啡馆,请选择第几个?

   主人:帮我找一家有WiFi的

   小乐:找到多家附近有WiFi的咖啡馆,请选择第几个?

   主人:哪家是晚上9点后依然营业的?

   小乐:找到多家附近的、有WiFi的、晚上9点后依然营业的咖啡馆,请选择第几个? 

   主人:请按评分排序

   小乐:已经按评分排序,请选择第几个?

   主人:第一个

   小乐:电机咖啡馆,距你2公里。你是要导航过去,还是给那里打电话?

   主人:导航过去

   小乐:好的,即将为你导航到电机咖啡馆

 

看似很复杂,我们该怎么做呢?

   1. 首先分析梳理业务

   2. 找出对话中都有哪些意图?

   3. 意图中包含哪些词槽?

 

业务就是导航去附近的某个地方,可以是附近的加油站,附近的餐厅,附近的咖啡厅或者是附近的厕所。

意图就是导航,目的地就是词槽,像这样的抽象的地方,系统并没有提供系统词槽,所以我们要 “自定义目的地” 词槽,

 

继续分析:文中提到有WIFI的咖啡厅,应该属于咖啡厅里的一项功能。所以再创建一个功能词槽:

“晚上九点后依然营业”:我们从中找出 “晚上九点后” 是一个时间词槽,时间词槽系统已经提供,直接使用即可。

我们自定义目的地的意图创建完成,包含三个词槽,

 

需求是不管是否选择了时间和功能,都是可以进行意图最终触发,所以我们的触发规则要这么定义:

这样就可以识别出用户的:有WiFi的、晚上9点后依然营业的咖啡馆。

不过用户还提到 “附近的” ,我们可以在后续对话模板里添加特征词来表示,也可以在上面添加一个词槽来表示。

 

我们往下继续分析:“请按评分排序”,我们需要创建一个排序的意图,词槽定义为user_sort,可以按评分排序,环境排序等等,看实际需求。

 

“选择第几个”,我们需要创建一个 “选择” 意图,并且枚举出用户将会说的第几个。一般手机页面显示十条就够了:

“你是要导航过去,还是给那里打电话?” :意图识别后,需要具体做什么?那我们再创建一个意图,“DO”,词槽值“导航,打电话”等等,后续可以根据业务自行添加

OK ,我们的意图总共是四个:

 

意图创建好了,我们可以去创建对话样本和对话模板然后进行训练了,尽量创建多的对话样本。

 

可以创建对话模板:

 

创建附近的特征词,

 

样本创建好了,开始训练吧。

 

一切准备就绪,开始验证:

 

完美

 

关注公众号,大家有关于UNIT的问题,可以一起讨论哈

收藏
点赞
6
个赞
共25条回复 最后由爱上主丽叶回复于2018-04
#6mxw2552261回复于2017-12
#4 静心之王回复
这样看来,这个应用场景可以拓展到其他地方,很赞

是的是的,欢迎把你的场景也分享出来

0
#5shoranxfyzhy回复于2017-12

感谢分享,扫盲了

0
#4静心之王回复于2017-12

这样看来,这个应用场景可以拓展到其他地方,很赞

0
#3Leautolink回复于2017-12

这个思路不错,可以根据此场景举一反三。

0
#2mxw2552261回复于2017-12

注意:训练时,“闲聊负例样本” 要勾选,我忘记勾了。

0
TOP
切换版块