中文聊天机器人原型系统的设计

更新时间:2023-06-02 02:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第10卷 第2期

2007年6月 沙洲职业工学院学报 Journal of Shazhou Professional Institute of Technology Vol. 10, No. 2 June , 2007

中文聊天机器人原型系统的设计

易顺明,胡振宇

(沙洲职业工学院,江苏 张家港 215600)

摘 要:探讨了中文聊天机器人原型系统的设计方式,提出了采用中文分词与关键词语匹配算法。从中文句子中抽取关键词,形成规则库与规则树。聊天时,采用带回溯的深度优先算法,找到最佳匹配路径,给出回答。

关键词:聊天机器人;模糊模式匹配;深度优先搜索;人工智能

中图分类号:TP319 文献标识码:A 文章编号:1009-8429(2007)02-0005-05

The Prototype Design for the Chinese Chat Robots

YI Shun-ming, HU Zhen-yu

(Shazhou Professional Institute of Technology, Zhangjiagang 215600)

Abstract: The Chinese word segmentation and the matching algorithm based on keywords are adopted for the prototype design of Chinese chat robots. These keywords are extracted from Chinese sentences to create a lot of rule database and rule trees. A highly restricted version of depth-first search, also known as backtracking, is used to find some best matching paths and give a reply.

Key words: chat robot; fuzzy pattern matching; depth-first search; AI

1 概述

聊天机器人是指在聊天室或论坛上通过理解聊天对象的句子自动做出相应应答的一种软件,它可以代替真人在聊天室中进行聊天。准确地理解自然语言,目前在理论上仍然无法实现。语义分析和上下文相关文法,一直是自然语言理解中需要解决的难题。[1]

目前基于自然语言理解的聊天机器人的研究尚在起步阶段,国外典型的聊天机器人主要有基于AIML的A.L.I.C.E[2]和VerBot等;用于中文处理的绑定在QQ聊天工具里的聊天机器人“小强”和“小I”,以及微软MSN的“小布”,其中后者已经具备了很大的知识库,能够理解一些基本的常用句子,甚至还提供了专门信息查询服务的功能,目前国内外相关的资料甚少。

我们所开发的智能聊天机器人原型系统结合了信息查询服务与智能聊天的功能,围绕这些功能扩展出学习、工作、交友、买卖、考试、日程安排六大功能模块,形成以智能机器人为角色的智能虚拟社区。

系统选用Ecplise3.0并安装插件Struts Studio、tomcat、VSS作为前台开发工具,用Oracle9i作为后台数据库服务器,使用了MVC模式的WEB应用。本文主要介绍智能虚拟社区中的智能聊天机器人的原型设计。

2 网络MVC构架

系统登陆时,用户从index.jsp里输入用户名与密码,把这两个字段传到loginForm里,在loginAction里new出loginForm,获取用户名和密码,做出判断,然后maping forward到相应的页面,示意图见图1。

整个系统采用Hibernate来连接数据库。

收稿日期:2007-03-26

作者简介:易顺明(1966-),男,沙洲职业工学院科研处副教授,硕士;

胡振宇(1983-),男,苏州大学计算机科学与技术专业2005届毕业生。

易顺明,胡振宇:中文聊天机器人原型系统的设计

图1 登陆模块MVC构架

3 系统结构

聊天机器人原型系统的设计,主要基于语料库和规则学习的人工智能方法。其主要原理是:当聊天对象输入句子时,系统对此句子作一些前处理,包括过滤标点符号和停用词,然后进行中文自动分词。抽取出分词后的句子中的关键词,通过规则匹配算法规则库进行关键词最优匹配,找到规则库中与之对应的规则。若规则库中没有能够匹配的规则,则转入一般算法,随机给出像“哈哈……我不懂你说的是什么意思”,或者“对不起,你能不能换一种方式来说”等通用答案;若匹配到不只一条,找出匹配到的关键字个数最多的规则,若个数最多的规则仍不只一条,查看是否有逻辑判断,有逻辑则优先匹配逻辑,无逻辑则从匹配到的规则中随机选取一个作为回答。图2描述了整个系统匹配的结构。

