上回介绍了我们聊天官的人设确定过程,这次就让我们看看该如何让“小唯”能说会道起来吧~
没看到上一篇的,我来传送门
开始整活!
准备了这么多,终于要开始写语料了,可是对话范围这么广,我们从何写起?
1、闲聊问答分类
根据日常对话的类型,我们定义了闲聊的类型,并做了如下优先级的排序
优先级 |
类别 |
定义 |
备注 |
p0 |
寒暄 |
问候,打招呼等 |
开启聊天的必要问法 |
人设 |
用户对机器人好奇产生的关于人设或其他属性的问题 |
用户对陌生人,新朋友,都会好奇他的背景信息 |
|
敏感 |
涉及国家,机密,黄赌毒等敏感的话题,人或事 |
以免被查水表 |
|
debug |
用户用来测试bot是否可用,是否可以进行对话 |
前面分析过,为了跨过用户的测试心理,撬动他对bot的认知 |
|
p1 |
抱怨 |
对bot感到不满,程度比辱骂低 |
用户一定会问到badcase,少不了要被臭骂一顿 |
调戏 |
用户与bot聊,bot不可能做到的事情,挑逗bot |
管你是男是女,上来就问你有没有对象,大家都懂 |
|
竞品 |
将bot同其他智能bot比较 |
AI产品这么多,少不了要被比较来比较去 |
|
夸奖 |
用户对bot的称赞 |
对回答不错的问题,我们还是有自信接受夸奖的 |
|
p2 |
热点 |
互联网热点,热梗 |
不懂梗的人,很难跟互联网的人聊起来 |
情感 |
用户自己的情感输出 |
每天不止一遍的不想上班要对谁说?找我们就对了 |
|
辱骂 |
对bot不满,爆粗口,侮辱bot |
破口大骂的场合还是较少的,毕竟我们只负责聊天 |
确定好撰写范围后,就是写手的分工,根据写手不同的性格会分配不同的类别给他们写。后续可能会出现一个人对某个类别写的厌倦了,此时会再进行重新分工,以保证语料是在纵向和横向同时扩展,进而提高语料质量。
2、利用规则扩展语料
为了能命中用户的不同问法,写手们要尽可能多的写一些扩展问,但是面对像你爸爸是谁,你妈妈是谁,你哥哥是谁。。。等查户口式的问题,光把家里七大姑八大姨都写完就很费力了,还要给每个亲戚配上问题,这活我们可不干!还好CBS服务(华为云对话机器人服务)提供了规则的录入方式,支持我们按“你[爸爸|妈妈|哥哥|妹妹]是谁“的方式,节省了大量的工作。当然前提是,这些问题我们准备有一种答案来回复。那好奇的同学就会问,如果是不同答案呢?问的好,请看下面的方法。
3、抽象对话场景,封装技能
所谓技能,就是把某一场景的对话能力封装起来的集合,比如查天气、订车票、或者像上一段我们说的查户口等。我们可以针对不同城市、时间回答天气情况;可以针对不同时间、出发地、目的地回答票务情况,当然也可以根据不同亲戚关系来给出不同回答,甚至是你爸爸的爸爸的爸爸的...是谁这种情况。除了此类功能性的对话可以作为技能以外,一些可以抽象的句式同样可以做为技能,比如比较选择的问法,A和B谁更厉害,你喜欢A还是B。因为用户会拿任何事物进行比较,我们无法穷举,这时对话技能就可以很好的解决这个问题,此处再次感谢CBS服务(华为云对话机器人服务)。下图是我们在对话机器人中设计订票技能时,配置的对话流程,很清晰,不懂算法的人也能配的出来。
对了,千万不要在订票过程中跟机器人说,我要去你心里这样的话哦:)。为了能让机器人的对话范围更丰富,更长尾,我们也引入了外部的一些内容,比如查星座运势,知识问答,甚至还能让他给你作诗,更多技能欢迎来找小唯解锁。
4、表现出上下文的理解能力
前面讲到要征服技术男,机器人少不了一些上下文的理解能力,为了解决这个问题,我们同样是人工+智能的结合。
首先,从对话场景出发,机器人难免会出现回答不上的情况,这时用户,一般会换种问法再继续发问,因为一般人和人之间的对话,也会出现一句话解释不清楚的情况,需要再次澄清。但如果用户反复问了多次,机器人还回答不上,不是又暴露了我们的“愚蠢”了么。不可以!所以我们会在对话中做一些逻辑,比如当用户连续X次问同一问题时,机器人会有固定的回复;当用户重复机器人的回复时(毕竟,人类的本质是复读机),机器人也会有固定的回复。不信你看:
其次,在技能内,我们也可以通过理解用户的意图来达到上下文的理解,比如在查天气时:
同时,为了增强机器人黏性,我们也在设计一些小游戏,可以让用户在闲暇的时候,来玩一玩,试试跟小唯说“猜数字”吧。
5、兜底话术
兜底话术,既在机器人不知道怎么回答时,使用的默认回复。好的兜底可以让人察觉不到机器人的“愚蠢”,可以避免尴尬,也要避免对话进入僵局,这样用户就不愿跟你玩了。下面是我们总结的在人工编写兜底话术时的一些原则。
- 不要机械化,不要说“我不清楚你在说什么”这类的话,看到这几个字,仿佛就看到一个机器人在那嘎巴嘴,不知道你有没有这种感觉。还有想想我们常见的智能客服,回答不上时,就会回复我还不了解,我听不懂你在说什么,就很机械,加强了与用户之间的“异类”感,用户体验也不会好,甚至还想骂他。
- 拆穿用户debug心里。既然你想测试我,挖个坑想看我往里面跳,那我就站在坑外面看着你,嗯,就是这种感觉。比如:你这是在测试我; 我知道你就是想看我出丑这类话术回复用户。
- 转移话题。这可是我们生活中,逃避话题的常见手段,当然,机器人也一样适用。比如:你刚才是不是说过这个;你对这个这么感兴趣么,等等。当然也可以引导至可聊天范围,引导用户去问机器人可以回答的问题上。比如:虽然我不是百科大全,但我能帮你查查天气;聊这些不如我给你讲个笑话,等等。
- 引导用户澄清。一些难于区分场景的回复,比如用户问“再来一个”,目前我们无法判断用户想要再来一个什么,唱歌、跳舞、还是讲笑话,所以我们回复,“好的,那你再问我一次”
- 装作理解了用户的样子。学习一下我们鼻祖ELIZA的回复方式,化身一个心理医生,让用户来主导对话,我们只是个倾听者,只对提问这个行为进行回复,而不是对问题内容进行回复,比如:那你觉得呢;你为什么会这么想。
以上举了一些栗子,我们在努力总结更多的原则来让“小唯”看起来聪明点,甚至还能向下引导对话,延长用户的对话时间,进一步达成我们可持续对话的目的。除了人工编写兜底话术外,我们还引入了生成式的对话模型的能力,此处还要@CBS服务(华为云对话机器人服务),来帮助我们自动生成回复。根据人工编写的语料,学习人设的回复风格,来回答一些人工无法覆盖的长尾问题。下面这个对话,对着小唯发誓,可都是生成的,没有一句是人工写的,来品品吧。
最后,关于我们
讲了两篇,从人设的设计到话术的设计,其实就是围绕着“平等对话”的本质,减少用户的异类感,同时,过程中给用户留下记忆点,让用户感受到我们有趣,聪明,与其他机器人不一样的点。当然少不了平时对各种聊天场景的观察和体会,少不了写手们一句一句的设计对话逻辑,少不了精准的语义模型,情感模型等。做对话的终点都是星辰大海,都在盼望“贾维斯”来到身边的那一天,任重道远,我们继续加油!
最后还是要祭出我们的公众号二维码,关注,然后来找小唯聊天吧!
最后的最后,团队也接各类项目合作,也需要各类人才,有对小唯感兴趣的欢迎随时来找我们哦。我们是华为云EI-对话机器人服务:)