基于ALICE的智能聊天机器人的程序开发

2018-01-26 04:58广州市执信中学聂硕琳
电子世界 2018年1期
关键词:分词聊天语料库

广州市执信中学 聂硕琳

一、引言

智能聊天机器人的主要用于模拟人类对话或聊天,应用场景是客服坐席。它替代客服人员回答大量重复而且简单的问题,反映速度比人要快很多,而且不会感到疲惫和厌烦。它唯一的需求是有电源供应。

聊天机器人分为目标驱动型和无目标驱动型。目标驱动型机器人的语料库通常是固定的,因此针对用户的提问,回答也是固定的,开发起来相对也比较简单。微信群里的自动回复就属于这一类机器人的应用场景。无目标驱动型机器人如微软的小冰,贤二机器人等,它们可以回答用户千奇百怪的问题,可以代替真人客服与用户进行聊天。

一般来说,聊天机器人应该具备以下特点:

(1)正确回答问题。如果与人聊天时总是答非所问,那就不能称之为智能聊天机器人。

(2)回答问题时使用正确的语法。在内容完整,逻辑合理的基础上,要保证语句的通顺,符合语法规则,这样才不会引起歧义。

(3)答案应变化多端,丰富多彩。既然是聊天机器人,就不能给人无聊的感受,应该通过不同的用词和句法,使对话能够完成,并解答用户的疑问。这样才能吸引更多的用户使用聊天机器人。然而做到以上这几点需要多种技术的结合,包括自然语言处理、大数据分析、机器学习等等。Google的ALICE便使用了这些技术。

二、研究背景

1960年外国的科学家就提出“计算机要能用自然语言与人沟通”的设想。随着科学技术的发展和移动互联网的日新月异,各大互联网公司推出了自己的智能聊天机器人,替代人工面对庞大的客服需求,使得聊天机器人成为人们关注的方向之一。国外聊天机器人的发展比较早,目前已经有很多成熟的产品,比如苹果的Siri, 用户可以给Siri发布定时、打开应用等指令。 微软的小冰可以与用户进行有趣的聊天。还有Google的Alice,IBM的Watson等。聊天机器人在中国也有广泛的应用,比如许多微信群,淘宝的客服,百度的度秘,科大讯飞的语音助手等都能提供智能聊天服务,极大地减少了人工成本。但是相较于国外,发展还是相对落后,主要原因是中文比较难处理,语料库的积累也比较少。

在机器人的主要设计技术方面,目前比较主流的是基于人工模板和人工智能的两种聊天机器人。

基于人工模板的聊天机器人制作最简单,主要是通过人工录入一些对话的模板,当有用户提问时,会从这些模板中找出匹配的答案返回给用户。这种技术的优点是开发简单,返回答案速度快,缺点是答案单一,人工成本高。

基于人工智能的聊天机器人是利用一些算法来生成答案,答案的准确度取决于算法的好坏。这种聊天机器人有自我学习的能力,随着聊天次数的增多,答案也会越来越准确。这种聊天机器人的优点是前期不需要人工输入大量模板,答案较灵活,缺点是开发难度大,模型训练复杂。这种聊天机器人制作的主要难点在于语料库的积累,规则的匹配。

三、理论原理

行为主义理论又称为刺激-反应理论,这种理论认为通过对环境的“刺激”和对行为的“强化”,所有行为都可以被设计、创造乃至改变。另外,只要不断地强化正确的反应,消除错误的反应,学习的效果就会越好。本文中提到的ALICE的AIML(人工智能标记语言)采用的就是“刺激-反应”理论,通过对输入语句进行匹配和分析,也就是刺激,给出答案,即反应,从而使得答题内容能够正确地的表示并传输。

四、技术原理

智能聊天机器人涉及多方面的技术,比如大数据分析、自然语言处理、机器学习等,这些都属于人工智能的范围。自然语言处理是智能聊天机器人的核心技术之一。机器人会根据用户输入的语句,进行分词,然后和语料库进行比对,然后返回预先设定的回答。机器人的语料库越大,返回的答案越精确,这就涉及到了大数据技术。另外,机器人从这么庞大的语料库中筛选获取准确数据的过程,就使用了机器学习的算法,并且机器人还有自学习的能力,能通过和不同的人聊天,积累经验,会变得越来越智能,并能够应付更多不同的提问。