图2 聊天机器人原型系统结构图

4 规则树与规则匹配

规则库是聊天机器人系统中的核心数据库,在设计中,我们从日常的句子中抽取出一定的结构,形成规则库,如图3所示。

图3 规则库

6

易顺明,胡振宇:中文聊天机器人原型系统的设计

在上面的规则中,*代表了若干字符。如果用户录入了类似如下的句子:

今天天气很好。今天天气真好。今天的天气格外好。

系统就能通过模糊模式匹配规则匹配到规则库中的这条记录,并将相应的答案返回出来。

为了提高匹配的准确度与速度,我们构建了一个规则树来存储规则。

例如:图4(a)是一个以A为起始关键字的字串的规则树,图4(b)是一个以B为起始关键字的字串的规则树。

图4 规则树 (a) “A”规则树 (b) “B”规则树

以A为根节点开始的规则可以是:

*A*B*、*A*B*C*、*A*B*C*D、*A*B*D*、*A*B*E*、*A*B*E*F等等。

若是*B*C*前没有关键词,则采用以B为根节点开始的规则。

匹配过程采用深度优先搜索算法,当规则库中没有找到相应的根节点时,系统会自动创建一个新的根节点规则树;若找到了相应的根节点,系统会记录其ID号,然后继续,直至结束。

例如,在规则库中有上面描述的规则存在,用户输入以下句子:

上海今天的天气格外好。

经过中文分词后,分成:

上海|今天|的|天气|格外|好。

对句子按照词序开始进行模糊规则匹配。系统首先在规则库中寻找有没有以“上海”为根节点的规则树,如果失败,则去掉“上海”这个词,再开始找以“今天”为根节点的规则树,并根据深度优先原则进行遍历搜索,直至找到“*今天*天气*好*”这个路径,然后根据上面所说的规则,得到“恩,我感觉心情也不错”的答案,作为回答进行输出。

图5是这种匹配算法的流程图。

这种算法有一定的局限性,即一旦存在以“上海”为根节点的规则树,系统会在这个规则树中找到比较接近的规则,而不再转到以“今天”为根节点的规则树上去。

此外,规则库的构建,目前仍采用人工选择的方式,这样的好处是比较准确,缺点则是要构建一个实用的且比较大型的规则库需要一定的时间,所以也可以考虑放在网络上采取“让人抱养”的方式,以尽快提高规则的构建速度。

7

易顺明,胡振宇:中文聊天机器人原型系统的设计

图5 匹配算法流程图

5 系统结果分析

5.1 规则学习

规则学习的任务就是建立规则库,其基本功能主要有:增加基本规则,查询规则和删除规则。

在建立规则的时候,要注意通配符*的合理使用,它在句子中主要代表了一些虚词、助词、连词等非关键词。关键词的选择包含了句子的结构和语义方面权重较大的词汇,另外,还要注意避免规则与规则之间的协调。图6是规则库编辑界面。

8

易顺明,胡振宇:中文聊天机器人原型系统的设计

图6 规则库编辑界面

5.2 聊天结果

图7是一个聊天的简单界面,其中的“你”是用户,“小R”是聊天机器人。

图7 聊天机器人界面

6 结束语

从我们目前实现的聊天机器人原型来看,系统已经构建了820多个规则库,每个规则库有数百个规则,已经基本具备自动聊天的效果。下一步的工作,重点是要建立上下文相关的树结构,以便模拟出语言环境,使聊天机器人能够适应语用环境,表现得更加真实。

参考文献:

[1] 戴开宇,张申生,王淼.分布式虚拟环境中的聊天机器人的研究[J].计算机工程与应用,2002(7):13-16.

[2] Wallace R. The Anatomy of ALICE[EB/OL]./anatomy.html.2006-12-10.

9

本文来源:https://www.bwwdw.com/article/qu91.html

Top