关于导航的连续意图识别的解决方案
mxw2552261 发布于2017-12 浏览:14496 回复:37
5
收藏

需求是这样的:

打开APP里的导航模块(集成第三方),打开语音,说“我要去人民大学”,程序通过接口获取与人民大学匹配的列表。

 

 

这时候需求就来了,

1. 允许用户手动点击选择(很常见的功能,不做讨论)

2. 允许用户说 “第几个”,比如说第一个,则开启导航到中国人民大学,如果说第二个,则开启导航到人民大学地铁站。

3. 允许用户说出列表中的其中一个地点,比如说“地铁站”,则开启导航到人民大学地铁站,如果说东门,则开启导航到人民大学东门。

 

这样的功能百度地图其实已经实现,跟百度AI的PM大牛请教了一下,总结如下:

首先需要建立两个意图:

1. 导航意图,词槽为地点location

2. 选择意图,词槽为第几个。

当用户说出“我要去人民大学”,首先UNIT识别出导航的意图,找出location这个词槽值,调用第三方接口,获取与人民大学相似的列表数据,展现在客户端页面。

然后页面等待用户再次说话(可以给用户友好的语音提示,比如说,请选择第几个,或请说出您要到的具体位置),这时候就会有两种情况,

(一)用户说“选择第二个”,这时候,UNIT进行意图识别,识别出选择意图,然后把“第二个”这个值返回给客户端,客户端根据上一个意图的结果进行这次意图的选择。选中第二个,开启导航。

 

(二)用户说“我要去地铁站”,这时候,UNIT进行意图识别,再次识别出导航意图,把地铁站这个词槽的值返回给客户端,客户端需要做业务上的处理,把地铁站与上一个意图结果进行文本匹配,如果匹配上,就是用户所要去的地方,相当于(人民大学 + 地铁站),找到最终位置。

 

 

     如果没有匹配上的话,则重新调用第三方列表接口,查询出列表,再次让用户选择,直到用户选中结果集的其中一个,否则,这个过程是循环往复的。

    这样的好处是,用户想改变导航的目的地提供简单的解决方案,比如说用户第一次说“我要去人民大学”,可是他不想去了,想去北京大学,那只要继续说出“我要去北京大学” 即可。

 

 

这样的需求就需要定义多个意图同时完成,需要业务上进行特殊处理。

 

收藏
点赞
5
个赞
共37条回复 最后由mxw2552261回复于2017-12
#38mxw2552261回复于2017-12

谢谢谢谢

0
#37daipeng_hi回复于2017-12

关注了,期待更多更新

0
#36zr0519回复于2017-12

果然专业!

0
#35卡农LLLL回复于2017-12

去现场确认了..unit发布到dueros的技能没有userid.小道说的3月份之前.哎.

0
#34mxw2552261回复于2017-12
#33 静心之王回复
一直在关注导航,看了一些论文,感觉都不知道怎么实现,这方案不错

这一篇你也看看,希望对你有所帮助

https://ai.baidu.com/forum/topic/show/497239

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

一直在关注导航,看了一些论文,感觉都不知道怎么实现,这方案不错

0
#32hubery_class回复于2017-12

加油吧

0
#31mxw2552261回复于2017-12

谢谢各位

0
#30hubery_class回复于2017-12

关注中

0
#29hubery_class回复于2017-12

楼主威武,看好楼主,信楼主得永生

0
#28daipeng_hi回复于2017-12

很棒的方案,填完词槽再加个确认,完美!

0
#27独孤焰坤回复于2017-12

厉害~

0
#26___xiaoxiaogui回复于2017-12
#25 mxw2552261回复
没有屏幕的导航总感觉怪怪的,看不到路线,看不到路况,看不到多条路线没法进行选择最优路线。 如果实在要在音响设备上做导航的话,我的建议是越简单越好, 1. 尽量提示用户一次把所有信息说完,尽量不要出现列表,比如说“我要去人民大学西门” 2. 如果出现列表,也进行简要的播报,比如人民大学列出了三条“人民大学(地铁站),人民大学(西门),人民大学(东门)”,那么播放内容应该是“请问您到人民大学 的 地铁站,西门,还是东门?” 3. 用户询问路况(语音提示路况),这个百度导航应该已经实现,可以参考。
展开

导航技能的使用场景在音响上实现不了的,因为导航是一种动态场景。

从导航的例子扩展过来是因为搜索结果是列表,与打车、酒店或者票务类的重业务技能比较类似,在想这种形式该采取什么样的语音报告方式,以及报告的内容可以给用户带来更好的体验。

0
#25mxw2552261回复于2017-12
#24 ___xiaoxiaogui回复
第二个问题已经明确,谢谢! 关于第一个问题的话,我认为需要根据业务的使用场景来决定是否需要播报,当前的使用场景是在车载导航仪上,确实会有GUI界面的辅助。换一个场景,在音响上打车,这个时候跟用户说了目的地(比如说,人民大学)以后,出来一个目的地的搜索列表,这个时候用户没有打开手机进行GUI界面的辅助,此时需要通过语音信息的播报来完成目的地的选择,所以此处关于语音报告的内容及规则还是需要明确的。
展开

没有屏幕的导航总感觉怪怪的,看不到路线,看不到路况,看不到多条路线没法进行选择最优路线。

