毕业设计论文_苏越嘉.doc

网络课程答疑系统

收藏

资源目录
跳过导航链接。
网络课程答疑系统.zip
网络课程答疑系统
苏越嘉
毕业设计论文_苏越嘉.doc---(点击预览)
毕业设计.ppt---(点击预览)
QA_system
QA_system
压缩包内文档预览:(预览前20页/共67页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:32523895    类型:共享资源    大小:1.75MB    格式:ZIP    上传时间:2019-12-13 上传人:遗**** IP属地:湖北
30
积分
关 键 词:
网络 课程 答疑 系统
资源描述:
网络课程答疑系统,网络,课程,答疑,系统
内容简介:
计算机学院2008届毕业答辩 班级 计0441学号 049184445Email minsusu 课题 基于Web的计算机网络课程自动答疑系统 指导教师 郑啸答辩人 苏越嘉 各位老师好 我的毕业设计的题目 基于Web的网络课程答疑系统 基于WEB的自动答疑系统的优势 随着Internet的广泛使用 网络教学系统被越来越多的应用在教学过程中 自动答疑系统是网上教育系统的一个重要组成部分 学生可以通过这个系统向老师寻求帮助 获得问题的解答 基于web的自动答疑系统具有以下优势 一 改善教学的效果二 提高学生学习效率三 丰富教学经验四 改善教学的环境 基于WEB的自动答疑系统的优势 本次设计所应用的技术和工具 技术 一 CoreJava Java语言的基本特点是简单 面向对象 分布式 解释的 健壮的 完全的 结构中立的 可移植的 性能很优异的 多线程的 动态的 适合的Internet环境上开发应用系统 Java是纯面向对象编程 面向对象的三大原则封装 继承 多态 二 持久层的HIBERNATE HIBERNATE是一个开放源代码的对象关系映射框架 它对JDBC进行了轻量级的对象封装 使Java程序员可以随心所欲的使用对象编程思维来操纵数据库 三 业务层的JAVABEAN JavaBean是一种JAVA语言写成的可重用组件 用户可以使用JavaBean将功能 处理 值 数据库访问和其他任何对象进行打包 并且可以通过内部的JSP页面 Servlet 其他JavaBean 应用来使用这些对象 本次设计所应用的技术和工具 四 表现层的Servlet和JSP Servlet是运行在WEB服务器或应用服务器上的Java程序 它是一个中间层 负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序 我们可以把JSP看作在静态页面上写Java代码 但其实JSP在服务器第一次运行的时候被服务器翻译为Servlet 正真运行的是翻译后的Servlet JSP中的El和JSTLEL全名为ExpressionLanguage 它原本是JSTL1 0为方便存取数据所自定义的语言 当时EL只能在JSTL标签中使用 到了JSP2 0之后 EL已经正式纳入成为标准规范之一 可以在JSP网页中直接使用EL了 JSTL全名为JavaServerPagesStandardTagLibrary 它主要提供给JavaWeb开发人员一个标准通用的标签函数库 五 WEB架构MVC模式和STRUTS模型 Model 视图 View 控制器 Controller 三层1 MVC模式的优点 1 一个用户模型以及对应多个视图 减少了代码的复制 即减少了代码的维护量 一旦模型发生改变 也易于维护 2 由于模型返回的数据不带任何显示格式 因而这些模型也可直接应用于接口的使用 3 由于一个应用被分离为三层 因此有时改变其中的一层就能满足应用的改变 4 它还有利于软件工程化管理 Struts是使用MVC的实现模式二来实现的 也就是以控制器为核心 Struts提供了一些组件使用MVC开发应用程序 本次设计所应用的技术和工具 工具 1 TOMCAT的介绍Tomcat在严格意义上并不是一个真正的应用服务器 它只是一个可以支持运行Serlvet JSP的Web容器 不过Tomcat也扩展了一些应用服务器的功能 如JNDI 数据库连接池 用户事务处理等等 目前Tomcat被非常广泛的应用在中小规模的JavaWeb应用中 2 MYSQL的介绍MySQL是最受欢迎的开源SQL数据库管理系统 它由MySQLAB开发 发布和支持 3 MyEclipseMyEclipse是Eclipse的插件 也是一款功能强大的J2EE集成开发环境 支持代码编写 配置 测试以及除错 本次设计所应用的技术和工具 系统的整体设计 一 系统的需求分析1 学生用户的需求分析学生登录后可以选择查看个人资料或者进入答疑系统 进入答疑系统后可以提出问题 问题提交给服务器端 并在服务器端进行检索 若检索成功 则返回答案给客户端浏览器 若没检索成功 学生还能将问题设置为未解题目等待教师的解答 若教师解答了此题目 当学生下次查看自己问题时即可看到老师回答的答案 2 教师用户的需求分析教师登录后可以选择查看个人资料或者进入答疑系统 进入答疑系统后可以查看未解题目 对未解问题的解答 教师还可以进行题库的管理操作 给题库添加删除修改章节 章节关键字 章节标准答案 标准答案的关键字 让题库能适应学生的要求 3 管理员用户的需求分析管理员登录后可以为对用户的管理操作和个人信息的修改 系统结构采用B S结构 在表现层 选用Struts JSP为主要表现技术 在业务层 选用JavaBean为主要技术 负责业务的操作 在持久层 选用Hibernate为主要技术 负责对持久对象的操作 各层之间的连接 工厂模式 系统的整体设计 系统用例图 系统的整体设计 本系统共分学生用户模块 教师用户模块和管理员模块 学生模块 学生通过帐号密码登录 可以选择进入答疑系统或者学生信息管理 若进入个人信息管理则可以修改自己的信息 进入答疑系统后可以选择提问或者对自己的问题进行管理 若在提问时对所提供的答案并不满意 可以将提问放入问题库中 在学生问题管理中可以查看问题的答案和回答老师的资料 并可以对问题进行删除操作 教师模块 教师通过登录可以进入答疑系统或者教师信息管理 若进入教师信息管理则可对自己的个人信息进行修改 进入答疑系统后 教师可以选择查看未解题目 查看我的题目 查看章节题库 进入查看未解题目可以对未解问题进行解答 进入查看我的题目可以进行已答问题的修改 进入章节题库可以对章节进行添加删除 添加关键字 添加标准答案 添加标准答案库 管理员模块 管理员登录后可以进入人员管理或者个人信息管理 若进入个人信息管理则可以对个人信息进行修改 在人员管理中可以进行用户的查看和用户的删除 系统详细设计 系统详细设计 一实体类设计 系统共设用户类User 学生类Student 教师类Teacher 管理员类Administrator 问题类Question 答案类Answer 章节类Chapter 标准答案类StandardAnswer 设用户父类User 学生类Student 教师类Teacher 管理员类Administrator继承自User 问题类单向关联学生类 学生和问题的关系为1对0到多 答案类单向关联教师类 教师和答案的关系为1对0到多 章节类和标准答案类为双向1对0至多关系 二DAO层类设计 系统设用户DAO 问题DAO 答案DAO 章节DAO 标准答案DAO五个DAO 分别定义了对用户 问题 答案 章节 标准答案的增删查改 三BIZ层类设计 业务层有用户业务UserBiz 学生业务StudentBiz 教师业务TeacherBiz 管理员业务AdminBiz四个接口 分别实现一般用户功能 学生用户功能 教师用户功能 管理员功能 四数据库设计 系统详细设计 系统详细设计 五 关键字匹配思想 1 学生提出问题 服务器得到问题的字符串string 2 对string进行求字串处理 得到字符串集合Liststrings 3 把字符串集合与章节关键字集合进行迭代匹配 得到候选章节ID ListchapterIDs 4 把字符串集合与候选章节中的标准答案集合的关键字集合进行迭代匹配 得到候选标准答案 Listsas 5 把所搜索到的答案返还给用户 系统详细设计 假设问题 面向对象的概念 步骤一 从客户端取得问题 面向对象的概念 步骤二 对 面向对象的概念求子串 得到Liststrings 里面的字串有 面 面向 面向对 面向对象 面向对象的 面向对象的概 面向对象的概念 向 相对 步骤三 用Liststrings和所有章节的Listc keywords做迭代匹配 由于只有第一章有 面向对象 关键字 所以返回集合ListchapterIDs中只有一个对象 1L 步骤四 用Liststring和这一章的Listsa keywords做迭代匹配 得到2个标准答案 放入Listsas中 步骤五 返回sas给客户端作为查询结果 系统详细设计 假设问题 面向对象的概念 步骤一 从客户端取得问题 面向对象的概念 步骤二 对 面向对象的概念求子串 得到Liststrings 里面的字串有 面 面向 面向对 面向对象 面向对象的 面向对象的概 面向对象的概念 向 相对 步骤三 用Liststrings和所有章节的Listc keywords做迭代匹配 由于只有第一章有 面向对象 关键字 所以返回集合ListchapterIDs中只有一个对象 1L 步骤四 用Liststring和这一章的Listsa keywords做迭代匹配 得到2个标准答案 放入Listsas中 步骤五 返回sas给客户端作为查询结果 系统详细设计 匹配算法的流程图 系统详细设计 部分细节设计1 过滤器的设计2 字符编码的转换3 JSTL的使用4 延迟抓取的应用5 页面数据的验证6 令牌机制 下面请看演示 总结和答谢 本次毕业设计 学到了很多东西 无论是在知识的掌握方面 还是在经验的积累方面 都收获颇丰 独立开发一个基于Web自动答疑系统 从接受毕业设计的任务 到熟悉软件开发环境 再到集中精力开发系统 整个过程中遇到了很多问题 我学着自己解决这些问题 在解决问题的过程中 学到了很多有用的东西 过程虽然几多波折 但却真的令我受益匪浅 这次毕业设计的顺利完成要感谢我的母校 安徽工业大学 对我辛勤培育之恩 感谢校院领导和老师们多年来 对我的孜孜教诲 在这里我会永生不忘 感谢同学们这么多年来对我的关心和帮助 这里我还要感谢我的指导老师郑啸老师给予的耐心指导和帮助 感谢各位同学给予的支持 演示完毕谢谢 毕业设计答辩演示文稿 装订线安徽工业大学 毕业设计(论文)说明书摘 要目前随着Internet的广泛使用,网络教学系统被越来越多的应用在教学过程中。越来越多学校都建立了网络答疑系统,通过这样的系统,学生可以在异地访问教学资源,不受时间的限制进行学习。网络课程答疑系统是网络教育系统的一个重要组成部分,学生可以通过这个系统向老师和系统寻求帮助,获得问题的解答。本次毕业设计的题目就是设计并且实现一个基于Web的网络课程答疑系统,为学生添加在网上远程学习交流的机会和空间。本系统主要以Core Java为主, 采用B/S结构,底层数据库选用MYSQL, 数据访问层采用JDBC,Hibernate,页面模板采用JSP,Web框架设计模式采用StrutsMVC模式,IDE工具采用Myeclipse,服务器采用Tomcat;该系统的实现可以提高学生学习的效率,使学生更好地享受Web服务给生活带来的便捷。本文首先介绍了Strutes,Hibernate和Jsp的相关知识。详细阐述了系统所要完成的功能和开发的过程,重点说明了系统设计过程、关键技术和关键词匹配算法。关键词: Struts,Hibernate,Jsp,关键词匹配算法,MVC模式AbstractWith the current widespread use of the Internet, network systems of teaching are more and more applications in the teaching process. More and more colleage hava set up newtwork system of teaching, student can visit the source of educating and study without the trouble of time and space by using this system. Network Automatic Question&Answering System is an important part of network system of teaching. Students can use the system to look up helping from the teacher or the system, to answer questions. The top goal of my graduate design is developing a Web-based Network Automatic Question&Answer System , for student to append chance and space of communion of study on network. This system is based on Core Java , adopt B/S structure ,In Database I chosen MySQL ,In DAO layer I chosen JDBC and Hibernate,In web script I chosen JSP, Web mode is based on StrutsMVC,In IDE tool I chosen MyEclipse,server is TOMCAT.The implements of the System can improve the efficiency of students studing, enjoy their convenient life by web server.This paper introduce the technic of Hibernate Jsp and Struts at first, then particular expatiate the function of the system and the process of exploitation,the keystone is the process of systems design,key technic and the arithmetic of matching Keyword.Keywords: Struts,Hibernate,Jsp,arithmetic of matching keyword,MVC mode.目录1 . 绪 论51.1基于WEB的自动答疑系统的优势51.2 我的研究工作52. 系统设计中各种技术的介绍72.1 核心Java介绍72.2 持久层的HIBERNATE的介绍82.3业务层JAVABEEN的介绍92.4表现层Servlet和JSP的介绍92.4.1Servlet和JSP的介绍92.4.2 EL和JSTL的介绍102.4 WEB架构MVC模式和STRUTS的介绍112.4.1MVC模式的优先和缺点112.4.2MVC模型简介123. 系统所使用工具的介绍143.1 TOMCAT的介绍143.2 MYSQL的介绍153.3 Myeclipse的介绍164. 网络课程答疑系统的设计174.1系统的需求分析174.2系统的总体设计174.2.1系统总结构设计174.2.1系统流程图184.2.2系统的分层和技术选用194.2.3各层之间的连接:工厂模式。205. 系统详细设计225.1系统类图设计225.1.1系统实体类图设计225.1.2 DAO接口和实现类图。235.1.3BIZ业务接口和实现类图。245.2 系统数据库设计255.2.1 数据库表的设计255.2.2 数据库表的建立255.2.2 对象与数据库的映射295.3学生用户模块的设计315.3.1学生模板大致设计315.3.2 学生提问功能的设计315.3.3学生问题管理功能的设计325.3.4学生模块代码举例说明325.4教师模块的设计345.4.1教师模块大致设计345.4.2教师回答问题模块的设计355.4.3教师答案管理模块的设计355.4.4 教师题库管理模块的设计365.4.5教师模块代码举例说明365.5管理员模块的设计375.5.1管理员模板大致设计375.5.2管理员人员管理功能的设计385.5.3管理员模块代码举例385.6匹配算法的思想395.6.1匹配算法设计思想395.6.2匹配算法的流程图445.7部分细节设计445.7.1过滤器的设计445.7.2字符编码的问题465.7.3JSP上JSTL的使用465.7.4延迟抓取的应用475.7.5页面数据的验证485.7.6 Struts的Token(令牌)机制506. 软件测试526.1 调试过程526.2 调试过程中遇到的问题52结 论53致 谢54主要参考文献55附录 英文资料及翻译561 . 绪 论1.1基于WEB的自动答疑系统的优势目前随着Internet的广泛使用,网络教学系统被越来越多的应用在教学过程中。许多学校都建立了网上教学系统,通过这样的系统,学生可以在异地访问教学资源,不受时间的限制进行学习。网上教学系统中丰富的教学资源又可以作为课堂教学重要的补充。自动答疑系统是网上教育系统的一个重要组成部分,学生可以通过这个系统向老师寻求帮助,获得问题的解答。基于web的自动答疑系统具有以下优势:1)改善教学的效果通过学生在课程学习过程中所反映和提出的共同问题,教师以及课件编写者等远程教学过程中涉及的各管理和参与者,能够藉此反馈直接调整教学的内容、进度,改善教学方式等,从而提高效果。2)提高学生学习效率 这里的自动答疑系统定位在对简单的公共问题和概念性的问题进行自动答疑,而对于实际复杂的问题还是有待于教师解答。通过在答疑系统中对一些简单的公共的问题和概念提供详细的解答和解释,可以避免教学中的大量时间花费在基本概念的解释上,从而可以投入进行深入的讨论和交流等。3)丰富教学经验学生在学习过程中产生的问题以及教师等的解答,经过一定时间的积累成为可以重复利用的宝贵资源。其它的学生可以从以往学生的问题中取得收获,教师也能够利用这些资源来有针对性的制定教学内容和进度等。4)改善教学的环境远程教学系统中,整个系统的设计、教学方式的制定也直接影响了教学效果。从学生的反馈可以调整它的结构,改善现有系统的不足。作为远程教学的一个重要的辅助系统,自动答疑系统可以直接与课程学习、考试等系统结合在一起,成为其中不可分割的一部分,也可以在实时的教学模式中使用,作为课后学生答疑、师生交流或教师获得学生反馈、衡量教学效果的一个配套系统。1.2 我的研究工作为了顺利完成基于WEB的课程自动答疑系统的设计与实现,我在毕业设计期间所做的研究工作如下:1)研究了相关文献中关于基于WEB的网络课程自动答疑系统的内容;2)研究了相关文献中关于关键字匹配算法方面的的内容;3)学习Core Java 等各种技术;4)制定了基于web的网络课程答疑系统的总体设计方案;5)设计了本系统的各模块的功能和实现细则;6)设计并实现了基于关键字拆分的匹配算法;7)设计了底层数据库的实现;本论文主要论述了管理子系统以及匹配算法的详细设计过程。2. 系统设计中各种技术的介绍2.1 核心Java介绍在经历了以大型机为代表的集中计算模式和以PC机为代表的分散计算模式之后,互联网的出现使得计算模式进入了网络计算时代。网络计算模式的一个特点是计算机是异构的,即计算机的类型和操作系统是不一样的,例如SUN工作站的硬件是SPARC体系,软件是UNIX中的Solaris操作系统,而PC机的硬件是INTEL体系,操作系统是windows或者是Linux,因此相应的编程语言基本上只是适用于单机系统,例如COBOL、FORTRAN、C、C等等;网络计算模式的另一个特点是代码可以通过网络在各种计算机上进行迁移,这就迫切需要一种跨平台的编程语言,使得用它编写的程序能够在网络中的各种计算机上能够正常运行,java就是在这种需求下应运而生的。正是因为java语言符合了互联网时代的发展要求,才使它获得了巨大的成功。俗话说:有心栽花花不成,无心插柳柳成荫。Sun公司绝没想到本想用于消费电子产品开发的编程语言却率先在网络中得到了广泛应用,但是也可以说是东方不亮西方亮,正是因为java语言在设计目标上的正确性使得java语言是金字总会发光的。C语言是面向过程的语言,也是使用率非常高的语言;而面向对象的思想引入到编程语言之后,C语言就被改造成为面向对象的C语言,得到了广泛的应用。但是C语言必须兼容C语言,因此C语言是面向过程和面向对象混合的语言。java语言产生于C语言之后,是完全的面向对象的编程语言,充分吸取了C语言的优点,采用了程序员所熟悉的C和C语言的许多语法,同时又去掉了C语言中指针、内存申请和释放等影响程序健壮性的部分,可以说java语言是站在C语言这个巨人的肩膀上前进的。java语言的一个目标是跨平台,因此采用了解释执行而不是编译执行的运行环境,在执行过程中根据所在的不同的硬件平台把程序解释为当前的机器码,实现跨平台运行。而动态下载程序代码的机制完全是为了适应网络计算的特点,程序可以根据需要把代码实时的从服务器中下载过来执行,在此之前还没有任何一种语言能够支持这一点。综合上述,Java的生命力体现在如下方面:1.Java产生与流行是InterNet发展的客观要求。2.是一门各方面性能都很好的编程语言,它的基本特点是简单,面向对象,分布式,解释的,健壮的,完全的,结构中立的,可移植的,性能很优异的,多线程的,动态的,适合的Internet环境上开发应用系统。3.Java可以制作大部分网络应用程序系统,而且与如今流行的WWW浏览器结合很好。4.Java不仅仅是一种各方,更重要的是一种区别于传统系统,遵守网络就是计算机信条的平台技术。Java平台将面向对象系统扩展成包括程序和数据的网络计算机(NC),而这个平台的核心就是Java虚拟机,许多使Java成为万能开发平台的属性都源于Java虚拟机的概念和实现。2.2.1JAVA面向对象的思想。JAVA是纯面向对象编程,面向对象的三大原则封装,继承,多态。下面对这三大原则的介绍:封装封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制。封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问。对包装器内部代码与数据的访问通过一个明确定义的接口来控制。封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用。在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码)。一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的。所以对象也叫做类的实例。在定义一个类时,需要指定构成该类的代码与数据。特别是,类所定义的对象叫做成员变量或实例变量。操作数据的代码叫做成员方法。方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义。由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制。所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西。私有的方法数据只能通过该类的成员代码来访问。这就可以确保不会发生不希望的事情。继承继承是指一个对象从另一个对象中获得属性的过程。是面向对象程序设计的三大原则之二,它支持按层次分类的概念。例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种。如果不使用层次的概念,每个对象需要明确定义各自的全部特征。通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性。因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例。一个深度继承的子类将继承它在类层次中的每个祖先的所有属性。继承与封装可以互相作用。如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性。这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念。新的子类继承其所有祖先的所有属性。子类和系统中的其他代码不会产生无法预料的交互作用。多态多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用一个接口,多个方法来描述。可以通过方法的参数和类型引用。2.2 持久层的HIBERNATE的介绍Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。 在本次系统设计中所有的DAO都应用了Hibernate技术,大部分利用HQL语言对数据库进行增删查改,其中只有小部分使用了SQL进行查询,相比SQL语言而言,HQL使人很直观的了解所进行的操作,更为对数据库底层不熟悉的人提供了极大的方便。2.3业务层的JAVABEAN的介绍JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。虽然JavaBean和Java之间已经有了明确的界限,但在某些方面JavaBean和Java之间仍然存在着非常明显的混淆。Java确实是能够为用户创建可重用的对象,但它却没有管理这些对象相互作用的规则或标准。JavaBean通过指定定义对象之间交互作用的机制,以及大部分对象需要支持的常用行为,如持久性和实际处理等,建立了自己需要的组件模型。 虽然当前的Java组件模型也可以运行得很好,但在传送真正的可重用性和交互操作性上仍然非常有限,Java用户需要做的最多的一件事就是创建applet并使得它们在Web 页面上相互通讯,这并非易事。JavaBean提供了一个框架包,使用这个包进行通讯就容易得多了。 JavaBean组件能够通过定义好的标准属性改进性能。总体而言,JavaBean充分发展了Java applet的功能,并结合了Java AWT组件的紧凑性和可重用性。2.4表现层Servlet和JSP的介绍2.4.1Servlet和JSP的介绍Servlet是运行在WEB服务器或应用服务器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序。可以将Servlet看作是一个含有HTML的JAVA程序Servlet的工作是执行下面的任务:读取客户发送的显式数据;读取由浏览器发送的隐式请求数据;生成结果;向客户发送显式数据(即文档);发送隐式的HTTP响应数据。我们可以把JSP看作在静态页面上写Java代码,但其实JSP在服务器第一次运行的时候被服务器翻译为Servlet,正真运行的是翻译后的Servlet。JSp和Servlet的区别就如下几点:1) JSP以文本为主,主要用于画界面2) JSP可以人工扩充,而servlet是固定的3) JSP内核是servlet,所以也是基于HTTP协议的请求响应循环4) 由HTML(Css、xml)、java code、JSP标签组成5) JSP有自定义标签(ASP没有)6) CGI和Servlet以代码为主,代码中嵌文本 ;JSP中文本中嵌代码7) JSP擅长于表现,而短于逻辑;而Servlet一般用作Contorler和diapatch(控制和流转);所以在JSP中写界面元素,而逻辑方面由Servlet完成。 8) JSP不需要写java文件、不需要编译和配置,它被封装到了容器内部;9) JSP代码不可重用。2.4.2 EL和JSTL的介EL全名为Expression Language,它原本是JSTL1。0为方便存取数据所自定义的语言。当时EL只能在JSTL标签中使用。到了JSP2。0之后,EL已经正式纳入成为标准规范之一。因此,只要是支持servlet2。4/JSP 2。0的Container,就都可以在JSP网页中直接使用EL了。JSTL全名为JavaServer Pages Standard Tag Library, 目前最新的版本为1。2版。JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库。Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性,维护性和方便性。JSTL是一个标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出,流程控制,循环,XML文件剖析,数据库查询及国际化和文字格式标准化的应用等。从表21可以知道,JSTL所提供的标签函数库主要分为五大类:表2-1另外,JSTL也支持EL语法,这也是本系统设计上处理集合迭代的主要方法。2.4 WEB架构MVC模式和STRUTS的介绍2.4.1MVC模式的优先和缺点说道MVC的优点,首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,在本系统中用户的注册有学生注册也可能是教师注册,但对于注册的处理都是一样,也就是说注册的处理是一致的。按MVC设计模式,一个用户模型以及多个视图即可解决问题。这样减少了代码的复制,即减少了代码的维护量,一旦模型发生改变,也易于维护。 其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。关于MVC的缺点,首当其冲的是其增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。另外,视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。最后,视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。2.4.2MVC模型简介模型一(图21):JSP+JavaBean,JSP既充当控制,又充当视图,以页面为核心,JSP使用jsp:useBean,他不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用JavaBean的方法才能实现。图2-1模型二(图22):JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。图2-2StrutsMVC框架Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。(图2-3)Struts提供了一些组件使用MVC开发应用程序:1)模型(Model)在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组Actinform Bean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。 建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。2)视图(View)视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。3)控制器(Controller)在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config。xml 文件配置控制器。Struts框架的处理流程清楚的体现了MVC系统的特点,简单的Struts组件结构如图2所示。Struts Controller ActionServlet处理客户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据,处理和响应客户请求,它还调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知Controller,Controller进行下一步的处理。 图2-33. 系统所使用工具的介绍3.1 TOMCAT的介绍Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat是Apache组织下Jakarta项目下的一个子项目,目前Tomcat被非常广泛的应用在中小规模的Java Web应用中。Tomcat 是一种具有JSP环境的Servlet容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳。作为一个开放源代码的软件, Jakarta -Tomcat有着自己独特的优势:l 首先,它容易得到。事实上,任何人都可以从互联网上自由地下载这个软件。无论从http:/jakarta。A还是从其他网站(Jakarta Tomcat是Apache软件基金会开发的一个开放源码的应用服务器)。l 其次,对于开发人员,特别是Java开发人员,Tomcat提供了全部的源代码,包括Servlet引擎、JSP引擎、HTTP服务器。无论是对哪一方面感兴趣的程序员,都可以从这些由世界顶尖的程序员书写的代码中获得收益。l 最后,由于源代码的开放及世界上许多程序员的卓有成效的工作, Tomcat已经可以和大部分的主流服务器一起工作,而且是以相当高的效率一起工作。如:以模块的形式被载入Apache,以ISAPI形式被载入IIS或PWS,以NSAPI的形式被载入Netscape Enterprise Server。l 由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。Tomcat的目录结构首先,下载jakarta-tomcat。zip包,解压缩到一个目录下,如:“c:tomcat”。这时,会得到如下的Tomcat的目录结构:- - - jakarta - tomcat| - - - bin Tomcat执行脚本目录| - - - Common放置一些通用类(如JDBC的驱动程序等)| - - - conf Tomcat配置文件| - - - doc Tomcat文档| - - - lib Tomcat运行需要的库文件(JARS)| - - - logs Tomcat执行时的LOG文件| - - - src Tomcat的源代码| - - - webapps Tomcat的主要Web发布目录(存放我们自己的JSP,SERVLET,类)| - - - work Tomcat的工作目录,Tomcat将翻译JSP文件到的Java文件和class文件放在这里。(表3-1)表4-1目 录 名该目录内的文件的一般功能描述bin包含有Startup。bat(启动服务器)与shutdown。bat(关闭服务器)文件conf包含设置部署在Tomcat上的Web应用的变量的初始值的设置文件,包括 server。xml (Tomcat 的全局配置文件) 和 web。xml (为不同的Tomcat配置的web应用设置缺省值的文件)doc包含关于Tomcat的各种各样的文档。common在其lib目录下,主要存放如JDBC的驱动程序等lib包含被Tomcat使用的各种各样的jar文件。在UNIX上,任何这个目录中的文件将被附加到Tomcat的classpath中。 logsTomcat的log文件。srcservlet API的源文件。webapps包含Web应用的程序 (JSP、Servlet和JavaBean等)work由Tomcat自动生成,这是Tomcat放置它运行期间的中间(intermediate)文件(诸如编译的JSP文件)地方。 如果当Tomcat运行时,你删除了这个目录那么将不能够执行包含JSP的页面。本系统由Myeclipse部署至TOMCAT6。0服务器中。3.2 MYSQL的介绍MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是一个数据库管理系统:一个数据库是一个结构化的数据集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。MySQL是一个关系数据库管理系统:关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”(结构化查询语言)。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。SQL标准发展自1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是该标准的当前版本。MySQ是开源的:开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。本系统采用MySQL 5.0.8版本。3.3 Myeclipse的介绍说到Myeclips先得说下Eclipse,Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。MyEclipse 是什么?简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。所以作为本次毕业设计IDE工具的不二人选。4. 网络课程答疑系统的总体设计4.1系统的需求分析项目目标:本软件功能大致分为三大模块:学生模块,教师模块和管理员模块。学生模块:学生用户进行操作的模块。教师模块:教师用户进行操作的模块。管理员模块:管理员用户进行操作的模块。具体各用户需求分析:1。学生用户的需求分析学生登录后可以选择查看个人资料或者进入答疑系统,进入答疑系统后可以提出问题,问题提交给服务器端,并在服务器端进行检索。若检索成功,则返回答案给客户端浏览器;若没检索成功,学生还能将问题设置为未解题目等待教师的解答。若教师解答了此题目,当学生下次查看自己问题时即可看到老师回答的答案。2。教师用户的需求分析教师登录后可以选择查看个人资料或者进入答疑系统,进入答疑系统后可以查看未解题目,对未解问题的解答,教师还可以进行题库的管理操作,给题库添加删除修改章节,章节关键字,章节标准答案,标准答案的关键字。让题库能适应学生的要求。3。管理员用户的需求分析管理员登录后可以为对用户的管理操作和个人信息的修改。4.2系统的总体设计4.2.1系统总结构设计系统结构采用B/S结构:B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层(3-tier)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是:工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。4.2.1系统流程图系统流程图如(图4-1)所示图(4-1)教师用户未登陆用户管理员用户答案库人员注册、登陆注册、登陆注册、登陆管理管理管理回答题库置入问题查询问题库学生用户管理4。2。1系统用例图设计系统用例图如(图4-2)所示图4-24.2.2系统的分层和技术选用serviceLocator表示层StrutsStruts Action,ActionForm,Jsp,Struts-config.xml,etc.DAO ClassesJavaBeanHibernate session Management持久层HibernateDataSourceTransactionsBusiness Service ClassesQueryLanguage Support and other Hibernate Services本系统的分层结构以及技术选用: (图4-3)图4-3在整体设计模式上采用StrutsMVC模式的B/S架构各层的技术选用:在表现层:选用Struts,JSP为主要表现技术。需在Web。xml中添加:ActionServletorg.apache.struts.action.ActionServlet1ActionServlet*.do在业务层:选用JavaBean为主要技术,负责业务的操作。在持久层:选用Hibernate为主要技术,负责对持久对象的操作。由于使用Hibernate为持久层,所有与数据库连接的工作只需要在hibernate。cfg。xml配置就行,hibernate。cfg。xml部分代码如下:com.mysql.jdbc.Driverjdbc:mysql:/:3306/qa_sysrootsuyuejiaorg.hibernate.dialect.MySQLDialect在数据库层上:选用开源的MySql为数据库。4.2.3各层之间的连接:工厂模式。工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性和低耦合的目的。跟为系统以后的扩展提供了良好接口。以DAOFactory为例,/产生DAO的工厂,绑定在线程上面,单例,线程安全。public class DAOFactory private static ThreadLocal threadLocal = new ThreadLocal();private DAOFactory()public static DAOFactory getInstance()DAOFactory daoFactory=threadLocal.get();if(daoFactory=null)daoFactory=new DAOFactory();threadLocal.set(daoFactory);return daoFactory;public Object getDAO(String daoName) throws QAExceptiontryreturn Class.forName(daoName).newInstance();catch(Exception ex)throw new QAException(ex);Globals类代码如下:public class Globals public static final String USER_DAO=com.ahut.qa_system.dao.impl.UserDAOImpl;public static final String ANSWER_DAO=com.ahut.qa_system.dao.impl.AnswerDAOImpl;public static final String CHAPTER_DAO=com.ahut.qa_system.dao.impl.ChapterDAOImpl;public static final String QUESTION_DAO=com.ahut.qa_system.dao.impl.QuestionDAOImpl;public static final String STANDARDANSWER_DAO=com.ahut.qa_system.dao.Impl.StandardANswerDAOImpl;public static final String ADMIN_BIZ=com.ahut.qa_.impl.AdminBizImpl;public static final String STUDENT_BIZ=com.ahut.qa_.impl.StudentBizImpl;public static final String TEACHER_BIZ=com.ahut.qa_.impl.TeacherBizImpl;public static final String USER_BIZ=com.ahut.qa_.impl.UserBizUtil;在业务层如果要调用某个DAO对象,只需写如下代码:private UserDAOImpl udao = (UserDAOImpl) DAOFactory.getInstance().getDAO(Globals.USER_DAO); 在Action中如果要调用某个业务对象,只需写如下代码:private AdminBizImpl biz = (AdminBizImpl) BizFactory.getInstance().getBizClass(Globals.ADMIN_BIZ);5. 系统详细设计系统共分学生用户模块,教师用户模块,题库管理模块和管理员模块。5.1系统类图设计5.1.1系统实体类图设计系统共设用户类User,学生类Student,教师类Teacher,管理员类Administrator,问题类Question,答案类Answer,章节类Chapter,标准答案类StandardAnswer。设用户父类User,学生类Student,教师类Teacher,管理员类Administrator继承自User。问题类单向关联学生类,学生和问题的关系为1对0到多。答案类单向关联教师类, 教师和答案的关系为1对0到多。章节类和标准答案类为双向1对0至多关系。 (图4-2)图4-25.1.2 DAO接口和实现类图。系统设用户DAO,问题DAO,答案DAO,章节DAO,标准答案DAO五个DAO,分别定义了对用户,问题, 答案,章节,标准答案的增删查改。他们各有Impl类实现他们。图(4-3)图4-35.1.3BIZ业务接口和实现类图。业务层有用户业务UserBiz,学生业务StudentBiz,教师业务TeacherBiz,管理员业务AdminBiz四个接口,分别实现一般用户功能,学生用户功能,教师用户功能,管理员功能。分别有Impl类对其实现(图4-4)图4-45.2 系统数据库设计5.2.1 数据库表的设计本系统共设用户表T_user,问题表T_question,答案表T_answer章节表T_chapter,章节关键字表T_chapter_keywords。标准答案表T_standardanswer,标准答案关键字表T_sa_keywords。(图4-5)图4-5问题表用户表答案表标准答案表章节关键字表表章节表标答关键字表5.2.2 数据库表的建立以T_user表为例,由于实体类设计管理员,学生,教师都有用户继承而来,所以建表是需要考虑到表对多态的支持,因此在用户表的选择上采用每个类分层结构一张表(Table per class hierarchy),有字段Type区分到底是哪个子类(表4-1)。表4-1userID为与任务业务无关的独立字段,其优点是能确保永远不会修改。为此表主键约束。类型为BIGINT。Type为该类的类型: A为管理员,S为学生,T为教师;类型VarcharVersion是Hibernate的乐观锁。类型Integer。Username为用户名。唯一约束。 类型VarcharPassword为用户密码。 类型VarcharEmail 为用户email;唯一约束。 类型VarcharRealname 为真实姓名类型VarcharClassname为班级名。 类型VarcharteachSpeciality为所授专业。 类型Varchar具体建表SQL建表语言为: create table t_user( userID BIGINT not null, type VARCHAR(255) not null, version INT not null, userName VARCHAR(255) not null unique, password VARCHAR(255) not null, email VARCHAR(255) not null unique, realname VARCHAR(255), classname VARCHAR(255), teachSpeciality VARCHAR(255), primary key (userID);其他表的建立如下:T_question(表4-2):表4-2QuestioneID为问题ID,与业务无关,为此表主键约束。 类型为BIGINT。 Version是Hibernate的乐观锁,类型Integer。Answered为问题是否已回答,类型Boolean。questionContent为问题内容,类型Varchar。Sfid为此表外键约束,引用t_user的userID主键。SQL建表语句: create table t_question( questionID BIGINT not null primary key, version INT not null, answered BIT, questionContent TEXT, sfid BIGINT,foreign key (sfid) references t_user(userID) );T_answer(表4-3):表4-3AnswerIdD为答案ID,与业务无关,为此表主键约束。 类型为BIGINT。Version是Hibernate的乐观锁。类型Integer。answerContent为答案内容。 类型Varchar。Questioned为此表外键约束,引用t_question的questionID主键tfid为此表外键约束,引用t_user的userID主键。SQL建表语句: create table t_asnwer( answerID BIGINT not null primary key, version INT not null, answerContent TEXT,questionID BIGINT, tfid BIGINT,foreign key (tfid) references t_user(userID),foreign key (questionid) references t_question(questionID) );T_chapter(表4-3):表4-3Chaptered为章节ID,与业务无关,为此表主键。 类型为BIGINT。Version是Hibernate的乐观锁。类型Integer。Number为章节目录。唯一约束。 类型Integer。Title为章节标题,类型Varchar。SQL建表语句: create table t_chapter( chapterID BIGINT not null, version INT not null, number INT unique, title VARCHAR(50) not null, primary key (chapterID) );T_chapter_keywords(表4-4):表4-4Fid为此表外键约束,引用t_chapter的主键。 类型为BIGINT。Keyword为关键字。 类型Varchar。Fid和keyword为联合主键。SQL建表语句: create table t_chapter_keywords( fid BIGINT not null, keyword VARCHAR(255),foreign key (fid) references t_chapter(chapterID););T_standardasnwer(表4-5):表4-5saID为标准答案ID,与业务无关,是此表主键。类型为BIGINT。questionContent为问题内容。类型Varchar。answerContent为答案内容。类型Varchar。chapterFid为此表外键,引用t_chapter的主键。SQL建表语句: create table t_standardanswer( saID BIGINT not null, version INT not null, questionContent TEXT, answerContent TEXT, chapterfid BIGINT, primary key (saID),foreign key (chapterfid) references t_chapter(chapterID););T_sa_keywords(表4-6):表4-6Fid为此表外键约束,引用t_standardanswer的主键。 类型为BIGINT。Keyword为关键字。 类型Varchar。Fid和keyword为联合主键。SQL建表语句: create table t_sa_keywords( fid BIGINT not null, keyword VARCHAR(255),foreign key (fid) references t_standardanswer(saID); );5.2.2 对象与数据库的映射因为JDBC代码重复量大,所以在本系统采用了Hibernate技术,使用Hibernate技术,对象与数据库的映射只需要在配置文件中实现。以T_user为例,在实体包下添加User。xml,在里面添加配置:5.3学生用户模块的设计学生功活动图如下(图6-3):学生通过帐号密码登录,可以选择进入答疑系统或者学生信息管理,若进入个人信息管理则可以修改自己的信息。进入答疑系统后可以选择提问或者对自己的问题进行管理,若在提问时对所提供的答案并不满意,可以将提问放入问题库中,在学生问题管理中可以查看问题的答案,并可以对问题进行删除操作。图(6-3)5.3.1学生模板大致设计学生的一般操作如登录,注册,注销,对应系统Action,然后根据类型的不同返回不同的页面。学生的其他操作对应StudentAction,利用隐藏标签或者超链接直接带参数调用不同的方法,在各个方法中,调用学生业务实现类StudentBizImpl, StudentBizImpl再调用不同的DAOImpl类实现对象的基本操作以完成业务操作,然后根据struts-config。xml中对应的路径返回页面。5.3.2 学生提问功能的设计学生向系统提出问题,调用StudentAction中的askQuestion方法得到最为匹配的答案集合,并显实在学生的浏览器上,若学生对系统给出的答案不满意,可以调用StudentAcion中的askTeacher方法把题目添加到我的问题,等待老师来解决。学生提问界面(图6-4):图6-4学生查询完后的界面(图6-5):图6-55.3.3学生问题管理功能的设计学生通过此功能可以查询自己未解的题目,若发现问题已经解答点击超连接调用StudentAction中的CheckAnswer方法就可以查询老师给出的答案,并查看给出答案老师的资料。最后还能把问题从自己的问题库中删除。同样在页面上使用了JSTL来给出显示。学生问题管理界面(图6-6):图6-65.3.4学生模块代码举例说明以学生查询自己以解答案为例:学生点击查看我的问题连接通过页面跳转进入student_qa_center_myQuestions。jsp。可以看到自己的所有问题,若问题已回答,可以看见问题状态成为已解答,并有超链接查看答案查看答案我们可以看到这是个带参数的超连接,有methodName和questionID,其中methodName为checkAnswer,questionID为动态session中question的questionID,该连接被servlet拦截并调用studentAction中的checkAnswer方法,方法代码如下:String str = request.getParameter(questionID);Long questionID = new Long(str);System.out.println(questionID);Answer answer = null;Question question = null;Teacher teacher = null;try HttpSession session = request.getSession();answer = biz.findAnswerByQuestionID(questionID);question = biz.findQuestionByQuesionID(questionID);teacher = biz.findTeacherByUserID(answer.getTeacher().getUserID();session.removeAttribute(answer);session.removeAttribute(question);session.removeAttribute(teacher);session.setAttribute(answer, answer);session.setAttribute(question, question);session.setAttribute(teacher, teacher);return mapping.findForward(findanswer); catch (RuntimeException e) e.printStackTrace();return mapping.findForward(error);该方法通过QuestionID调用业务层StudentBIZ中的findAnswerByQuestionID方法,和findQuestionByQuestion方法获得该题目的问题和答案,并通过该题目的答案调用findTeacherByanswerID方法获得提供该的答案的老师。再以StudentBiz中的findAnserByQuestionID方法为例,在方法中,调用了DAO层的AnswerDAO中的findAnserByQuestionID,其代码为:Session session = HbnUtil.getCurrentSession();String hql = from Answer a where a.questionID=?;Query q = session.createQuery(hql);Answer answer = (Answer) q.setLong(0, questionID).uniqueResult();return answer;这样,在获得了问题,答案和教师以后,分别把他们存放进session中,并跳转至student_qa_center_question_answer。jsp中,通过EL语言:$teacher。userName老师给出的答案:$answer。answerContent显示在页面上。5.4教师模块的设计教师的活动图如下(图6-7):教师通过登录可以进入答疑系统或者教师信息管理,若进入教师信息管理则可对自己的个人信息进行修改。进入答疑系统后,教师可以选择查看未解题目,查看我的题目,查看章节题库。进入查看未解题目可以对未解问题进行解答,进入查看我的题目可以进行已答问题的修改,进入章节题库可以对章节进行添加删除,添加关键字,添加标准答案,添加标准答案库。图6-75.4.1教师模块大致设计教师的基本操作如登录,注册,注销使用SystemAcion中的对应方法,返回对应的网页。教师的其他操作对应TeacherAction,利用隐藏标签或者超链接直接带参数调用不同的方法,在各个方法中,调用学生业务实现类TeacherBizImpl, TeacherBizImpl再调用不同的DAOImpl类实现对象的基本操作以完成业务操作,然后根据struts-config。xml中对应的路径返回页面。5.4.2教师回答问题模块的设计教师进入未解问题模块中,可以通过TeacherAction中的unansweredQuestion方法查看到所有学生遗留的问题,并且可以通过每个问题查看提出问题的学生的资料,教师在TeacherAction中的answerQuestion可以对问题进行解答。但由于回答问题之后还要对题目的状态(boolean answered)进行修改,所以把教师回答问题和题目状态的修改绑定为一个事务,如果其中一个操作因为某种原因产生了异常,导致后面的操作无法进行,便可以通过事务回滚让已经完成的操作回滚,从而保证了数据的安全。5.4.3教师答案管理模块的设计教师进入答案管理模块之后可以调用TeacherAcion中的myanswers方法查看自己所回答的问题,由于答案和问题之间有依赖关系,所以如果学生删除了已解答的问题,答案将不会再存在,当然也不会在页面上出现“无主”的答案。教师还可以在这里对自己的回答进行修改,以便更好的给学生进一步的答案。由于答案和题目的获得分别是两个集合,在TeacherAction中myAnswers方法中对答案和题目进行了分别获取,在页面上为了确定两边的对应关系以便在页面上正确显示“题目:答案”的关系,于是在页面上用到了JSTL核心标签的IF和SET标签,对两个集合进行迭代比配QuestionID,然后通过set后的value值在页面上进行表现:页面显示如下(图6-8):图6-85.4.4 教师题库管理模块的设计教师进入题库管理模块后,可以通过不同的Action方法对章节进行增加,删除操作并对章节添加关键字,也可以对章节题库标准答案的添加,删除和添加关键字。题库部分的设计为章节和标准答案是双向一对多关系,章节和关键字为集合关系,标准答案和关键字也为集合关系。于是,对章节和标准答案取关键字的操作应用到了抓取策略(Fetching strategies)。抓取策略是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL或条件查询(Criteria Query)中重载声明。具体设计可参见6。6。45.4.5教师模块代码举例说明以教师修改自己答案为例:教师点击我的答案超连接进入teacher_qa_center_answers。jsp 。这是我们可以看到所有此教师的答案都在页面上,点击修改答案超链接修改答案这里有2个参数一个是methodName值为updateAnswer,一个是answerID值为动态的session中answer的answerID。servlet进行拦截并调用TeacherAction中的updateAnswer方法,该方法调TeacherBiz中的findAnswerByAnswerID方法和findQuestionByQuestionID方法获得问题和答案加入session中并跳转至teacher_qa_center_update_answer。jsp。在该页面中修改答案,并以update_answer为参数被servlet拦截并调用TeacherAction中的update_answer方法,该方法代码如下:String s = request.getParameter(content);String content = new String(s.getBytes(ISO-8859-1), GB2312);Answer answer = null;Teacher teacher = null;try HttpSession session = request.getSession();answer = (Answer) session.getAttribute(answer);answer.setAnswerContent(content);biz.updateAnswer(answer);return mapping.findForward(update_answer_success); catch (RuntimeException e) e.printStackTrace();return mapping.findForward(error);该方法先从session中取得answer,然后对answerContent进行修改,并调用TeacherBiz中的updateAnswer方法进行答案的修改。UpdateAnswer中调用AnswerDAO的updateAnswer方法, Session session = HbnUtil.getCurrentSession();Session.update(answer);进行对answer的更新。5.5管理员模块的设计管理员活动图如下(图6-9):管理员登录后可以进入人员管理或者个人信息管理,若进入个人信息管理则可以对个人信息进行修改,在人员管理中可以进行用户的查看和用户的删除。图6-95.5.1管理员模板大致设计管理员的一般操作如登录,添加,注销,对应系统Action,然后根据类型的不同返回不同的页面。学生的其他操作对应AdminAction,利用隐藏标签或者超链接直接带参数调用不同的方法,在各个方法中,调用学生业务实现类AdminBizImpl, AdminBizImpl再调用不同的DAOImpl类实现对象的基本操作以完成业务操作,然后根据struts-config。xml中对应的路径返回页面。5.5.2管理员人员管理功能的设计管理员进入人员管理后,可以通过不同的带参数超连接进行学生,教师和管理员的查看,还可以通过用户名进行单个用户的查看。还可以通过带参数的超链接调用AdminAction中不同的方法进行对用户删除。(图6-10)图6-105.5.3管理员模块代码举例管理员进入人员管理后,可以查看学生用户对学生用户进行查看,并使用带参数超链接删除该用户该连接有3个参数methodName为delete,username为动态学生userName,type为S,serlvet进行拦截并调用AdminAction中的delete方法,该方法代码如下:public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception String userName = request.getParameter(userName);String type = request.getParameter(type);User user = null;try user = biz.findUserByUserName(userName);if(type.equals(A)biz.removeUser(user);return mapping.findForward(removeAdmin);else if(type.equals(S)biz.removeStudent(Student) user);return mapping.findForward(removeStudent);elsebiz.removeTeacher(Teacher) user);return mapping.findForward(removeTeacher); catch (RuntimeException e) e.printStackTrace();return mapping.findForward(error);该方法对type的值进行判断,并针对不同的值调用不同的AdminBiz中的方法,这里为学生删除,该方法调用AdminBiz中的removeStudent方法,该方法先调用QuestionDAO中的findQuestionsByStudent方法找到该学生的所有问题,并对问题进行迭代调用removeQuestion方法对答案进行删除,在调用UserDAO中的removeUser方法把该用户进行删除,UserDAO的removeUser方法代码如下:public void removeUser(User user) Session session = HbnUtil.getCurrentSession();Session.delete(user);6. 软件测试调试本身的目的是尽可能多地暴露程序中的错误,但是,发现错误的最终目的还是为了改正错误。因此,在成功的测试之后,还必须进一步诊断和改正程序中的错误,这就是调试的任务。调试是软件开发过程中最艰巨的脑力劳动。调试开始时,程序员仅仅面对着错误的征兆,然而在问题的外部现象和内在原因之间往往并没有明显的联系,在组成程序的数以万计的元素中,每一个都可能是错误的根源。如何在浩如烟海的程序元素中找出有错误的几个元素,这是调试过程中最关键的技术问题。6。1 调试过程本系统的开发过程遵循如下步骤:先进行需求分析以及总体设计,而后根据总体设计思路进行逐个部分的设计、编码、调试,整个软件基本框架搭建好后,再逐步进行完善。当然这个步骤是伴随着调试进行的,因此调试渗透在整个软件开发过程之中,而且,对于系统中大部分的局部设计、开发过程是建立在实验的基础上的,而进行实验的目的也是为了便于进行各种测试与调试,来确定与了解某些控件或类的功能、属性、方法以及可能出现的问题等等,可以说调试在整个开发过程中占了很大一部分时间。程序的调试原则包括正确性,可靠性,易用性等几个方面。在调试过程中,可能会遇到多种错误,最常见且易发现的是编译错误。遇到编译的错误,可以根据系统的提示作出相应的修改。另一种错误是逻辑错误,在编译的时候不易发现,而在运行之后结果与程序员预先设想的结果不一致,但是系统又没有提示,所以这样的情况下,需要仔细查找原因。6。2 调试过程中遇到的问题1)Hibernate配置问题,因为Hibernate配置文件需要实体类属性和字段的一一对应,而且对于一对多的多对一的关系有特殊的写法,所以在一开始设计上总是问题很多。2)DAO层HQL语言的使用问题,除了上面说到的延迟抓取,HQL毕竟有别与我们经常使用的SQL语言,经常由于两者相互混淆而导致错误。3)在业务层的事务操作上,有时候不小心会把两个有关联的操作放在不同的事务中,导致操作错误。问题还有很多,以上只是挑取比较常见的几种。结 论本次毕业设计,学到了很多东西,无论是在知识的掌握方面,还是在经验的积累方面,都收获颇丰。独立开发一个基于Web自动答疑系统,从接受毕业设计的任务,到熟悉软件开发环境,再到集中精力开发系统,整个过程中遇到了很多问题,我学着自己解决这些问题,在解决问题的过程中,学到了很多有用的东西。过程虽然几多波折,但却真的令我受益匪浅。第一,关于程序设计方面,由于系统较小所以采用瀑布式开发,但由于经验太少和对业务的考虑不够深远,导致写代码时发现有些写到的类用不到,要用到的没写,在这方面可以说教训很大。所以深深感觉到设计在一个系统开发的重要地位。第二,在积累经验方面,感觉平时的学习只有通过实践才能真正掌握,虽然有时候嘴上能把很多东西说的很详细,很轻松,但是真正写了才发现问题很多,这对于我来说是本此毕业设计的最大收获。第三,关于WEB技术方面, 我理想中的Web开发架构是这样的:开发速度快,运行速度快,结构清晰优雅。在使用JavaEE对于Web技术的开发后,我深刻的体会到Web技术的分层结构及其优点。 本系统使用到了当今比较流行的框架Java Web开发框架, ,最流行的框架是Apache Struts。当Web开发竞技场继续演变它的工具和编程方法时,Java应用程序框架也将继续成长下去。Java Web开发框架的未来一片明亮!致 谢这次毕业设计的顺利完成感谢我的母校安徽工业大学,对我辛勤培育之恩;感谢校院领导和老师们多年来,对我的孜孜教诲,在这里我会永生不忘;感谢同学们这么多年来对我的关心和帮助。这里我还要感谢我的指导老师:郑啸老师。他从一开始就帮助我分析系统的设计,技术的选择,并指导我关键字匹配算法的思想。他还为我收集有关关键字匹配的中英文资料,使我能对关键字匹配方法有更广更深的认识。他还督促我认真完成毕业设计,所有这些都体现了他作为教师对工作高度负责的精神和对知识、技术一丝不苟的态度。最后我要感谢和我一起学习的同学,正是因为我们互帮互助,才能一起克服许许多多困难。在此再次向校院的各位领导、各位教师表示我最崇高的敬意和最衷心的感谢! 苏越嘉 2008年6月主要参考文献1. 孙卫琴著 JAVA面向对象编程 电子工业出版社 20062. 孙卫琴著 精通Hibernate 电子工业出版社 20053. Hibernate3。2官方文档 20064. (美)Marty Hall, larry Browm著 赵学良 译Servlet与JSP核心编程 清华大学出版社 20045. 林上杰 林康司著 JSP2。0技术手册电子工业出版社 20046. 孙卫琴著 精通Struts:基于MVC的Java Web设计与开发 电子工业出版社 20047. 张天河 Struts Hibernate Spring 集成开发宝典 电子工业出版社 20068. Gai-Tai Huang Hsiu-Hsen Yao著 Chinese Question-Answering System20039. 李素建 张健 黄雄 白硕 刘群著 Semantic Computation in a Chinese Question-Answering System 200110. 刘亚军 徐易 高莉莎著 智能答疑系统中快速定位算法的研究与实现 2003 附录 英文资料及翻译Chinese Question-Answer SystemGau-Tai Huang and Hsiu-Hsen YaoInstitute of Strategic Defense Management,” National Defense”Management College, NDU P.O. BOX 90046-8,Chung-Ho,TaipeiDepartment of Computer Engineering, Yuan Ze University, 135 Yuan-Tung Road, Chungli, TaoyanE-mail:hgt.tw;csyao.twReceived July 4,2003;revised Septeber 1,2003.Traditional Chinese text retrieval systems return a ranked list of documents in response to a users request. While a ranked list of documents may be an appropriate response for the user, frequently it is not. Usually it would be better for the system to provide the answer itself instead of requiring the user to search for the answer in a set of documents. Since Chinese text retrieval has just been developed lately, and due to various specific characteristics of Chinese language, the approaches to its retrieval are quite different from those studies and researches proposed to deal with Western language. Thus, an architecture that augments existing search engines is developed to support Chinese natural language question answering. In this paper a new approach to building Chinese question-answering system is described, which is the general-purpose, fully-automated Chinese question-answering system available on the web. In the approach, we attempt to represent Chinese text by its characteristics, and try to convert the Chinese text into ERE (E: entity, R: relation) relation data lists, and then to answer the question through ERE relation model. The system performs quite well giving the simplicity of the techniques being utilized. Experimental results show that question-answering accuracy can be greatly improved by analyzing more and more matching ERE relation data lists. Simple ERE relation data extraction techniques work well in our system making it efficient to use with many backend retrieval engines.Keywords ERE relation model, conceptual schema, question-answering, information retrieval1 IntroductionQuestion-answering has recently received attention from the information retrieval, information extraction, machine learning, and natural language procession communities. The goal of a question-answering system is to retrieve “answers” to questions rather than full documents or even best matching passages as most information retrieval systems currently do. Question-answering(QA) systems augment IR system by taking over the scanning task. A separate search and scoring algorithm is executed to locate answers in the retrieved documents. Most QA systems have dealt with TREC data, where the determination of an answer is based in part on the syntactic structure of the language in the documents.Since Chinese question-answering system has just been developed lately, and due to various specific characteristics of Chinese language, the approaches are quite different from those studies and researches proposed to deal with Western languages. At present, issues involved in Chinese question-answering aredescribed as follows:Concepts cannot merely be represented by words appearing in the text or by mathematical semiotics. How to distill the essence of the document into an answer of just a few words is completely hard.Since English characters are always mixed up with Chinese document, the question-answering system should provide the ability of handling bilingual language.Segmentation in Chinese text retrieval, which may experience more difficulties, is different from that of Western characters.This paper describes a system called Chinese Question-Answering System(CQAS), which is the general-purpose, fully-automated Chinese question-answering system available on the web. CQAS relies on multiple search-engine queries, natural language parsing, and a relational model method for Chinese question-answering called ERE(Entity-Relation-Entity) relational model. ERE relational model is built on previous word in Chinese text information extraction. The ERE technique relies on an existing search engine to return documents that are likely to contain the answer to a user question. ERE goes through several to a user question. ERE goes through several stages until it extracts and ranks the most likely answers to the question. These stages are query analysis, document retrieval, converting document into ERE relation data lists, answer extraction and answer ranking. All experiments described in this paper were performed by the authors using Google in the period of SeptemberNovember,2002.This paper is organized as follows. The first section is the introduction. Discussion about pervious researches on question-answeringg is introduced in Section 2. Section 3 describes answer generation for Chinese document based on a conceptual schema. Design methodology and the ERE relational model process are introduced in Section 4. Experiments on answer generation method are presented in Section 5. Section 6 shows the experimental results and analysis while the conclusion can be found in Section 7.Related WordA large number of QA systems have emerged recently. Primarily, they follow two directions: one is to use the TREC Q&A data as the test corpus and develop their own search engines and answer extraction techniques on top of the corpus; the other is to use the WWW as the potential answer source and use generic search engines, such as Google, to retrieve information related to the question and do further post-processing to extract the answers for the questions. The TREC conference offers an exciting environment for competitive research on Question-Answering. However, the questions that can be answered from the fixed text corpus as in TREC are limited. Various efforts are now under way and try to port existing Q&A techniques to a much larger context- the World Wide Web. Many earlier studies already show that the current WWW search engines, especially those with very large index like Google, offer a very promising source for question-answering.Other researchers have recently looked to thewerb as a resource for question-answering. The Mulder system described by Kwok et al. is similar to our approach in several respects. For each question, Mulder submits multiple queries to a web search engine and analyzes the results. Mulder does sophisticated parsing of the query and the full-text of retrieved pages, which is far more complex and compute-intensive than our analysis. They also require global idf term weights for answer extraction and selection, which requires local storage of a database of term weights. Our system is different from Mulders in that we did not use a deep natural language parser.Agichtein et al. presented a technique on how to learn search engine specific query transformations for question-answering. Asimilar transformation technique alos appeared in. The idea is that the current query interfaces of most generic search engines, such as Google, do not provide enough capability for direct question-answering the initial natural questions into a certain format, which include more domains,. Specific information can dramatically improve the chances of finding good answers at the top of the search hit lists. Their word, however, is focused on improving the chances of getting high quality documents from a search engine, It does not provide any mechanism to identify the true answers from the search results.Dragomir et al. presented a probabilistic method for Web-based Natural Language Question-Answering . The process entails five steps:query modulation, document retrieval, passage extraction., phrase extraction, and answer ranking. They adopted some probabilistic approaches in the lase three stages. Yet, it does not suit Chinese language due to its high variation characteristics, and our system is different from Dragomirs in that we do not use passage extraction.Question-Answering Based on an ERE Conceptual Schema ApproachGeneral ArchitectureOur approach includes the following stages.Query analysis: in this stage questions are subdivided into question entity, constraint condition, action condition, answer type and answer data type, depending on the type of question that they are asking.Document retrieval: the process of returning documents that are likely to contain the answer(s) to the input question.Document analysis: in this stage, we convert document into ERE relation data listsAnswer extraction: this is where the relavant ERE relation data lists are split up into constituent phrases, each of which is a potential answer candidateAnswer ranking: answers extracted in the previous stage are ranked with the goal of getting the right answer near the top of the phrase-level hit list.A new document characteristic model,EAVR, has been proposed to solve the Chinese text retrieval problem. In the EAVR conceptual model, an information index structure that satisfies the requirements of information retrieval or information extraction is established during context analusis stage. Basically, the approach proposed here is based on the concepts described above. But, in order to answer the question, the document is converted into ERE(Entity-Relational-Entity) relational concept structure, and syntactic marks altogether with the underlying relational model are defined. The detail of syntactic mark is described in the following.3.2 Syntactic MarkSyntacitc mark of Chinese words generally uses grammatical marks resultion from sentence structure analysis such as noun, verb, and adjective. One advantage of grammatical mark to represent the concept relation amoing words. That is why grammatical mark is more appropriate to be applied to grannatical analysis or sentence structure analysis, but not to semantic analysis. To overcome this drawback, we define a set of syntactic marks as following.:Ordinary Syntactic MarkThese are mostly nouns derived from syntactic analysis and defined as entitied in the entities in the ERE relational model.O:noun(object),e.g.汽车(car);NX:noun, adjective or objects attributive,e.g.,住址(address) ;Q:measurement unit, e.g.,公升(liter);NXX:new words resulted from segmentation;N: undetermined words from segmentation;X: function word, e.g.,因此(therefore);T:time expression, e.g.,今日(today).Question Word Syntactic MarkSince question word semantics is implicitly indicated in Chinese language, correlation between other words can understand the answer type(or the answer data type) of the question. Question words that are commonly learned in Chinese sentences are defined as question words in ERE relational model.XMA:maybe has multiple answers, such as:哪些(whose). XSA: maybe has one answer, such as: 那个(which).XNA: name entity answer, such as: 谁(who).XD:answer is the meaning of something , such as: 何谓(what is the meaning of ).XDV:such as: 什么(what).XE:such as : 如何(how).XPL: such as : 哪里(where).XR:answer is reason, such as: 为什么 (why).XTLsuch as: (how long), 多久(when).XV:such as: 何时(how many).XYN: answer is yes or no, such as: 多少(whether).Relation Syntactic MarkChinese sentences imply the semantic meaning of its character. By taking the understanding and specific assumption on the semantic meaning of some particular characters, the relationship amoing words can be expressed as a relational model. Relational models that are commonly learned in Chinese sentences are described as follows and are defined as “Relation” in ERE relational model.A:Action, e.g.,”发生”,”发动”;=:Synonym, e.g.,”and”;ZOT:negation, e.g.,”不是”;#:Possession,e.g.,”含有”;:Belong to , e.g.,”均是”;-:Causality expression, e.g., “导致”:Part of, e.g.,”的”;LOW:lower degree of comparison, e.g.,”低于”;&:And, e.g.,”与”;,#,ZOT,LOW,&,)原因(E).RER list:造成(R:A)肌筋膜疼痛症候群(E)的(R:)原因(E).Thus,based on the Chinese sentence statistical analysis described above,firstly, we convert document contents sentences into ERE lists. Then, we transform the answer generation problem into how to discover, amoing the documents ERE lists, the optimum ERE list to serve as representative of the questions answer. We assume that most documents are descriptive, repoting any information,and thus a meaningful document context may be represented as a binary relation to describe the relation to describe the relationship between themes.For example. The sentence “安非他命是本地危害最烈的毒品”(Amphetamine is during that causes the mose harm at home), after transformation into ERE list, becomes to one shown in Table1:The ERE list of the s-th document is represented as:Ds = (Ei,Rk,Ej)In the ERE Approach Model,document characteristics are first extracted and converted into the corresponding ERE lists.Afterward, the algorithm searches for and calculates the optimum ERE lists to be served as answer candidates. Among the candidates,the best ERE list is detemined as the questions answer. The details of design and algorithm step are described in the next section.4 Design and Process of the ERE Relational Model4.1 Query AnalysisThe Objective of query analysis is to find anddefine question characteristics where Chinese words segmentation may be involved. We will apply the approach proposed in which uses dictionary to accomplish segmentation and define the syntactic marks of the question sentence.In this stage questions are subdivided into question entity, constraint condition, action condition, answer type and answer data type, depending on the syntactic marks of question.Question Entity: The object entities or noun phrases extracted from question sentence.Constraint Condition: The constraint condition words extracted from question sentence which can influence the final answer.Action Condition: The action words extracted from question sentence which can influence the final answer.Answer Type: Our system can recognize the final answer of question is just one answer, multiple answers, data/time answer or long answer (a sentence or a paragraph) through the syntactic marks of question.Answer Data Type: In our system,wether questions are subdivided depends on the data type of the answer the except:e.g., person, place, quantity, distance,etc.For example,the question sentence”说明毒品是本地危害最烈的?”(What is the drug that harms the most at home?) After query analysis we will find question entity, constraint condition,etc.4.2 Document RetrievalSince CQAS regards the web as its knowledge base (although user can directlu input electronic document as its knowledge base), the choice of search engine determines our scope of knowledge and the method of retrieving that knowledge. We considered a fes search engine candidates, but eventually chose Google. Google has three overwhelming advantages over others: forst, it supports Chinese language, second, it has the widest coverage among search engines, and third , its page ranking function is unrivaled. Wider coverage means that CQAS has a larger knowledge base and access to more information. With a larger collection, moreover, we have a higher probability of finding target answers.The input to the Google is a query (a question after word segmentation in our case).The output is a list of the URLs of the top matching documents. We use download module to retrieve and convert the top 20 actual documents into pure text files from the search engine before we split them up into ERE relation data lists.4.3 Context Analysis and Word SegmentationThe objective of context analysis is to find and define document characteristics where Chinese word segmentation may be involved. We will apply the approach proposed in that uses a dictionary to accomplish segmentation and to define syntactic marks.4.4 Conversion into an ERE relational ModelAfter word segmentation is done, weight calculation of term frequency is performed to convert the document into an ERE relationship model list. A sentence is considered as a unit measurement during conversion since the meaning of words within a sentence has continuity and correlation. After function words have been removed, relevant words are converted into ERE list according to the word orderm the syntactic marks and the rules defined below, Weight recalculation is performed during conversion based on term frequency(tf) multiplied by its syntactic mark weight (word with its syntactic mark “O”,”NX”,”V”, or “A” has weights of 5,4,3,and 2 respectively). Conversion rules and the terminologies used inside are figured as follows.Terminologies used in EiR-EZ list:LE Set:Left Entity Set,the set that appears at the left of RIn other words,it is the set that represents El in El一R一E:listrepresents El in El一R一E:listrepresents El in El一R一E:listpears at the right of R. In other words,it is the set that represents EZ in Ei一REZ listR set : Relation word Set, the set that represenets R in E1RE2list.LE word : Entity word Set, the set that represents LE in E1RE2 list.R word : Entity word Set, the set that represents R in E1RE2 list.RE word : Entity word Set, the set that represents RE in E1RE2 list.Conversion rules:While LE word is empty, if the syntactic mark of the word received belongs to set E , then the word is included into LE word.While syntactic mark of the first received word belongs to set R, if LE Word is empty, then LE Set is substituted by”?”. Otherwise ,t he entities contained in it are combined and converted into LE Set . THE word received is then included in R word.If LE Set already exists, and the syntactic mark of the first received word belongs to set E, then the relations contained in R Word are combined and converted into R Set, The reveived word is then included in RE word.If all LE Set, R Set, RE Word already exist, when punctuation is received or sentence terminates or a word with syntactic mark of R set is received, then entities included in RE word are combined and converted into RE Set. Hence , a complete ERE list is generated. The received word is included in R Word of the next ERE list, and the current RE Set is inserted into LE Set of the newt ERE list.If both LE Set and R word exist but RE Word is empty, and a sentence terminates, then RE Set is substituted by “?” Aloso , a complete ERE list is generated.Example 3 Original text passage: 根据统计,威尔钢上市四年以来,巴拿马人共服用了十三万零五百六十一颗,占威尔钢在中美州国家销售总数的四分之一.墨西哥泌尿科医生加西亚女士赞扬威尔钢的问市,解决男人性不举困扰,这项药品获得全球一百一十个国家核准.(According to statistics, after Viagra has been released for 4 years, Panamanina takes 130561 pills, which is a quarter of its total sales in Middle America. A Mexican urologist Miss Garcia compliments on its lease that solves mens erectile dysfunction. This medicine has obtained approval from 110 couuntries worldwide.)Original text passage with syntactic marks: 根据(X)统计(A),(-)威尔钢(NX)上市(A)四年(V)以来(X),巴拿马人(NX)共服用了十三万零五百六十一颗(V), (-)占(A)威尔钢(NX)在()四分之一(V).墨西哥(NX)泌尿科(NX)医生(NX)加西亚(N)女士(NX)赞扬(A)威尔钢(NX)的()问市(NX),(-)解决(A)男人(NX)性不举(NX)困扰(NX),(-)这项(X)药品(NX)获得(A)全球(NX)一百一十个(V)国家(NX)核准(A).ERE liste generated: It is shown in Table3.4.5 Answer ExtractionIn normal situation, after the stage of query analusis , our system will directlu jump to this stage to search the appropriate ERE list to serve as the questions answer, then jump to the Document Retrieval stage to trigger search engine to retrieve documents. After the retried document are converted into ERE lists, the next step is to determine the appropriate ERE list to serve as the questions answer again.The main idea of answer generation is to simulate the major pattern of Chinese natural language, in Chinese language , the answer phrase is located ate or nearby the sentences that have the question entities. For example. For the question sentence”“什么毒品是本地危害最烈的?”(What is the drug that harms the most at home?), it candidate answer sentence may be like”安非他命是本地危害最烈的毒品”or”本地危害最烈的毒品是安非他命”or”本地危害最烈的安非他命是毒品”,(Amphetamine is the drug that harms the most at home), all of them have the question entities(Question Entity1:本地(at home),Question Entity2:毒品(drug),and right answer parase(安非他命)locate at sentences head, middle, and trail separately.Our answer extraction approach is based on the Chinese sentence writing habit and ERE(Entity-Relation-Entity) relational model. First, the blocks of ERE data lists with question entity in left or right entity data lists with question entity in left or right entity are determined, if the blocks ERE data list with relation word that has the same Constraint Condition word or Action Condition word is selected (we call this ERE data list the “Core ERE”). The next step is to extend the selected ERE data list within the same block. Based on this relation(Left Entity, Relation Word, Right Entity), we may obtain three types of answer patterns (Answer parase + Core ERE data lists),(Core ERE data lists + Answer phrase +Core ERE datalists),and(Core ERE data lists+Answer phrase) depending on sentence order. Thus, answer generation problem is transformed into how to construct a meaningful(LE,RW,RE) relation word list.For example , Table 4 indicates some ERE lists obtained from a specific document analysis according to the question sentence above.Example 4 Original text passage:. 大麻和安非他命都是毒品,但是,安非他命是本地危害最烈的毒品.(Marijuana and amphetamine are both drugs, but, amphetamine is the drug that harms the mose at home.)ERE lists generated : It is shown in Table 4/Candidate answer 1:安非他命(Amphetamine),weight=40Candidate answer 2 :大麻(Marijuana), Weight=40.4.8 Final Answer DeterminationIf only one answer phrase in the answer extraction stage is generated, then the most appropriate answer phrases are selected and ranked based on the following formul:the weight of answer phrases: the larger the better;the distance of answer phrases: the distance is calculated from Core ERE to answer phrases, the shorter the better;the document number with the same answer phrases:the more the better;Thus, the evaluation formula is defined as:Evaluation answer = (answer weigh/answer distance )* (shorest answer distance/answerdistance)*(document number with the same answer/maximum document number with the same answer phrases)For Example, Table 5 shows candidate answer obtained from a specific document analysis”. . 大麻和安非他命都是毒品,但是,安非他命是本地危害最烈的毒品.(Marijuana and amphetamine are both drugs, but, amphetamine is the drug that harms the mose at home.)with their corresponding metrics/After weight calculation:Answer1=(401)*(11)*(11) 40Answer2=(204)*(14)*(11)125Answer 1 has a higher standard weright in the candidate answers, thus Answer 1 =”安费他命”(Amphetamine) is chosen as the final answer of the question.5 Chinese Question-Answering ExperimentAnswer generation based on the ERE model produces high accuracy and high-like human assigned answers in contrast to the previous study that did not provide it. Our approach provides a mechanism that preserves the complete knowledge of documents,. Besides, it is a no-learning approach, and it is not a requirement to restrict question type in advance. Our approach can generate a dynamic anwer length based on the question type and its significance.Details of related experimental data and evaluation are described in the next section5.1 Experimental Data Description1)Experimental CorpusOur Experimental Corpus,at least consisting of 300 documents of news report and other electronic documents with domains varying from medical treatment, finance and economics, technology, and politics,were obtained randomly from Google, ChinaTimes and IcareAsia web sites in 2002.2)DictionaryOur dictionary consistis of about 130000 words .some of which are obtained from a Chinese dictionary developed by Academia Sinica while the rest are collected manually. We apply the approach proposed in to achieve automatic labeling entity syntactic mark(noun words) and manually labeled syntactic mark of relation words,function words, measurement unit words, and tiem expression words in advance.5.2 EvaluationTwo evaluations are used in this paper, which consider a human-assigned answer as measurement standard: one is to measure precision ratio, and the other is used to measure recall ration, where Precision and Recall are defined, respectively, as follows:6 Experimental Results and Discussion To illustrate the quality of the experimental results, we first show a running example of machine generated answers, and then present quantitative results and analysis.6.1 Running ExampleQuestion:微风广场何时推出百货白金卡?(When did Breeze Center offer department store Visa Platinume Card?)Query Analysis: The result of question sentence analysis is shown in Table 6Document Retrieval:Original content:为抢攻高消费信用卡市场,微风广场与联邦银行于昨天(二十三)日共同推出推出第一张百货白金卡,同时推出1%的现金回馈让白金卡友享受刷卡购物的乐趣.联邦银行表示,微风购物网优惠及免费停车三小时.(To win over the high-consumption credit card marked, Breeze Center and Union Bank offer the first department store platinum card yesterday(23)Meanwhile, a 1% cash refund is offered to let card holders enjoy the convenience of shopping with credit cards.Union Banks “Breeze jointly card”Breeze online shopping for special price offers, and free three hour parking)ERE lists generated:The ERE lists extracted from prior original content are shown in Table 7.Detemin the Final Answer”Answer :昨(二十三)日.(yesterday(23)The result shows that ERE model approach has the ability to pick suitable brief words as summarization result to represent the questions answer. A detailed comparison is presented in the next section6.2 Analysis of Generated Answers Some experimental results are listed in Table 8 to demonstrate the differences between the results from the ERE model approach(Google). The result shows that the Semantic Computation approach(select largest relevancy value sentence) usually generates an overly long answer while the ERE model approach can pick suitable brief words for the summary results to represent the questions answer. It is obvious that the retrieval-based approach usually doesnot find good answers at the top of the search hit lists. It is also evident are quite accurate. While the ERE model combines with the EAVR model, it can infer the related answers(example in Table 8 ,Item 2). Moreover, the essence of the answers generated by the ERE model approach is almost the same sa tht of human-assigned answers for the correspoinding questions.6.3 Analysis of Experimental Results We ask more than fifty questions, and the experimental results are listed in the table below. Our system has about 86% of average precision value and 71% of average recall value. The reason of lower average recall value is due to no answer return .Comparing to the two approaches , We learned from the experimental results that the ERE model approach has beeter performance, that is , the ERE model approach generates answers with semantic meaning nearly the same human assigned answers.7 Conclusion At present , the procession mechanism of most QA systems is bases on sentence , and computes the similarity and relevancy between words, and gets the optiiaml result by calculationg the relevancy between sentences, While Chinese question-answering system still remains at Semantic Computation or retrieval-based approach, the ERE model approach proposed in this paper has been proved to have the ablity of generation answer phrase that is nearly similar to human-assigned answers. Although this approach requiresthe assistance of a dictionary to accomplish the syntactic marking process, it provides better answer phrase results and avoids complex calculation compared with the previously proposed approaches.中文问答系统Gai-Tai Huang 和 Hsiu-Hsen Yao邮件地址:hgt。tw; csyao。tw于2003年7月4日确认;于2003年9月1日修订摘要 传统的中国文本取回系统应使用者的要求交回一系列的文件。这些恢复的文件有时是符合使用者的要求的,当然,通常情况下是没有符合的。通常如果一个系统能够自己提供回复而不是应使用者对于一系列文件的要求那会更好。尽管中文的文本取回系统最近刚刚开始发展,而且因为中国文字的众多特殊结构特征,这些取回的途径是和那些研究者和学者针对西方语言而设计的完全不同的。因此,一种体系结构正在发展增加现行搜索引擎去支持中国的原本的语言问答。在这篇文章中将介绍一种新建立的中文式问答系统,它是普遍意图,完全自动的中文网上问答系统。在这种途径中,我们尝试去通过中国语言文字的特点来代表中国文本,并试图将中国文本转变到关系数据列表的ERE(E:实体,R:关系),然后通过ERE关系模型来回答问题。这个系统在简单技术利用上表现的非常出色。实验结果表明这个问答系统肯定能够通过分析更多的相关ERE关系模型得到改进。简单的ERE关系数据可以和许多后台取回引擎一样高效的工作。关键词 ERE关系模型,概念上的轮廓,问答,信息取回1 介绍 问答系统近来已经被信息取回,信息索取,机械学习和原始语言步骤交流所承认。问答系统的目标是取回问题的“回答”而不是完整的文件或者甚至是最好的段落配对就像是现在大多数信息取回系统所做的。QA系统通过接收浏览任务来增加信息取回。一个分开的搜寻和获得规则系统将被用于确定取回文件的回答上。大多问答系统已经处理了TREC数据,这是个根据文件中部分语言句法结构来决定回答的数据。尽管中文的文本取回系统最近刚刚开始发展,而且因为中国文字的众多特殊结构特征,这些取回的途径是和那些研究者和学者针对西方语言而设计的完全不同的。现如今,涉及中国式问答系统得问题描述为如下。1) 这方面的概念已经不能仅仅被作为文本上体现出来的文字的代表或是数学。怎样将文章中的精华提炼出来并用少量的单词来作为答案是非常困难的。2) 因为英语的特征常常被混合用到中文的文本中来,所以问答系统要提供能够处理用两种语言写成的文本的能力。3) 中文文本取回的分割不同于西方语言,将经历更多的困难。这篇文章将描述一种叫做中文问答系统得系统(CQAS),它是通过总的意图,完全自动的网络问答系统。中文问答系统是依赖多个搜索引擎资料库,自然语言语法以及相关的模型为了放弃可靠的回答和高记忆力绑定在一起。在这篇文章中,我们将介绍一种为中文问答系统设计的叫做ERE(完全-关系-完全)关系模型方法。ERE关系模型时建立在先前中文文本信息增加的基础上6。ERE技术是依赖于一种存在的搜索引擎去取回文本,它可能将答案和使用者的问题联系起来。ERE将走过很多个阶段直到他能够提供最多可能的问题的答案。这些阶段是问题分析,文件取回,将文本转变为ERE关系数据列表,回答的扩展以及升级。所有在这篇文章中描述的试验都来自于作者于2002年9月至11月在谷歌上的操作。这篇文章可以分成以下几个部分。第一段落是介绍。第二部分是关于众多问答系统研究的讨论。第三部分则说明有对于中文文件的核心答案是建立在概念轮廓上的。第四部分将对设计方案以及ERE关系模型流程进行介绍。对于答案核心的实验将被放在第5部分。第六部分将向大家展示实验的结果以及分析同时读者将在第七部分找到结论。2 相关工作 大量的问答系统近来已经出现。主要的,分为以下两个途径:一种是将TREC问答数据作为测试的素材,发展他们自己的搜索引擎以及在素材顶端的扩展数据;另一种是将互联网作为答案可能的来源,并使用普通的搜索引擎,例如谷歌,去取回问题相关的信息,做更多的指定步骤来扩展问题的答案。TREC会议官员对于问答系统复杂的研究环境很感兴趣。然而,尽管TREC是限制的,但是问题可以从混合的文本中找到答案。各种各样的错误正在进行中并努力将问答技术设置到更大的文章中互联网。许多早先的研究8已经显示了互联网搜索引擎上的问题,特别是那些有很大索引的网络像谷歌,将提供一个很有希望的问答来源。 其他研究者近来已经将网络看作是问答的资源。通过Kwok et al9 来表述的Mulder系统合我们在其他领域的途径是很相似的。对于每个提问,Mulder系统使多个疑问遵从网搜寻引擎并分析结果。Mulder系统对查询和整个文本进行复杂的分列,这比我们的分析远远更复杂。他们也需要一个当地的数据库为他们的答案和提取出来的选择。我们的系统和Mulder所不同的是我们并没有使用一个深的自然语言分析器。Agichtein 及其研究同仁10 在该如何为问答研发搜寻引擎特性疑问变化上呈现了一种技术相似的变形技术也出现在11其大意是类似Google的当前常用查询接口,不提供充足的能力给以自然语言模态直接的问答。藉由把开始的自然疑问转变成一个特定的格式,这包括较多的领域,特性数据能戏剧地改善在搜寻选中名单的顶端发现好答案的机会。然而,他们的工作把重心集中在改良从一个搜寻引擎得到高质量文件的机会它不提供任何的机制识别来自搜寻结果的真实的答案。 Dragomir 以及其同事 12 为以网络一为基础的自然语言疑问回答呈现了一个盖然性的方法程序需要五个步骤:质疑调音、文件取回、通道抽出、片语抽出和答案排名。他们在最后三个阶段中采用了一些盖然性的方法。然而,由于它的高的变化特性,它不适合中国
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:网络课程答疑系统
链接地址:https://www.renrendoc.com/p-32523895.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!