问答系统的设计与实现.docx
- 文档编号:23196146
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:61
- 大小:336.10KB
问答系统的设计与实现.docx
《问答系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《问答系统的设计与实现.docx(61页珍藏版)》请在冰豆网上搜索。
问答系统的设计与实现
引言
问答系统的设计目标是用简治、准确的答案回答用户用自然语言提出的问题。
在人工智能和自然语言处理领域,问答系统都有着较长的历史。
1950年英国数学家图灵(A.M.Turin8)在论文“ComputingMachineryandIntelligence”中形象地指出了什么是人工智能,以及机器应该达到的智能标准。
也就是通过自然语言问答的方式,判断机器是否具有智能。
20世纪70年代随着自然语言理解技术的发展,出现了第一个实现用普通英语与计算机对话的人机接口LUNAR,该系统是伍德(W.Woods)于1972年开发用来协助地质学家查找、比较和评价阿波罗一号飞船带回的月球岩石和土壤标本的化学分析数据的系统。
本文将简要介绍国内外问答系统研究的进展情况。
并且针对问答系统中的一个难点以及实现方法进行了讨论。
并给出如何识别用户搜索关键字的方法。
第一章研究背景
1.1问答系统研究背景
随着因特网的快速发展,网络上流通的信息日益增加,它已俨然成为巨大的讯息流通交换平台,要在如此大量的数据库中找寻有用的数据着实不易,通常会藉助于搜索引擎的功能来达成,然而以关键词为主的搜索引擎常会找出所有相关的信息,但是其中也包含许多无用的数据,用户浪费很多时间浏览不相关的网页。
随着互联网的发展,网络已成为人们获取信息的重要手段。
目前,世界上最大的搜索引擎Google能够搜索的网页数量已经超过了百亿。
传统的搜索引擎存在很多不足的地方,其中主要有三个方面:
一是以关键词的逻辑组合来表达检索需求
二是返回的相关性信息太多
三是以关键词为基础的索引,停留在语言的表层,而没有触及语义,因此检索效果很难进一步提高。
以上两点使得人们在互联网上的海量信息中快速准确地找到自己所需要的信息变得越来越困难。
1.2传统的问答系统的不足
传统的问答系统虽然可以对用户提出的问题给出确定的答案,但是这些问答系统的数据源是基于一个固定的文档集合,尚且不能满足用户的各种各样的需求。
利用互联网上的资源是有效的解决之道
互联网上具有丰富的信息,是问答系统数据源的理想资源,因此将问答系统与互联网结合起来,就变得非常必要。
这也就促使了基于互联网的问答系统的出现和发展的问答系统的出现和发展。
1.3问答系统研究现状
问答系统的概念虽然提出的时间并不长,但已经形成发展出了一些比较成熟的系统。
美国麻省理工学院人工智能实验室于1993年开发出来的START,系统(http:
//www.ai.mit.edu/projects/infolab/start.html)是全世界第一个基于Internet的问答系统。
START系统旨在为用户提供准确的信息,它能够回答数以百万的英语问题,主要包括与地点相关的问题(城市、国家、湖泊、天气、地图、人口统计学、政治和经济等)、与电影相关的问题(片名、演员和导演等)、与人物相关的问题(出生日期、传记等)以及与词典定义相关的问题等。
该系统采用基于知识库和基于信息检索的混杂模式,系统还保留着原来的两个知识库,"STARTKB”和“InternetPublicLibrary"。
如果用户提出的问题属于这两个知识库的范畴,START就直接利用知识库中的知识返回比较准确的回答。
反之,START系统将问题解析得到查询的关键词,通过搜索引擎得到相关信息,通过后续处理得到准确而简洁的回答返回给用户。
比如提出一个问题“WhowasBillGates?
", START系统回答“Cofounder,Microsoft.BornWilliamH.GatesonOctober28,1955,Seattle,Washington."。
同时系统还返回一个关于“BillGates"网页链接,如果用户希望了解更详细的信息时就可以浏览改网页。
美国华盛顿大学开发的MULDER系统(http:
//mulder.cx/)是最早实现的基于Internet的全自动的问答系统。
该系统没有知识库,而完全利用Internet上的资源得到答案。
对于一个问题,MULDER系统返回的不是唯一的答案,而是一组候选回答,并利用统计的方法给每一个回答赋值一个权重,称之为置信度。
比如,对于一个问题“WhowasthefastAmericaninspace?
",MULDER系统的返回的候选答案中,"AlanShepard”具有70%的置信度,"JohnGlenn”具有15%的置信度。
同时在每一个答案下面给出相关的网页链接和该网页内容的摘要。
AskJeeves(WhowasBillGates?
",系统在文本回答的基础上还将显示一张BillGate的照片。
作为一个商用系统,AskJeeves的服务种类很多,不仅仅可以查找Web网页,也可以采用图片、新闻、产品作为数据源,从而得到所需的信息。
AskJeeves系统中的问题分析部分是依赖手工完成的,为了能够正确理解用户的查询AskJeeves雇佣了数百专职人员构造问题模板,并为这些问题模板中常见的问题进行了缓存。
系统的问题模板虽然能够细化和明确用户的需求,但由于需要人工产生和维护的,工作量非常大。
美国密歇根大学开发的AnswerBus((answers。
新加坡开发的LAMP为了更加正确的理解用户的查询意图,列出了person,organization,location,date,time。
money,percent等7种查询类别让用户进行选择,LAMP不是返回网页链接,而是直接返还答案。
LAMP所在网址p.nus.edu.sg/cgi-bin/smadellz/lamp_query.pl
此外,南加州大学利用自然语言处理、文本摘要等技术,开发的Webclopedia系统在各项评测中也取得了很好的效果;美国Language Computer公司的问答系统
(
国内复旦大学开发的原型系统(FDUQA)己经具有了初步的效果,同时哈尔滨工业大学(金山客服)和中国科学院计算技术研究所也在从事该领域的研究。
1.4问答系统的类型区分
问答系统(QuestionAnsweringSystem,QA)是信息检索系统的一种高级形式。
它能用准确、简洁的自然语言回答用户用自然语言提出的问题。
其研究兴起的主要原因是人们对快速、准确地获取信息的需求。
问答系统是目前人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。
1.5问题的类型进行区分
问答系统问答问题的类型进行区分:
询问人(如:
谁发现了北美洲?
)、询问时间(如:
人类哪年登录月球?
)、询问数量(如:
珠穆朗玛峰有多高?
)、询问定义(如:
什么是氨基酸?
)、询问地点和位置(如:
芙蓉江在重庆市哪个县?
)、询问原因(如:
天为什么是蓝的?
)。
问答系统分类如图1.1
图1.1问答系统分类
从系统的设计与实现来看,自动问答系统一般包括三个主要组成部分:
问题分析、信息检索和答案抽取。
目前国际上,问答系统的研究方兴未艾,许多大的科研院所和著名公司,都积极参与到该领域的研究,其中比较著名的如MICROSOFT、IBM、MIT、UniversityofAmsterdam、NationalUniversityofSingapore、UniversityofZurich、UniversityofSouthernCalifornia、ColumbiaUniversity等等,国内在问答系统方面的研究相对国外较为不足,主要有中科院计算所、复旦大学、哈尔滨工业大学、沈阳航空工业学院、香港城市大学、台湾中研院等一些单位。
1.6中文问答系统研究
中文问答系统相对于英文有如下几个方面的难点或不足之处:
连写:
中文是连续书写,分词是汉语言处理的基础。
中文问答系统由于是句子级别的信息检索,要分析句子,首先要分词。
形态:
汉语缺乏狭义的形态变化,如英文中的主动被动语态,完成时进行时等,形态对于计算机就是标记,有利于计算机的处理。
语法:
汉语语法灵活,句子各成分之间的关系靠词序、“意合”、虚词,变化较多。
语义:
一词多义、同音词、同义词、近义词等,以及丰富的表达方式,上下文依赖度高,省略语等都是计算机处理的难点。
语法研究:
面向计算机处理的中文语法研究不足,如中文问答系统需要的关于中文句型形式化、不同句型之间的转换的研究资料极少。
相关资源:
缺乏包括语法、语义词典等中文语言学资源和相关生熟语料,国外这方面强得多,如TREC就提供的相当数量的可用于英文问答研究和评测的语料。
中文问答系统需要在现有的中文信息处理技术基础上,充分研究和利用问答的特性与需求,通过各种方法解决和克服(或暂时回避)以上难点和困难,设计和开发问答系统。
1.7相关评测
自1999年文本检索会议(TextRetrievalConference,简称TREC)引入问答系统评测专项(QuestionAnsweringTrack,简称QATrack)后,人们对基于自然语言的问答系统再次产生了浓厚的兴趣,在近些年的TREC比赛中,QATrack是最受关注的评测项目之一。
日语问答评测平台QuestionAnsweringChallenge(QAC)是从2002年开始的,每两年举办一届。
自NTCIR-5开始,其CLQA专项中加入中文评测语料,但目前尚未见有简体中文。
由ISTProgrammeoftheEuropeanUnion资助的CrossLanguageEvaluationForum(CLEF)在2003年设立第一届多语言问答系统评测(MultilingualQuestionAnswering)项目,并计划每年举办一次。
第二章系统分析
2.1市场调查
在正式立项之前必须进行可行性分析,而可行性分析的基础是对系统的市场调查。
市场调查主要由两部分组成:
一般调查和信息需求初步调查。
一般调查包括找出相近的站点,对这些站点的网址宣传方法、主页设计、文字叙述等情况进行了分析,并了解整个人才交流的运作情况,充分发挥本网站的优势。
信息需求初步调查是通过发E-mail和讨论组的方式对部分人才和企业进行调查了解。
本系统界面简洁、友好,操作简便易用,在设计时充分考虑人才网站的特点,力求简洁,避免花哨的内容,以冲淡主题,做到个人用户与企业用户兼顾,使系统简洁实用、易操作。
2.2问答系统的问题分析
问题分析即通过对问题的语法、语义结构等进行解析,获取该问题的关键词,提取问题的焦点、确定问题类型和答案类型等等。
问题分析部分主要完成以下几部分工作:
确定问题的类型、提取出问题的关键词、依据问题的类型等因素对关键词进行适当的扩展。
从自然语言处理的视角来看,还要对问题进行分词以及词性标注等分析过程,有些问答系统还对问题进行句法分析和语义分析。
2.3问题分类
在TREC2003和2004中,QA主任务把问题分成3类进行分别处理。
这3类问题是陈述类问题(FactoN)、列表类问题(Nst)和定义类问题(defin小ons)c1551。
唐素勤在教学自动问答系统中把问题分为求知性提问与求证性提问两类u“3。
求知性提问即用户从系统中获取未知知识,如“什么是知识抽取?
”;求证性提问指用户提问前已具备了某些相关的知识,通过问答对自身已有的模糊知识或不完整知识进行验证、澄清或补充,如“情报学专业的本科阶段名称是信息管理与信息系统吗?
”。
问题从形式上分为疑问、设问、反问或特指问、是非问;从目的上分为查找信息、验证事实、收集资料;从性质上分为开放型、封闭型“V’;按照复杂程度分为是非问题、选择问题、特指性问题、语境性问题、推理性问题、概括性问题、专家性问题。
如表2.1所示。
表2.1问题分类
是非问题
选择问题
特指性问题
语境性问题
推理性问题
概括性问题
专家性问题
是非问题(封闭型):
数据挖掘与知识发现是一“回事吗?
选择问题(封闭型):
数据挖掘与文本挖掘。
哪个概念的范畴更大?
特指问题:
在情报学博士生导师队伍中。
哪一位的博土学位取得最早(谁是拥有博士学位最早的情报学博导)?
统计型问题:
情报学博士点有哪几家?
过程型问题:
数据库知识发现需要哪些步骤?
关系型问题:
知识管理与知识工程有何区别,有何联系?
原因型问题:
现在,为什么没有本科阶段的情报学?
推理性问题:
数据挖掘是从数据中挖掘,发现的结果是知识;那么信息分析是对信息进行分析,研究出的结果就是情报吗?
(根据数据挖掘与知识发现的关系推论信息分析与情报研究的关系)
概括性问题:
数据挖掘是从数据中挖掘.文本挖掘就是从文本中挖掘,那么XX挖掘就是从XX中挖掘吗?
专家性问题:
数据挖掘与知识发现有何区别?
在研究所读研究生与在高校读研究生有何不同?
上述关于问题的分类并不是很好,例如。
专家性问题指只有专家才能回答的问题,问题的专业性非常强,也可能是概括性的,也可能涉及推理。
问答系统中少有反义疑问句。
针对于不同类型的问题制定相应的答案抽取规则,以便在答案抽取阶段应用这些规则来抽取问题的答案。
大部分的自动问答系统部是按照事先规定好的类别进行分类。
但是这种分类还是存在很多不足的地方,人为因素太多,而且分类太粗,并不能完全符合实际的要求。
所以也有一部分研究人员提出对问题自动分类的思想。
首先收集大量的问题作为训练语料,然后通过程序统计出经常出现的疑问短语。
例如通过统计发现询问原因的线索词有“区别是什么?
”、“有什么区别”、“有何差异’性?
”。
2.4问题相似性判定
除了对问题类型进行分析以外,有的问答系统还使用问题库进行间题的相似性判定。
系统包括一个常问问题(FAQ)库,把用户经常提问的问题及其答案存储起来。
有了问题库。
光拿用户的提问到FAQ库中进行搜索,查找有没有相同的问题。
如果有,就可以直接把FAQ库中这个问题的答案返回;如果没有,查找是否有相似的问题。
这样,对于用户常问的问题,问答系统就可以很快给出答案,不需要经过复杂的处理,而且还能保证答案的正确性。
所以有了FAQ库之后,既能提高问答系统的效率。
又能提高准确性。
《十万个为什么》、新浪的爱问、XX的知道、网易的知识人、网上咨询以及专家问答系统等资源都是很好的FAQ库。
问题形似型判定主要体现在主题相似、结构相似、格相似以及文法相似。
结构相似属于语法方面的范畴,格相似属于语义方面的范畴,间法相似属于语用方面的范畴。
问题相似性判定的原则为:
格相似强于结构相似,结构相似强于主题相似。
格相似与结构相似就能确定问题相似了,几乎不需要考虑主题。
主题的考虑主要用在目标文献检索的确定上。
如“知识管理与知识工程有何区别?
”与“工程管理与工商管理有什么区别?
”,这两个问题的主题完全不同,属于两个不同的领域;而结构非常相似,“X与Y有何区别?
”;语义格也非常相似(可以说是相同),即求di财erence<x,y>,在前一个问题中,x,y分别为数据挖掘与知识发现,后一个问题中x,y分别为工程管理与工商管理。
问法相似指的是同一个问题使用不同的问法,目前还很难从技术上解决语用的问题。
基于常见问题集的问答系统类似于基于实例的机器翻译系统。
基于实例的机器翻译系统是查找最相似的翻译例句,然后对句中不同的部分根据词表换成相应的词即可。
而基于常见问题集的问答系统则是查找最相似的间句,却不能把不同的词简单替换,如果强制性替换,首先要有题对库。
基于实例的机器翻译直接使用双语词典,而问答系统却很难有题对库,至少要使用三元组概念或者语义概念关系的语义词典,或者本体。
例如首都<中国,北京>,首都<英国,伦敦>。
因此,从这点上来讲,基于常见问题集的问答系统在回答新问题时,比基于实例的机器翻译在翻译新句时要困难。
关键词提取
在用户提问的问题中,需要提取对后续检索系统有用的关键词。
关键词主要由名词、动词、形容词、限定性副词等实词组成。
疑问词和一些常用的“吧、了、的”等词就应该被过滤掉。
有一些问答系统还可以把关键词分为两种:
一般关键词和核心关键词。
核心关键词也称“必须含有关键词”。
核心关键词指这些关键词必须在答案句子中含有,而一般性关键词可以不被答案句子包含。
核心关键词由专有名词、限定性副词(如最大、最高、最快等)、时间组成。
之所以要制定“必须含有”的关键词原则是因为它们对问题有极强的限定性作用,如果不含有它们的句子几乎不可能是正确的答案。
例如:
问题是“情报学的第一个博士点在哪个学校?
”而检索的结果应该是“武汉大学”或者“武汉大学于1990开始招收情报学博士”,而不是“北京大学于1998年开始招收情报学博士”,因为这显然不是用户想得到的结果,之所以出现这种情况的原因就在于非常重要的关键词“第一个”没有包含在答案句子中。
如果加上“必须含有”的关键词这个限制,那么这个答案就不会被检索出来,因此通过这些关键词的作用可以极大地提高检索的准确性。
关键词被赋予不同的权重,在检索句子时这些权重用来计算句子的权重。
通常名词、限定性副词会有比较高的权重。
2.5关键词扩展
为了提高检索系统的召回率,一般的问答系统都对关键词进行扩展。
由于在问题空间和文档空间之间存在着天然的语义鸿沟,使用基于问题分析直接提取的关键词进行查询,常常不能获得满意的效果。
因为在答案段落中某些词常常不是原来问题的关键词而是这些关键词的扩展。
例如:
问题是“搜索引擎中anchor文件指的是什么?
”,答案的句子是“把锚库文本变成顺排索引,存到文档索引库里,并用锚库所指向的doclD进行关联”在问题中使用的是“anchor”,而在答案中却采用了“锚库”这个词汇。
这就造成关键词查询失败,因此需要对关键词做适当的扩展常用的关键词扩展方式有:
名词同义词扩展和语义蕴涵扩展、动词同义词扩展(意义用法相同的词)、根据问题类型扩展。
部分工作在有些系统中由一个叫做“检索提问生成器”的组件完成,它采用不同的方法生成扩展后的检索式。
如把词的形态变化和导出词作为检索词。
问答系统中通常可以采用《同义词词林》、WordNet、HowNet等同义词词典进行查询关键词的扩展。
还有一些问答系统通过统计的办法来扩展关键词。
这种方法需要大量的问题和答案语料来进行训练。
每一类的问题所对应的答案一般都有某种共同的特性口。
例如,对于询问地点的问题,答案中经常会出现“在、位于、坐落在、地处”等关键词。
所以通过统计,找出这些词后,就可以把它们添加到查询式中。
关键词扩展虽然提高了系统的召回率,但如果扩展不适当会极大地降低检索的正确率,因此一般的问答系统对关键词的扩展都是很谨慎的。
这些系统往往都对关键词的扩展添加很多限制条件,例如只对名词的关键词进行扩展。
另外还有一些问答系统是用检索返回来的相关文档对关键词进行扩展。
扩展后的关键词的重要性往往比从问题中提取的关键词的重要性低,为了提高系统的准确性,很多问答系统又对关键词赋予权重,以此来区分他们之间的重要性。
关键词扩展属于问题分析模块,因为关键词扩展旨在解决问题涉及哪些词;而检索式的构造属于文档检索模块,因为检索式构造旨在解决这些关键词和目标文献之间可能的相关关系。
第三章数据库设计
3.1数据库的需求分析
根据系统需求,可以列出以下数据项和数据结构:
用户表:
包括用户名、密码、真实姓名、用户积分、性别、电话、生日、密码保护问题及答案;
问题表:
包括问题编号、提问者、问题题干、提问时间、分类名称、子类名称、图片、最佳答案编号;
答案表:
包括答案编号、答案内容、问题编号、回答者、回答时间、提问者评论、好评次数;
管理员表:
用户名、密码、密码保护问题及答案;
问题父类表:
包括问题分类;
问题子类表:
分类名称、子类名称;
3.2数据库表结构设计
数据库表结构设计如以下各表表示
表3.1用户表(aa_user)
字段名
数据类型
是否为空
默认值
备注
字段说明
username
varchar(20)
N
主键
用户名
password
varchar(200)
N
密码
name
varchat(20)
N
真实姓名
integral
int
Y
用户积分
sex
varchar(4)
N
性别
phone
varchar(11)
Y
电话
date
date
Y
生日
question1
varchar(100)
Y
密保问题1
question2
varchar(100)
Y
密保问题2
question3
varchar(100)
Y
密保问题3
answer1
varchar(100)
Y
答案1
answer2
varchar(100)
Y
答案2
answer3
varchar(100)
Y
答案3
注:
用户表保存用户相关信息,如用户名、密码、电话号码等信息。
这些都属于用户隐私,需要采用一定的安全措施对用户信息进行管理。
表3.2问题表(aa_question)
字段名
数据类型
是否为空
默认值
备注
字段说明
Q_ID
long
N
自动增长
主键
问题编号
username
varchar(20)
N
外键
提问者姓名
problem
varchar(500)
N
问题
time
date
N
提问时间
type
varchar(20)
N
分类名称
sub_type
varchar(20)
N
子类名称
picture
varchar(100)
Y
图片
A_ID
long
Y
NULL
外键
最佳答案
表3.3答案表(aa_answer)
字段名
数据类型
是否为空
默认值
备注
字段说明
A_ID
long
N
自动增长
主键
答案编号
Q_ID
long
N
外键
问题编号
content
text
N
答案内容
username
varchar(20)
N
外键
回答者
time
date
N
回答时间
comment
varchar(100)
Y
提问者评论
good
int
Y
0
好评次数
表3.4管理员表(aa_manager)
字段名
数据类型
是否为空
默认值
备注
字段说明
username
varchar(20)
N
主键
用户名
password
varchar(200)
N
密码
type
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 问答 系统 设计 实现