房产自动应答系统的分析与设计
2010-10-16韩玉琢
佟 欣,韩玉琢
(1.赤峰学院 计算机科学与技术系,内蒙古 赤峰 024000;2.赤峰市建设委员会)
房产自动应答系统的分析与设计
佟 欣1,韩玉琢2
(1.赤峰学院 计算机科学与技术系,内蒙古 赤峰 024000;2.赤峰市建设委员会)
自动应答系统是一种基于因特网的高性能的软件系统.是一种对用户用自然语言提出的问题能够做出尽可能简洁、准确回答的计算机程序.本文根据房产中的应答系统的特点,采用了自然语言处理技术,设计了一种支持自然语言理解的自动应答系统的模型,同时通过详细的需求分析设计了总体框架.
房产;自动应答;分词;字符串匹配
1 引言
近几年我国房地产市场急剧升温,特别是上海、北京、杭州、深圳等城市房地产市场升温速度超乎人的想象.在过去的五年间,上海市房地产价格上涨了200%,这样一个速度,已远远超过GDP的增长速度和居民收入增长水平.受全国大气候的影响,中部城市如郑州、武汉等,西部城市如重庆、西安等地,房价也快速上涨.针对房地产市场的快速升温,国家也相继出台了配套措施,以维护和促进房地产业的稳定和快速发展.最近几年,土地市场和房产市场的协调配套发展、市场化配置资源的基础性作用等深层次问题仍在探索之中.
随着房地产市场的不断发展,相关的法律法规及配套规定也逐步完善,在市场逐步扩大的同时,也需要有大批的房地产专业人士来为之服务,这种情况下,房产自动应答系统就能够大大提高工作效率、解放劳动力,为房地产行政机关和老百姓搭建起了一个互动的平台,关于房产的相关内容非常丰富,包括房地产法律法规政策咨询、房地产市场走势分析、房地产开发企业及楼盘现状、房地产中介机构、房地产管理机构和相关行业等方面,同时还能够把一些疑难问题保存到专家数据库,由专家进行解答.
目前各种房产自动应答系统还正处于研制和发展阶段,系统内还没有统一规范的自动应答系统.本系统就是在这样一个大环境下设计开发的,其根本目的是为了减轻本市房管部门的工作压力,提高房管部门的工作效率,为用户搭建一个良好的信息查询平台.
2 需求分析
需求分析是软件开发的第一阶段.在任何软件开发的过程中,需求分析都是必不可少的.这一阶段使开发人员了解到用户需要一个什么样的软件,用户需要这个软件做什么,这个软件适合一个什么样的系统环境来运行,还有估计软件的风险和评估项目代价等等.只有做好了需求分析这一阶段的工作,之后的软件开发过程才能正常进行,如果需求分析工作出现失误,那么可能会导致一些开发好的部分不符合要求,甚至会导致整个工程重做,所造成的后果是不堪设想的,所以做好需求分析是软件开发的前提条件和重要环节.
2.1 功能需求
自动应答系统具有自然语言处理、查询及知识库的维护等功能.
2.1.1 自然语言处理功能
自然语言处理功能主要是指把用户提出的自然语言问句文本转化为计算机能够处理的语言.包括分词、字符串匹配等,是整个自动应答答疑系统实现的基础.为了保证分词的准确性,在对用户提出的问句文本进行分词处理时,处理的过程应该是首先依据专业词典切分出专业词汇,再依据常用词典切分表明问句性质的常用词,之后与常见问句表中的问题相匹配,从而得到系统的应答.为了保证分词及字符串匹配的效率,需要对现有的分词及字符串匹配算法进行分析,并选择较适宜的方法,关于这一部分在系统相关技术及系统实现中皆有介绍,这里不再赘述.
2.1.2 查询功能
查询功能是指计算机理解自然语言后,在答疑库中进行检索,返回与问句文本相似的一组答案,由于房产自动应答系统仅限于房产这一特定领域问题的解答,而不是对全部自然语言范围内的解答,因此对于歧异问题答案出现的概率比较小,而且提取出关键词都是与特定房产领域相关的,因此也没有必要考虑其相似度的问题.
2.1.3 知识库的维护
知识库是知识的存储机构,用于存储专家经验、相关法律法规等内容.其基本任务是提供问题求解以及问题解释所需的知识.知识库是整个自动应答系统的基础,其中知识质量的优劣、层次的高低、数量的多寡决定了问题求解结果的科学合理性和求解问题的覆盖范围.
通常,在设计知识库时应当做到以下几点:
(1)知识足够丰富,要能达到一定规模,否则所提供的服务将是非常受限的,对用户了解相关信息帮助也不大.
(2)相关信息准确度要高,否则只能误导用户,起不到应有的目的.
(3)内容的开放性,由于内容的多变性,要求能够很容易地添加、删除和管理知识条目.
(4)可移动性,随着网络技术的发展,需要知识库具有平台无关性,能够很方便地将知识库从一个操作平台移到另一个操作平台.
(5)知识表示要简洁、清晰、无歧义,便于计算机识别和运用.
(6)知识库整体结构要完善,既要知识定位快,又要存储空间小,尽量找到矛盾的最佳统一.
2.2 性能需求
自动应答系统的性能从智能性、准确性和查询速度三个因素考虑.如果智能性差,就体现不出自然语言理解的特点,就失去了智能的意义;如果准确性太低,就失去设计答疑系统的意义;如果速度跟不上在线需要,就不能体现实时应答,达不到自动应答的需求.
2.2.1 智能性
智能性就是系统能够充分理解用户提出的问句,如用户输入“什么是房地产交换?”、“房地产交换的意义?”和“房地产交换的含义?”应该认为是同一个问句,这就为回答问句的准确性提供了一定的保证.
2.2.2 准确性
用户输入问句后,要求返回的答疑与问句相匹配,自动应答系统应该返回用户所想要的答案.系统的准确性主要考虑以下三个方面问句:不同用户输入相同的问句,但表达方式不一样,给出的答案一定正确、一致,如“房地产交换是什么?”“什么是房地产交换?”;用户两次输入问句中使用同义或者近义的关键词问句,系统也能够给出答复;用户使用相关词语提问,系统也能给出适当答复.
2.2.3 查询速度
系统应能够及时、快速地回答用户问句,用户不能有明显等待感觉.
2.3 业务需求
业务需求是组织或客户对于系统的高层次目标要求,定义了项目的远景和范围,即确定软件产品的发展方向、功能范围、目标客户和价值来源.这种需求通常来源于项目投资人、购买产品的客户、市场营销部门或产品策划部门,一般使用远景和范围文档进行记录.业务需求的内容包括业务、客户、特性、价值及优先级.其中业务是指产品属于哪类业务范畴?应该完成什么功能?需要为什么服务?客户是指产品为谁服务?目标客户是谁?特性是产品区别于其他竞争产品的特性是什么?价值的含义是产品的价值体现在什么方面?优先级指产品功能特性的优先级次序是什么?
用户需求是从用户角度描述的系统功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的内部特性.用户需求的描述应该易于用户的理解,一般不采用技术性很强的语言,而是采用自然语言和直观图形相结合的方式进行描述,自然语言表达容易含糊和不准确.
本人在课题调研中了解到,随着房地产市场的不断发展,相关的法律法规及配套规定也逐步完善,在市场逐步扩大的同时,也需要有大批的房地产专业人士来为之服务.在这种情况下,开发一套房产自动应答系统,就能够大大提高工作效率,解放劳动力,为房地产管理机构和老百姓搭建起一个互动的平台.它应该包括房地产法律法规政策咨询、房地产市场走势分析、房地产开发企业及楼盘现状、房地产中介机构、房地产管理机构和相关行业等方面,同时还能够把一些疑难问题保存到专家数据库,由专家进行解答.虽然房产自动应答系统还正处于研制和发展阶段,但一些不科学、不完善的地方将会在应用中得到解决,相信随着我国房地产市场的发展壮大,房产自动应答系统会得到大量推广使用,为我国的房地产事业做出更大的贡献.本人开发的这套系统有助于对一些和房产相关的问题做出快速应答.
3 系统的总体设计
3.1 系统模型
计算机自动回答用户提出的问题,就本质来说,是属于自然语言理解的范畴.而自然语言理解作为人工智能学科的一个分支,在实际应用中还存在一些问题.但是具体到使用环境中,由于用户提出的问题一般都是针对于某一具体的领域问题,因此,提出的问题中大部分具有一定的普遍性,其实质内容是相同的,只是在表达方式上有一定的差异.根据这一特点,针对具体的知识,建立一个自动应答系统,通过计算机对用户提出问题进行分析和匹配,自动寻找问题的答案,这是可以实现的.
本系统就是一个关于房产方面的自动应答系统.其目标是能够自动理解用户提出的问题文本,并给出较为清晰的答案.用户输入文本后,系统利用自然语言处理技术进行分词和提取关键词后,把自然语言转化为计算机能够处理的数据,与知识库中的答案进行匹配,如匹配成功则把答案返回给用户,若不成功则把问题发给专家,专家作答后更新知识库的内容,用户再次查询则能得到答案.
根据系统的工作原理,可以设计出系统的模型.如图1所示.
图1 系统模型
3.2 系统设计框架
该系统服务器采用WINDOWS XP操作系统,SQL SERVER数据库,编程语言为JAVA语言.系统主要由用户界面、问题预处理、答案匹配等模块组成,后台有知识库、词典、用户记录库.
自动应答系统的用户通常有三类:使用自动应答系统请求答疑的用户,他们是系统的服务对象;相关知识的专家负责构建知识库和FAQ库,并提供对知识库和FAQ库的不定期维护,同时负责回答系统无法自动回答的问题;系统管理员负责系统管理、系统加密、系统安全、数据备份等工作,以维持整个系统的正常运行.
根据自动应答系统的设计目标和对用户的分析,设计出自动应答系统的系统总体框架如图2所示:
3.3 系统主要模块的设计
本系统应实现用户身份验证、专家解答、智能解答、知识库管理等功能,各个部分共由五个功能模块来实现:身份验证模块、查询模块、用户提问模块,专家答疑模块、系统管理模块,如下图3所示.
图3 自动应答系统的模块划分
3.3.1 登录模块
本模块包括用户登录模块和用户注册模块.这是为了方便管理用户而限定用户权限的模块.用户的权限角色主要包括管理员,专家和用户.管理员负责系统的维护及知识库的维护,专家在登录以后对用户提出的问题做答,用户则只具有查询信息及提交问题给专家等权限.
3.3.2 查询模块
查询模块包含问题预处理和答案匹配两个主要模块.
首先是问题预处理,由提问模块给普通用户提供一个界面,用户输入问题后,由预处理模块进行预处理,包括分词和提取关键词等功能.预处理模块的作用是对于问题文本进行分词处理,主要是将自然语言的问题即文本的系列子串异步分解成与系统有关的关键词组合.关键词组合与限制语义次数相结合,就形成了搜索答案的条件.
答案匹配模块,用JDBC连接数据库,打开知识库,运用WM多关键字匹配算法搜索知识库.在用户提问界面中,用户同时还可以查询自己已经查找过的问题.
3.3.3 用户提问模块
用户查询模块主要是当在主页面中无法获得查询结果时,如果需要专家答疑那么需要通过输入用户名和密码登录本系统,之后可以提出问题,并把相应的问题提交给专家答疑.
3.3.4 专家答疑模块
专家登录模块:专家用户的名称与密码分别为ADMIN和ADMIN,是由管理员指定的.
专家答疑模块:没有答案的问题会现在在答疑界面上,专家需要输入问题号码进行回答.答案必须含有问题的搜索条件,这是WM算法的思想要求的.专家回答完毕后,自动更新数据库.自动刷新界面.
3.3.5 系统维护及管理模块
系统维护和管理是系统必须提供的一个功能,它为系统的稳定运行提供保障.垃圾问题要进行清理,检测系统有无异常,系统后台数据的维护及管理等等都是该模块要解决的问题.
该模块是答疑系统的重要模块,由管理员进行日常维护,负责新用户的注册,维护用户信息,管理和维护自动应答系统的知识库资源.对于系统管理员来说,主要负责:
注册管理.包括所有用户的注册管理以及户信息的更新工作.
知识库的建立.知识库是实现自动应答系统的一个非常重要的环节,是实现自动应答功能的基础.知识库的最初建立是由相关人员来完成的,随着用户不断地提出新的问题,由管理员进行知识添加、维护或者删除.
知识库资源维护.自动应答系统是根据知识库中的资源为用户提供答疑服务的,管理员应定期对知识库中的知识进行更新、添加或者删除.
4 小结
本文对系统在功能需求、性能需求及业务需求上做了较为详细的分析,为设计一套高质量,易应用的系统打下基础.同时对系统的总体结构做了设计并给出了设计的总体框架,对系统中各模块的功能做了详尽的说明.
〔1〕郭庆琳,樊孝忠.自动应答系统中自然语言理解技术的研究[J].计算机应用研究,2004:24-27.
〔2〕余正涛,樊孝忠,康海燕.基于自然语言理解的受限领域自动应答系统[J].计算机工程,2004:18-37.
〔3〕张恒杨,文昭,屈景辉,卢虹冰,张亮,赵飞.基于词典和词频的中文分词方法[J].软件时空,2008.
〔4〕郑耿忠.自动分词算法在智能答疑系统中的应用研究[J].计算机工程与设计,2007.
〔5〕张晓辉.支持自然语言提问的答疑系统的设计与实现[D].天津:天津大学,硕士学位论文,2006.
〔6〕朱代华.基于分词技术的智能答疑系统[D].四川.重庆大学,硕士学位论文,2004.
TP311
A
1673-260X(2010)01-0031-03