问答系统毕业设计论文.doc
《问答系统毕业设计论文.doc》由会员分享,可在线阅读,更多相关《问答系统毕业设计论文.doc(51页珍藏版)》请在咨信网上搜索。
问答系统 1 目录 引 言 1 第一章 研究背景 2 1.1问答系统研究背景 2 1.2传统的问答系统的不足 2 1.3问答系统研究现状 2 1.4问答系统的类型区分 4 1.5问题的类型进行区分 4 1.6中文问答系统研究 5 1.7相关评测 5 第二章 系统分析 6 2.1市场调查 6 2.2问答系统的问题分析 6 2.3问题分类 6 2.4问题相似性判定 7 2.5关键词扩展 8 第三章 数据库设计 10 3.1数据库的需求分析 10 3.2数据库表结构设计 10 3.3E-R模型 12 第四章 系统详细设计与实现 15 4.1系统工作原理介绍 15 4.2系统数据流图 16 4.3系统的实现算法 16 4.4注册模块的设计与实现 19 4.5注册模块的设计与实现 32 4.6 系统首页的设计与实现 34 4.7用户提问模块的设计与实现 38 4.8问题显示模块的设计与实现 41 4.9问题回答模块的登录与实现 44 4.10后台管理模块的设计与实现 45 第五章 系统测试 47 第六章 总结 48 致谢 49 参考文献 50 引 言 问答系统的设计目标是用简治、准确的答案回答用户用自然语言提出的问题。在人工智能和自然语言处理领域,问答系统都有着较长的历史。1950年英国数学家图灵(A.M.Turin8)在论文“Computing Machinery and Intelligence”中形象地指出了什么是人工智能,以及机器应该达到的智能标准。也就是通过自然语言问答的方式,判断机器是否具有智能。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系统旨在为用户提供准确的信息,它能够回答数以百万的英语问题,主要包括与地点相关的问题(城市、国家、湖泊、天气、地图、人口统计学、政治和经济等)、与电影相关的问题(片名、演员和导演等)、与人物相关的问题(出生日期、传记等)以及与词典定义相关的问题等。该系统采用基于知识库和基于信息检索的混杂模式,系统还保留着原来的两个知识库,"START KB”和“Internet Public Library"。如果用户提出的问题属于这两个知识库的范畴,START就直接利用知识库中的知识返回比较准确的回答。反之,START系统将问题解析得到查询的关键词,通过搜索引擎得到相关信息,通过后续处理得到准确而简洁的回答返回给用户。比如提出一个问题“Who was Bill Gates? ", START系统回答“Cofounder,Microsoft. Born William H. Gates on October 28, 1955,Seattle,Washington. "。同时系统还返回一个关于“Bill Gates"网页链接,如果用户希望了解更详细的信息时就可以浏览改网页。 美国华盛顿大学开发的MULDER系统(http://mulder.cx/)是最早实现的基于Internet的全自动的问答系统。该系统没有知识库,而完全利用Internet上的资源得到答案。对于一个问题,MULDER系统返回的不是唯一的答案,而是一组候选回答,并利用统计的方法给每一个回答赋值一个权重,称之为置信度。比如,对于一个问题“Who was the fast American in space?" ,MULDER系统的返回的候选答案中,"Alan Shepard”具有70%的置信度,"John Glenn”具有15%的置信度。同时在每一个答案下面给出相关的网页链接和该网页内容的摘要。 AskJeeves ( Who was Bill Gates?",系统在文本回答的基础上还将显示一张Bill Gate的照片。作为一个商用系统,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问答系统的类型区分 问答系统(Question Answering System, QA)是信息检索系统的一种高级形式。它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是目前人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。 1.5问题的类型进行区分 问答系统问答问题的类型进行区分:询问人(如:谁发现了北美洲?)、询问时间(如:人类哪年登录月球?)、询问数量(如:珠穆朗玛峰有多高?)、询问定义(如:什么是氨基酸?)、询问地点和位置(如:芙蓉江在重庆市哪个县?)、询问原因(如:天为什么是蓝的?)。问答系统分类如图1.1 问答系统 限定域 问答系统 开发域 问答系统 基于常用提问集 问答系统 机构数据库 问答系统 自由文本 问答系统 网络 问答系统 固定资料库 问答系统 单文本 问答系统 图1.1 问答系统分类 从系统的设计与实现来看,自动问答系统一般包括三个主要组成部分:问题分析、信息检索和答案抽取。 目前国际上,问答系统的研究方兴未艾,许多大的科研院所和著名公司,都积极参与到该领域的研究,其中比较著名的如MICROSOFT、IBM、MIT、University of Amsterdam、National University of Singapore、University of Zurich、University of Southern California、Columbia University等等,国内在问答系统方面的研究相对国外较为不足,主要有中科院计算所、复旦大学、哈尔滨工业大学、沈阳航空工业学院、香港城市大学、台湾中研院等一些单位。 1.6中文问答系统研究 中文问答系统相对于英文有如下几个方面的难点或不足之处: 连写:中文是连续书写,分词是汉语言处理的基础。中文问答系统由于是句子级别的信息检索,要分析句子,首先要分词。 形态:汉语缺乏狭义的形态变化,如英文中的主动被动语态,完成时进行时等,形态对于计算机就是标记,有利于计算机的处理。 语法:汉语语法灵活,句子各成分之间的关系靠词序、“意合”、虚词,变化较多。 语义:一词多义、同音词、同义词、近义词等,以及丰富的表达方式,上下文依赖度高,省略语等都是计算机处理的难点。 语法研究:面向计算机处理的中文语法研究不足,如中文问答系统需要的关于中文句型形式化、不同句型之间的转换的研究资料极少。 相关资源:缺乏包括语法、语义词典等中文语言学资源和相关生熟语料,国外这方面强得多,如TREC就提供的相当数量的可用于英文问答研究和评测的语料。 中文问答系统需要在现有的中文信息处理技术基础上,充分研究和利用问答的特性与需求,通过各种方法解决和克服(或暂时回避)以上难点和困难,设计和开发问答系统。 1.7相关评测 自1999 年文本检索会议( Text Retrieval Conference ,简称TREC) 引入问答系统评测专项(Question Answering Track ,简称QA Track) 后,人们对基于自然语言的问答系统再次产生了浓厚的兴趣,在近些年的TREC 比赛中,QA Track 是最受关注的评测项目之一。 日语问答评测平台Question Answering Challenge (QAC) 是从2002 年开始的,每两年举办一届。自NTCIR-5开始,其CLQA专项中加入中文评测语料,但目前尚未见有简体中文。 由IST Programme of the European Union 资助的Cross Language Evaluation Forum (CLEF) 在2003 年设立第一届多语言问答系统评测(Multilingual Question Answering) 项目,并计划每年举办一次。第二章 系统分析 2.1市场调查 在正式立项之前必须进行可行性分析,而可行性分析的基础是对系统的市场调查。市场调查主要由两部分组成:一般调查和信息需求初步调查。一般调查包括找出相近的站点,对这些站点的网址宣传方法、主页设计、文字叙述等情况进行了分析,并了解整个人才交流的运作情况,充分发挥本网站的优势。信息需求初步调查是通过发E-mail和讨论组的方式对部分人才和企业进行调查了解。 本系统界面简洁、友好,操作简便易用,在设计时充分考虑人才网站的特点,力求简洁,避免花哨的内容,以冲淡主题,做到个人用户与企业用户兼顾,使系统简洁实用、易操作。 2.2问答系统的问题分析 问题分析即通过对问题的语法、语义结构等进行解析,获取该问题的关键词,提取问题的焦点、确定问题类型和答案类型等等。问题分析部分主要完成以下几部分工作:确定问题的类型、提取出问题的关键词、依据问题的类型等因素对关键词进行适当的扩展。从自然语言处理的视角来看,还要对问题进行分词以及词性标注等分析过程,有些问答系统还对问题进行句法分析和语义分析。 2.3问题分类 在TREC 2003和2004中,QA主任务把问题分成3类进行分别处理。这3类问题是陈述类问题(FactoN)、列表类问题(Nst)和定义类问题(defin小ons)c1551。唐素勤在教学自动问答系统中把问题分为求知性提问与求证性提问两类u“3。求知性提问即用户从系统中获取未知知识,如“什么是知识抽取?”;求证性提问指用户提问前已具备了某些相关的知识,通过问答对自身已有的模糊知识或不完整知识进行验证、澄清或补充,如“情报学专业的本科阶段名称是信息管理与信息系统吗?”。 问题从形式上分为疑问、设问、反问或特指问、是非问;从目的上分为查找信息、验证事实、收集资料;从性质上分为开放型、封闭型“V’;按照复杂程度分为是非问题、选择问题、特指性问题、语境性问题、推理性问题、概括性问题、专家性问题。如表2.1所示。 表2.1 问题分类 是非问题 选择问题 特指性问题 语境性问题 推理性问题 概括性问题 专家性问题 是非问题(封闭型):数据挖掘与知识发现是一“回事吗? 选择问题(封闭型):数据挖掘与文本挖掘。哪个概念的范畴更大? 特指问题:在情报学博士生导师队伍中。哪一位的博土学位取得最早(谁是拥有博士学位最早的情报学博导)? 统计型问题:情报学博士点有哪几家? 过程型问题:数据库知识发现需要哪些步骤? 关系型问题:知识管理与知识工程有何区别,有何联系? 原因型问题:现在,为什么没有本科阶段的情报学? 推理性问题:数据挖掘是从数据中挖掘,发现的结果是知识;那么信息分析是对信息进行分析,研究出的结果就是情报吗?(根据数据挖掘与知识发现的关系推论信息分析与情报研究的关系) 概括性问题:数据挖掘是从数据中挖掘.文本挖掘就是从文本中挖掘,那么XX挖掘就是从XX中挖掘吗? 专家性问题:数据挖掘与知识发现有何区别?在研究所读研究生与在高校读研究生有何不同? 上述关于问题的分类并不是很好,例如。专家性问题指只有专家才能回答的问题,问题的专业性非常强,也可能是概括性的,也可能涉及推理。问答系统中少有反义疑问句。 针对于不同类型的问题制定相应的答案抽取规则,以便在答案抽取阶段应用这些规则来抽取问题的答案。大部分的自动问答系统部是按照事先规定好的类别进行分类。但是这种分类还是存在很多不足的地方,人为因素太多,而且分类太粗,并不能完全符合实际的要求。所以也有一部分研究人员提出对问题自动分类的思想。首先收集大量的问题作为训练语料,然后通过程序统计出经常出现的疑问短语。例如通过统计发现询问原因的线索词有“区别是什么?”、“有什么区别”、“有何差异’性?”。 2.4问题相似性判定 除了对问题类型进行分析以外,有的问答系统还使用问题库进行间题的相似性判定。系统包括一个常问问题(FAQ)库,把用户经常提问的问题及其答案存储起来。有了问题库。光拿用户的提问到FAQ库中进行搜索,查找有没有相同的问题。如果有,就可以直接把FAQ库中这个问题的答案返回;如果没有,查找是否有相似的问题。这样,对于用户常问的问题,问答系统就可以很快给出答案,不需要经过复杂的处理,而且还能保证答案的正确性。所以有了FAQ库之后,既能提高问答系统的效率。又能提高准确性。《十万个为什么》、新浪的爱问、百度的知道、网易的知识人、网上咨询以及专家问答系统等资源都是很好的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 varchar(20) N 用户类型 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.5 问题分类(aa_question_type) 字段名 数据类型 是否为空 默认值 备注 字段说明 type varchar(20) N Y 分类名称 表3.6 问题分类2(aa_question_subType) 字段名 数据类型 是否为空 默认值 备注 字段说明 sub_type varchar(20) N 主键 子类名称 type varchar(20) N 外键 分类名称 3.3E-R模型 为了把用户的数据要求清晰明确地表达出来,通常要建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建模。它描述了从用户角度看到的数据,它反映了用户的现实环境,且与在软件系统中的实现方法无关。 最常用的表示概念性数据模型的方法,是实体—联系方法(Entity—Relationship Approach)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型中包含“实体”,“联系”和“属性”。在本系统中,问题父类与问题子类的关系是一对多的关系(1:N),问题与答案是一对多的关系(1:N),问题、答案与用户之间的关系是(1:N)如图3.1,问题父类与问题子类间的关系3.2所示。在本系统数据表中用到的主键有: 管理员表中的username字段(管理员名); 问题表中的Q_ID字段(问题编号); 答案表中的A_ID字段(答案编号); 用户表中的username字段(用户名); 问题父类表中的type字段(父类名称); 问题子类表中的sub_type字段(子类名称); 问题父类 问题子类 属于 父类名称 子类名称 1 N 图3.2问题父类与问题子类间的关系 问题表 问题内容 提问时间 问题父类 问题图片 问题子类 问题编号 最佳答案 答案表 答案编号 答案内容 回答时间 回答者 好评次数 提问者评论 用户表 密码保护答案 性别 积分 真实姓名 密码 用户名 生日 密码保护问题 属于 属于 N N 1 1 图3.1 问题答案与用户间的关系 参照完整性是保证在主键(被参照表中)和外键之间的关系总是得到维护。对两个相关联的表(主表和从表)进行操作数据的插入和删除的时候,通过参照完整性保证它们之间的数据的一致性。 用户自定义完整性,不同的数据库系统根据起数据应用环境的不同,往往还需要一些特殊的约束条件。它反应某一具体应用所涉及的数据必须满足的语义要求。对于用户自定义完整性可以通过数据库设计,也可以通过程序代码来实现。由于程序设计的灵活性和便捷性,在整个系统的调试过程中对于不完善的地方只需对代码进行修改而不用更改数据库,因此在系统中采用了程序代码来实现数据库用户自定义完整性的约束。 第四章 系统详细设计与实现 4.1系统工作原理介绍 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点求职招聘求职的内容。系统工作原理图如图4.1所示: 图 4.1 系统工作原理图 系统的工作流程包括以下一些关键环节: (1)用户注册。在每一个用户使用该系统之前需要注册,系统会将用户输入的信息记录到用户模型中。 (2)用户登陆。用户输入用户名和密码后,系统验证是否正确并决定用户是否能进入进行求职招聘。 (3)问题搜索。用户在搜索框中输入要搜索的关键字进行搜索,当用户输入多关键字的时候要用“空格”隔开。系统将根据用户的输入对关键字进行拆分和对相关内容搜索。 (4)问题发表。用户单击我要提问,在弹出的网站中输入问题,进行发表问题,问了进一步将问题阐释清楚积分达到100(含)分以上的用户在发表问题的时候可以附加一张不超过50Kb的JPG格式图片。提问一次将花费积分5 (5)问题回答。用户单击我要回答,在弹出的网站可以选择自己想要回答的问题,回答问题一次将增加积分5,如果回答的问题被提问者采纳为最佳问题将获得5分的奖励。 (6)用户信息管理。其中包括对用户信息的查询和修改,系统会根据修改后的用户信息重新自动合成网页内容。 (7)后台管理。管理员通过后台可以对用户、问题及答案进行管理。可以将不合法的信息和恶意用户进行删除 。 4.2系统数据流图 数据流图(Data Flow Diagram,简称DFD)能精确地在逻辑上描绘系统的功能、输入、输出和数据存储等,摆脱了物理内容,是描绘系统逻辑模型的最主要的工具。 经过系统详细调查分析以及用户需求分析,我们得到了新系统的数据流图。 如图4.2用户登录数据流图: 图4.2登录数据流图 4.3系统的实现算法 用户信息初始化算法 通过前面几章的分析,我们已经知道用户信息是求职招聘导航的基础。由用户模型可以了解,个人信息是用户登陆个性化网上人才招聘系统的入口;求职招聘记录则是根据用户的求职招聘进度动态更新提供内容、求职招聘状态提示的必要条件。所以设计好用户信息输入算法对后面的智能导航有着重要作用。用户信息是在第一次使用系统注册时输入的。 该算法中牵涉的数据有:用户数据库中的用户信息管理表、职位信息表。算法主要功能是通过接收用户输入或选择的信息初始化用户模块中有关信息,以下便是该算法所涉及的数据结构和详细过程。 输入:1)用户输入的信息,如姓名,密码等。 2)用户选择的信息,如用户求职招聘状态等。 输出:用户模块信息初始化。 算法的主要步骤如下: (1)初始化,包括打开数据库aa_user、建立相关控件与数据库的连接等; (2)将用户信息管理表、用户状态表各添加一条记录; (3)读取各文本控件或列表控件中用户输入或选择的信息到各表中对应的字段中; (4)结束。 检索算法 用户打开网页后在文本框中输入关键字进行搜索,系统将根据用户输入的关键字进行搜索,并返回和关键字相关的信息,若用户输入的是多关键字系统将对用户输入的关键字进行拆分,然后搜索所有含有相关信息的记录返回给用户界面: (1) 用户关键字,并进行提交; (2) 从提交表单中提取数据,并进行相应判断; (3) 连接数据库,建立记录集,用查询语句对表中数据进行查询; (4) 将结果进行加工显示给用户; (5) 结束; 算法流程图如图4.3所示: 开始 开始 初始化系统 输入关键字并提交 判断用户输入,若为多关键字则进行拆分 根据关键字查询数据库 返回查询结果并进行加工 将加工后的结果显示到用户界面 图4.3 搜索算法流程图 4.4注册模块的设计与实现 在本系统中,将会有一些公用页面,即每个文件或部分文件都会用到的文件,在使用这些文件时,只需要一个包含语句‘<?php include “filename”;?>即可,这样大大减少了代码的冗余,同时也使编码简单,减少了许多工作量。主要的公用文件包括:conn.php文件、logout.php文件、is_login.php等。 (1)conn.php 文件 对于程序中建立数据库连接和关闭数据库连接的操作,最好放在一个包含文件中,这样便于维护和修改。前面一部分为建立数据库连接的语句,其中mysql_connect为建立数据库连接的对象,mysql_select_db为数据库连接字符串,它表明了数据库连接的物理路径以及采用的数据库类型,这里采用的是MySQL数据库。 <?php $host="localhost"; $user="root"; $password="123456"; $db="aa"; //连接服务器 mysql_connect($host,$user,$password) or die("SORRY! 链接服务器失败!"); //链接数据库 mysql_select_db($db) or die ("SORRY! 打开数据库失败!"); mysql_query("SET NAMES 'gb2312'"); ?> (2)is_login.php 文件 is_login.php是用户权限验证文件,方便调用和维护减少代码冗余。 (3)logout.php 文件 logout.php文件是用户退出文件,改文件用于关闭和删除用户SESSION。 其他一些公用文件的代码这里将不一一列举。 系统公用页面 用户注册页面 用户注册界面如图4.4所示。用户必须填写以下内容,这便于对用户的管理以及用户的安全性。用户注册页面的信息是用户进入系统的有利凭证。该页面涉及的主要PHP文件为register.php文件。 图4.4注册页面 <?php include "admin/conn.php"; require "admin/injection.php"; ?> <html> <head> <!-- author:STONE(QQ:822854153) blog: time:2010.09.09 version 1.0 --> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>用户注册</title> <script language=javascript> var DS_x,DS_y; function da- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 问答 系统 毕业设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文