clliuhust 2020-03-13
分析聊天机器人,因其是在现实生活中利用人工智能最流行,被最广泛采用和使用门槛最低的方式之一。
如果你曾经使用过客户支持的在线聊天服务,你可能会发现你的“聊天对象”很“笨拙”和“呆板”,像个机器人?没错,正在和你聊天的“人”可能实际上就是一个机器人。
这是聊天机器人和人工智能的时代。有关这方面的最新进展正在不断涌现,以至于聊天机器人正在客户服务领域取代人类。
人工智能已不再仅仅是单纯的科幻梦。你曾想过有一天人类与智能机器进行互动和沟通吗?
聊天机器人凭借其智能,拟人化的回答以及学习通过从机器学习中获得的经验的能力,使这个不切实际的想法变为可能。
聊天机器人是在现实生活中利用人工智能最流行,被最广泛采用和使用门槛最低的方式之一。企业将聊天机器人视为使客户服务和业务流程自动化的重要工具。
不同类型的聊天机器人体系结构模型
聊天机器人的体系结构模型是根据开发的核心目的决定的。聊天机器人有两种可能的响应类型:依据机器学习模型从零开始生成响应,或使用启发式方法从预定义的响应库中选择适当的响应。
1. 产生式模型
该模型用于开发本质上十分先进的智能机器人。这种聊天机器人很少被使用,因其需要执行复杂算法。
产生式模型相对难以构建和开发。培训此类机器人需要为其提供数百万个示例,这将花费大量时间和精力。这就是深度学习模型如何参与对话的方式。但是,模型将生成什么响应仍不能确定。
2. 基于检索的模型
这种体系结构模型的聊天机器人更易于构建且更加可靠。虽不能保证100%准确地响应,但可以知道可能的响应类型,并确保聊天机器人不会传递不适当或不正确的响应。
目前,基于检索的模型更多地被使用。开发人员可以很容易地使用几种算法和API(应用程序编程接口),以在此体系结构模型上构建聊天机器人。这种聊天机器人会考虑消息和会话的上下文,以从预定义的消息列表中提供最佳响应。
聊天机器人的响应生成机制
下面来讨论聊天机器人理解用户消息或获取用户消息意图的两种不同方式。
1. 基于模式的启发式算法
响应可以通过两种不同的方式生成:使用if-else条件逻辑或使用机器学习分类器。最简单的方法是使用预定义的模式来定义一组规则,以充当框架规则的条件。人工智能标记语言(AIML)最常用于在聊天机器人开发过程中编写模式和响应。
<category> <pattern>What is your name</pattern> <template>My name is Albert Smith</template> </category>
借助自然语言处理渠道和预定义的丰富模式,AIML可用于构建智能聊天机器人。这些机器人解析用户消息,查找同义词和概念,标记语音部分,并找出与用户查询匹配的规则。但是,除非特别编程,否则这些程序不会运行机器学习算法或任何其他的API。
2. 运用机器学习进行意图分类式
尽管基于模式的启发式算法可提供良好的结果,但问题在于,它需要手动对所有模式进行编程。这是一项单调乏味的任务,尤其是当聊天机器人必须区分数百种针对不同场景的意图时。
意图分类完全基于机器学习技术,该技术可以训练机器人。通过聊天机器人最可能面对的数千个示例的培训合集,就可以训练机器人来识别数据模式并从中学习。
scikit-learn是一个常用的机器学习库,可以帮助执行机器学习算法。开发者甚至可以选择使用api.ai,wit.ai和Microsoft LUIS中的一种云API。最近被Facebook收购的wit.ai是第一个用于聊天机器人的机器学习API。
响应生成
来源:Pexels
一旦聊天机器人理解用户消息,下一步就是要生成一个响应。一个方法是生成简单、不变的响应。另一种方法是获取基于意图的模板并插入一些变量。聊天机器人开发公司根据使用聊天机器人的目的选择生成响应的方法。
例如,使用API以获取给定位置的天气预报的天气预报聊天机器人可能说:“今天很可能下雨”或“今天是雨天”或“下雨的可能性为80%,所以今天请带上雨伞备用。”
响应风格因用户而异。在这种情况下,机器人可以研究并分析先前的聊天及其关联的指标,为用户量身定制响应。