智能客服话术设计思路

为什么写本文

很多人使用我smartivr接口的时候遇到一个问题,怎么设计话术,想了很久无从下手,本文主要介绍一种通用话术设计思路。

相关技术介绍

中文分词

本文描述的设计思路,可以不需要进行中文分词。当然如果你有合适你开发语言的分词引擎,也可以先分词。

语义理解(NLP)

这个很难,本人也没有对NLP相关算法进行过研究,所以本文描述的设计思路也不需要相关的知识。

多轮交互

就是机器人和用户进行多次对话,smartivr接口提供了一个flowdata参数用来保持多轮对方的上下文数据。

简易通用话术设计思路

介绍

本方法并不能进行准确的用户意图理解,只是通过一个简单的方法来实现机器人和用户交互,完成话术设计。

肯定关键词

一般位于句子开头几个字。比如:好,需要,是,OK,可以,有。 各位可以自己多想一些。

否定关键词

一般位于句子开头几个字。比如:不,没。各位可以自己多想一些。

特殊关键词

执行特殊操作的关键词。比如 没听清,你再说一次,什么啊,执行重复播放当前声音。

疑问关键词

就是用户咨询的问题。

关键词组

就是把很多意思相近的关键词放到一个组里。比如 你是哪里,你是那个公司,你是谁,放到一个组里。

优先级

为每个组设置优先级,根据优先级逐个在用户回答文本中匹配。

流程上下文

为每个关键词组设置上下文属性。可以为不同的流程上下文设置不同的答案。例如下表:

关键词组 流程上下文 回答内容
很贵 默认 我们楼盘最近有优惠活动,你看看什么时候方便来看看
很贵 已经介绍优惠活动 我们楼盘地段很好,这个价格已经很划算了。

匹配顺序

  1. 特殊关键词
  2. 疑问关键词
  3. 否定关键词
  4. 肯定关键词

这里注意一下 否定必须在肯定前面(因为不然会冲突 ,比如,不需要,里面包含了肯定关键词需要)。如果匹配中了否定关键词,就不需要继续匹配肯定关键词了。还有就是,否定关键词和肯定关键词,只需要匹配句子的前面几个字,遇到第一个逗号就结束匹配。

多重匹配

比如用户回答,好的,你是哪里啊。其中好的是肯定回答,你是哪里啊是疑问关键词。这个时候可以匹配到2个回答内容。 可以把2个回答内容组合,疑问关键词冠词回答内容先播放,然后进入肯定回答流程,播放相关流程内容。

解决语音识别不准问题(拼音匹配)

可以参考 http://ai.baidu.com/docs#/ASR-Tool-diff/top?qq-pf-to=pcqq.group,原理就是使用dtw算法匹配2个拼音或字符串的相识度,可以参考百度提供的java代码,也可以自己找其他开发语音的dtw算法。