预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于知识库的自动答疑系统的研究与实现摘要:该文从系统设计,数据库设计,具体实现等方面介绍了一个基于知识库的自动答疑系统,该系统可以实现网络教学中的自动答疑,既增强的系统的实用性,又减轻了教师的负担,大大的提高了网络教学的效率。关键词:知识库;自动答疑;PHP;MySQL中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)01-0127-02ResearchandImplementationofanAutoProblem-shootingSystemBasedonKnowledge-baseTANHong-jian(GuilinUniversityofTechnologyatNanning,Nanning530001,China)Abstract:ThisessayintroducesanautoProblem-shootingsystembasedonknowledgebaseintermsofsystem-design,database-designandconcreteimplementation.Thesystemcanautomaticallyanswerquestionsinonline-education,whichenhancestheavailabilityofthesystem,andalsoreducesteachers’burden,thusimprovestheefficiencyofonline-education.Keywords:knowledge-base;autoProblem-shooting;PHP;MySQL21世纪是计算机和网络的世纪,网络在开放和远程教学方面的潜力越来越明显,在线答疑作为远程教育不可缺的一部分,用以解决网络教学这种非面对面教学形式中学生与教师之间交流的问题。本文采用PHP技术和MySQL数据库等相关知识相结合设计并实现了一个基于知识库的在线自动答疑系统。1系统功能分析与设计系统用户包括学生和教师以及管理员。学生用户可以在线问题查询,自主学习,还能就课程中遇到的问题留言,等待系统自动或者教师回答。教师能对提出的问题进行删除、修改和回复等操作,并能对学生提出有代表性的问题进行整理入库,还能查看该课程学生答疑情况统计,对学生的反馈信息予以回复。为了加快答疑速度,教师把学生的问题集中放在问题库中,并提供检索方式,从而使学生通过检索问题库获取答案,这样就解决共性问题,也能较快的使学生弄懂大量问题。对于一些没有检索到的问题,即个性问题,则由教师解答,教师给予解答的同时,把问题的答案补充存放到问题库中,以备其他学习者查阅。管理员负责对注册人员的信息进行管理,并负责教师权限的授予和取消,以及删除教师信息。根据以上功能分析,系统功能设计模块如图1所示,系统主要由用户注册模块、自动答疑模块、教师管理模块、学生管理模块、系统管理模块。2关键技术知识库的实现是在线答疑系统的主要技术难题,解决好知识库的设计就实现了在线答疑系统的自动答疑。而知识库的设计,最重要的是实现智能化检索功能,具体讲就是关键词的提取。知识库针对每门课程具有重复性、代表性很强的问题及专业术语,通过科任老师进行分类组织、编辑存入数据库管理,形成知识库。使用关键词分词技术,可列出相关的关键词,辅助查询,可以按照时间顺序列出用户查询的关键词相关问题。如若用户查询的关键词在系统中并未含有相关信息,则自动切换到提问模块,工作流程如图2所示。3关键词分词主要技术实现关键词分词采用最大匹配算法,最大匹配算法主要原理是切分出单字串,然后和词库进行比对,如果是一个词就记录下来,否则通过增加或者减少一个单字,继续比较,一直到剩下一个单字则终止,如果该单字串无法切分,则作为新词录入。其中分词代码如下:functionsegment($str){$str=preg_replace("/\s+/","",$str);$wordArray=$this->toWordArray($str);$wordArray=$this->sepSentence($wordArray);$segment=array();//开始分词foreach($wordArrayas$key=>$part){if($part[0]->wordType&T_SEP){$segment[]=$this->segmentSep($part);}elseif($part[0]->wordType&T_CHINESE){$segment[]=$this->segmentChinese($part);}else{$segment[]=$this->segmentEnglish($part);}}$result=array();foreach($segmentas$p