如果实在要在音响设备上做导航的话,我的建议是越简单越好,

1. 尽量提示用户一次把所有信息说完,尽量不要出现列表,比如说“我要去人民大学西门”

2. 如果出现列表,也进行简要的播报,比如人民大学列出了三条“人民大学(地铁站),人民大学(西门),人民大学(东门)”,那么播放内容应该是“请问您到人民大学 的 地铁站,西门,还是东门?”

3. 用户询问路况(语音提示路况),这个百度导航应该已经实现,可以参考。

0
#24___xiaoxiaogui回复于2017-12
#22 mxw2552261回复
你的第一个问题:我认为从产品的角度无需播报。因为等播报完,估计几十秒过去了,这是不可忍受的。 第二个问题:意图就是选择,词槽就是第几个。词槽值可以枚举出你业务里最大的数,比如你的列表就10个,那么设置十个值就可以了。 第一个,第二个。。。第十个,这样UNIT就能识别出你是选择的意图。把第几个返回给客户端,那么客户端需要做逻辑处理,选择当前列表中的第几个。
展开

第二个问题已经明确,谢谢!

关于第一个问题的话,我认为需要根据业务的使用场景来决定是否需要播报,当前的使用场景是在车载导航仪上,确实会有GUI界面的辅助。换一个场景,在音响上打车,这个时候跟用户说了目的地(比如说,人民大学)以后,出来一个目的地的搜索列表,这个时候用户没有打开手机进行GUI界面的辅助,此时需要通过语音信息的播报来完成目的地的选择,所以此处关于语音报告的内容及规则还是需要明确的。

0
#23yezi199229回复于2017-12
#21 ___xiaoxiaogui回复
有个问题,在业务执行过程中: 1、语音报告搜索结果:搜索结果为导航列表(首页放10条结果),报告的方式是什么,逐条报告吗,还是语音只报告部分,剩下内容由GUI界面辅助呈现?报告的内容是多少,用户的短时记忆内容有限。 2、用户语音选择:如果是“人民大学+地铁站”,这种区别性很强的特征词,能让UNIT很好的识别。但是对于“第二个”这种比较模糊,如何能够做到精确的映射和匹配,这个地方的意图是怎么设置和处理的,保证后台能准确执行用户的选择。
展开

我觉得是:

只说一句:为您找到如下结果(结果呈现在GUI界面上),请问选择第几个?

回答:第二个的时候,匹配第二条搜索结果(把第二条的结果填充到词槽),并开始导航。

 

 

0
#22mxw2552261回复于2017-12
#21 ___xiaoxiaogui回复
有个问题,在业务执行过程中: 1、语音报告搜索结果:搜索结果为导航列表(首页放10条结果),报告的方式是什么,逐条报告吗,还是语音只报告部分,剩下内容由GUI界面辅助呈现?报告的内容是多少,用户的短时记忆内容有限。 2、用户语音选择:如果是“人民大学+地铁站”,这种区别性很强的特征词,能让UNIT很好的识别。但是对于“第二个”这种比较模糊,如何能够做到精确的映射和匹配,这个地方的意图是怎么设置和处理的,保证后台能准确执行用户的选择。
展开

你的第一个问题:我认为从产品的角度无需播报。因为等播报完,估计几十秒过去了,这是不可忍受的。

第二个问题:意图就是选择,词槽就是第几个。词槽值可以枚举出你业务里最大的数,比如你的列表就10个,那么设置十个值就可以了。

第一个,第二个。。。第十个,这样UNIT就能识别出你是选择的意图。把第几个返回给客户端,那么客户端需要做逻辑处理,选择当前列表中的第几个。

0
#21___xiaoxiaogui回复于2017-12

有个问题,在业务执行过程中:

1、语音报告搜索结果:搜索结果为导航列表(首页放10条结果),报告的方式是什么,逐条报告吗,还是语音只报告部分,剩下内容由GUI界面辅助呈现?报告的内容是多少,用户的短时记忆内容有限。

2、用户语音选择:如果是“人民大学+地铁站”,这种区别性很强的特征词,能让UNIT很好的识别。但是对于“第二个”这种比较模糊,如何能够做到精确的映射和匹配,这个地方的意图是怎么设置和处理的,保证后台能准确执行用户的选择。

0
#20卡农LLLL回复于2017-12
#19 ___xiaoxiaogui回复
如果直接说“我要回家”或者“我要去公司”,当前的解决方案主要为:在使用app的时候,会提醒用户设置家和公司的地址,这样说我要回家或者我要去公司,后台在用户中心将该类地址信息抽取出来,直接执行就好了。
展开

就像我13楼说的.现在UNIT的资源API没有用户信息..所以有一些和Duer合一起用的方案不好解决.

0
#19___xiaoxiaogui回复于2017-12
#6 卡农LLLL回复
如果用户说"我要回家","我要去公司".这种怎么实现呢.讨论讨论. 我现在想的只有返回特殊的结果.然后自己处理.
展开

如果直接说“我要回家”或者“我要去公司”,当前的解决方案主要为:在使用app的时候,会提醒用户设置家和公司的地址,这样说我要回家或者我要去公司,后台在用户中心将该类地址信息抽取出来,直接执行就好了。

0
TOP
切换版块