1.自然语言处理

自然语言处理是研究实现人与计算机之间用自然语言进行沟通的技术,涉及到语言学、数学、计算机科学等多种学科。自然语言处理的应用主要在聊天机器人、机器翻译、搜索引擎等领域。自然语言处理在智能聊天机器人的开发中起着重要的作用。自然语言处理主要包括词法分析、句法分析和语义分析三大部分。词法分析的核心即分词。句法分析就是对自然语言中句子的结构、语法进行分析,如辨别疑问句和感叹句等。而语义分析则注重情感分析和整个段落的上下文分析,辨别一些字词在不同的上下文中特定的语义和情感态度。

机器人的语料库也叫知识库,知识库的设计要通过大量的调研,作为前期的语料储备。在机器人与用户沟通积累到一定程度后,机器人可以将这些聊天内容储存并分析,从而丰富语料库。当机器人要回答问题时,要先对问题进行分词,这就涉及到了分词器。分词器也分多种语言。常用的分词技术有基于字符串的分词算法,基于统计以及基于理解的分词算法。分词完成后,拿这些词语与语料库中的数据进行相似度计算,选择相似度大的结果返回给用户。

2.大数据分析

IBM给出了大数据的5V特点,分别是Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。首先数据量要大,并且处理速度快,而数据格式、内容多种多样;通过对大数据的挖掘能得到少量数据得不到的有价值的信息;另外数据要真实可靠。

大数据分析是对大规模的数据进行分析的技术。大数据分析的流程一般分为数据收集、数据预处理、算法分析挖掘、产生结果、结果可视化这五步。其中数据收集是前提,数据预处理是将收集到的杂乱的数据,按照一定格式存储,并对无效数据进行过滤。算法分析挖掘时通过运用一些算法来处理这些数据,产生有价值的信息,并作出预测,最后可视化是将结果以合适的方式展现出来,可以是统计图,也可以是表格。

智能聊天机器人的语料库积累到一定规模后,对语料库的挖掘过程就可以称之为大数据分析。语料库的积累即是数据收集的过程。数据在存储的过程中,可以进行初步的筛选,去掉无意义或重复的语句,保证语料库的质量。聊天机器人在收到请求后,会利用一些机器学习的算法从语料库中搜集、挖掘可能的答案,最后将最适合的答案返回给用户。

3.机器学习

机器学习是人工智能的核心,在人工智能的各个领域都有应用。机器学习是机器研究获取新知识的技术。机器学习分为监督学习和无监督学习,以及半监督学习。监督学习就是通过给定的有标签的训练集来训练模型。无监督学习是没有给定有标签的数据集,需要通过初始化,不断地优化模型。半监督学习介于两者之间,训练集的标签可能不是最终的标签,只是一个中间结果。常用的机器学习算法有决策树、关联规则、人工神经网络等等。

智能聊天机器人在检索答案的过程中往往会产生许多结果,并且会给这些结果打分,最后返回打分最高的结果。这个分值是在与人们聊天的过程中根据人们的反馈积累下来的,所以智能聊天机器人模型的训练是有监督的。

五、ALICE的工作原理

ALICE第一个版本是由Richard S.Wallac于1995年开发完成的,先后有300多人为其做出贡献,目前存储四万多条知识分类,可以支持英语、德语、法语等多种语言,现在ALICE在问答系统、智能导航、网站服务等系统中都有广泛的应用。

ALICE具有丰富的标签,算法也并不复杂,主要采用的是模式匹配的方法。

ALICE有两个核心的模块:AIML语料库和Chatterbean引擎。AIML即人工智能标记语言,是基于XML发展的,采用了简单的模式匹配和“刺激-反应”理论。Chatterbean使用JAVA语言开发,该引擎负责处理用户的输入,并对AIML进行解析。

AIML的标签主要有