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

需求是这样的:

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

 

 

这时候需求就来了,

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

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

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

 

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

首先需要建立两个意图:

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

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

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

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

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

 

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

 

 

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

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

 

 

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

 

收藏
点赞
5
个赞
共37条回复 最后由mxw2552261回复于2017-12
#18mxw2552261回复于2017-12
#17 yezi199229回复
很棒的方案,填完词槽再加个确认,完美!

谢谢:)

0
#17yezi199229回复于2017-12

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

0
#16mxw2552261回复于2017-12
#15 nangua_mitao回复
楼主威武,看好楼主,信楼主得永生

哈哈。

0
#15nangua_mitao回复于2017-12

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

0
#14卡农LLLL回复于2017-12
#12 mxw2552261回复
另外还可以添加对话模板来定义“我要去公司”以及“我要回家”,加一个特征词,这样导航去公司,我想要去公司,去公司,等等,都可以识别。 [图片]
展开

特征词也很好用.但和这个逻辑区别不大.

还是希望资源API能更丰富点.能把意图词槽返回给DuerOS就好了.

0
#13卡农LLLL回复于2017-12
#10 mxw2552261回复
我的分析,如果有误,请大家讨论纠正: 1. 像家和公司这样不固定的东东,肯定是要在APP里进行设置保存的。 2. 公司,家应该是词槽的值。 3. 我要回家/公司,首先UNIT能识别出导航的意图。 4. 意图识别出来了,那么客户端需要特殊的逻辑处理,查询客户端存储“家”的地址是哪里,然后开启导航
展开

能得到词槽其实怎么搞都好.现在因为我用的Dueros.那边没法得到返回的词槽..头痛.

肯定是要先预存家和公司位置的.UNIT是同步的.所以也不用身份识别.知道是家.然后去取自己的数据就行

0
#12mxw2552261回复于2017-12
#10 mxw2552261回复
我的分析,如果有误,请大家讨论纠正: 1. 像家和公司这样不固定的东东,肯定是要在APP里进行设置保存的。 2. 公司,家应该是词槽的值。 3. 我要回家/公司,首先UNIT能识别出导航的意图。 4. 意图识别出来了,那么客户端需要特殊的逻辑处理,查询客户端存储“家”的地址是哪里,然后开启导航
展开

另外还可以添加对话模板来定义“我要去公司”以及“我要回家”,加一个特征词,这样导航去公司,我想要去公司,去公司,等等,都可以识别。

0
#11mxw2552261回复于2017-12
#8 荒墨丶迷失回复
可以可以 都是精品贴~哈哈

谢谢谢谢。

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

我的分析,如果有误,请大家讨论纠正:

1. 像家和公司这样不固定的东东,肯定是要在APP里进行设置保存的。

2. 公司,家应该是词槽的值。

3. 我要回家/公司,首先UNIT能识别出导航的意图。

4. 意图识别出来了,那么客户端需要特殊的逻辑处理,查询客户端存储“家”的地址是哪里,然后开启导航

1
#9mxw2552261回复于2017-12
#5 goJhou回复
可以可以,文章更新频率很高的蛮

哈,整理的东西贴出来,给大家提供思路,也方便我以后翻阅,双赢嘛

0
#8荒墨丶迷失回复于2017-12

可以可以 都是精品贴~哈哈

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

“请告诉我家在哪里 ”这种还是需要特殊标记的吧~

1
#6卡农LLLL回复于2017-12

如果用户说"我要回家","我要去公司".这种怎么实现呢.讨论讨论.

我现在想的只有返回特殊的结果.然后自己处理.

0
#5goJhou回复于2017-12

可以可以,文章更新频率很高的蛮

0
#4mxw2552261回复于2017-12

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

0
#3mxw2552261回复于2017-12
#2 伊茨米可回复
哇,好厉害!赞!

哈哈。其实还是百度AI比较牛而已

0
#2伊茨米可回复于2017-12

哇,好厉害!赞!

0
TOP
切换版块