犬类疾病专家系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南开大学
毕业设计
中文题目:犬类疾病专家系统的设计与实现英文题目:Design and Implementation of Dog
Disease Expert System
学生姓名
系别
专业班级
指导教师
成绩评定
2010年6月
目录
1 绪论 (1)
1.1 开发背景 (1)
1.2 开发目的 (2)
1.3 开发思路 (3)
2 系统总体说明 (4)
2.1 使用环境 (4)
2.2 系统主要功能 (4)
2.3 系统主要特点 (5)
3 开发环境与相关技术 (6)
3.1 开发环境 (6)
3.2 设计方法与技术 (6)
4 系统设计要点 (8)
4.1 系统整体结构 (8)
4.2 数据库的建立 (10)
4.3 推理机设计 (13)
4.4 人机交互界面设计 (15)
5 分析与结论 (24)
5.1 创新点 (24)
5.2 设计存在的问题 (24)
5.3 进一步改进设想 (24)
5.4 经验和体会 (24)
参考文献 (25)
致谢 (25)
附录1 相关英文文献 (27)
附录2 英文文献中文译文 (30)
摘要
结合我国养犬规模发展的实际需求,针对犬病治疗过程中存在的难题,开发一个方便用户及时了解犬病信息的犬类疾病专家系统是很有必要的。
系统使用Microsoft visual studio 2008作为开发工具开发B/S模式的专家系统,采用了“IF<症状i>THEN<疾病a>CF”知识表示方法,其中“症状i”为“疾病a”所表现的症状集合中的一个元素;“CF”为当“症状”存在是动物患疾病“疾病a”的概率。
使用SQL Server 2005 开发基于数据库的规则库和其它信息库,根据混合推理的思想设计了系统的推理机制,实现了犬病诊断的功能,给缺乏犬类疾病专业知识的人群提供了一个了解犬病知识的平台;养犬用户可以根据犬的日常行为表现提前做好宠物疾病防疫措施;小型兽医诊所可以快速查询相关犬类疾病的知识得出对应的诊疗信息。
本系统可以作为一种小型的疾病管理系统,应用在宠物医院管理模块中,也可以作为一个小型专家系统挂在其他疾病诊疗网站上,为广大用户提供方便。
关键词:专家系统;犬类疾病; 规则库;推理机
ABSTRACT
Develops a dog disease expert system to understand the dog sickness information is very necessary that unifies our country to raise the dog scale development the physical demand and the difficult problem which view of the dog sickness course of treatment.The system is based on B/S model which used the Microsoft visual studio 2008 as a development tool, and used the "IF <signs> THEN <disease > CF" knowledge representation. “Signs”is a symptom set, and it has all symptoms of adisease. “Disease”represents the name of one diseases,and every disease has its own number of symptoms. “CF”is the probability of the disease to be the result of inference when the symptom is presented.Development the database regular storehouse and other databases using SQL Server 2005, has designed system's inference mechanism according to the mix inference's thought that realizes the dog sickness diagnosis function. Through the system, to provide professional knowledge among the lower platform to understand canine diseases; do g users can keep daily behavior dog pet disease prevention measures ahead of time; Small Animal Clinic, dogs can quickly find the relevant knowledge of the disease information obtained corresponding treatment.This system may applies in pet hospital management module or other diseases diagnose and treat in the website with a small disease management system or small expert system to provides the convenience for the user community.
Key words: Expert system; Dog disease; Rule base; Inference engine
犬类疾病专家系统的设计与实现
骆乾荣
(天津农学院 计算机科学与信息工程系)
1 绪论
1.1 开发背景
随着时代的不断发展,人们在追求物质生活的同时,精神生活也不断得到提高。
其中饲养宠物成为许多家庭必不可少的一项娱乐活动。
而在这些饲养宠物的家庭中,养狗的家庭占了40-60%[1]。
犬的某些疾病,不仅严重威胁犬的健康,而且也严重危害人和其他动物的健康,其中狂犬病的影响最为严重。
狂犬病是由狂犬病病毒引起的人兽共患中枢神经系统传染病,是迄今为止人类唯一病死率高达100%的急性传染病。
据调查[2]显示,20世纪50年代以来,我国出现了三次狂犬病高峰(图1),因狂犬病死亡的人数最高达到年7037人。
近年来的年报告狂犬病死亡人数均在2400例以上,仅次于印度,居全球第二位;一直位于我国各类传染病报告死亡数的前三位。
狂犬病的流行不但严重威胁人民群众的生命安全,而且造成了严重的心理影响和沉重的经济负担,不利于社会的和谐发展,影响了我国的国际形象。
国内外的经验都证明狂犬病可以预防控制,世界卫生组织曾提出倡议,到2020年消除人间狂犬病。
犬类疾病防疫与治疗的重要性由此可见。
犬类疾病和其他动物疾病一样,可以有内科病、外科病、传染病、寄生虫病、营养代谢病、产科病和中毒病等,然而,犬类疾病又有其特殊性。
产科病、营养代谢病和一些外科病等在犬病的诊疗中有特殊的意义,
它们的病因和发生
图1 1950-2008年中国狂犬病死亡人数变化趋势
情况在一定程度上与其他动物不同,因而造成犬病发生的复杂性和诊断治疗中的困难。
对犬类疾病的控制依赖于准确的诊断,然而只有少数人具有足够的知识与经验,能对犬病进行充分、有效的诊断与治疗。
从另一个角度说,只有少数专家具有丰富的经验和知识,我们渴望能得到这些专家知识,并能很方便地把它运用于我们日常的犬的疾病诊断与治疗中。
医学诊疗专家系统就是运用专家系统的设计原理与方法,模拟医学专家诊断疾病的思维过程,实现疾病诊断和治疗[3]。
专家系统是一个智能的计算机程序,它利用专家知识和经验解决领域难题。
在过去的几十年发展中,专家系统已经成功地应用于各个领域,特别是疾病诊断领域专家系统的研究与应用更是呈现出蓬勃发展的景象,动物疾病诊断专家系统也位于其列。
应用专家系统的知识对疾病进行模拟诊断,首先应该建立系统的逻辑推理模型,然后根据模型编写开发程序,利用计算机有效地实现疾病诊断的功能[4]。
国外有许多有关动物疾病诊断的专家诊断系统,我国的学者近年来对动物疾病诊断专家系统也做了一些研究,并有一些产品出现,但是,犬病诊断专家系统的研究还存在不足,当今出现的犬类疾病诊断的专家系统都还只限于某类疾病上[5]。
鉴于这种情况,结合研究课题,提出了开发犬类疾病专家系统的计划。
开发专家系统的方法有很多,.NET是一个全新的跨语言开发平台,提供了一致的面向对象的编程环境。
.NET Framework 3.5为Web和Microsoft windows 客户端应用程序提供最佳运行效果的运行库环境。
C#作为.NET的主要开发语言,是一种简单、现代、面向对象和类型安全的编程语言,依.NET而产生,与.NET 能进行完美结合。
应用.NET开发专家系统越来越被大众接受。
1.2 开发目的
犬病的预防和治疗在养犬的过程中是非常重要的一环,做好犬病的预防和治疗工作,不仅能防止发生犬病,降低发病率和病死率,从而保证犬的健康,而且经过及时、合理的治疗,使犬免受疾病侵害,减少经济损失,有利于犬的正常生长、发育和提高生产性能。
利用计算机解决犬类疾病诊断的逻辑推理,实现犬类疾病在线诊断,为专业知识较低的人群提供了解犬类疾病的平台;养犬用户可以根据饲养犬的日常行为表现提前做好宠物疾病防疫工作;小型兽医诊所可以快速查询相关犬类疾病的知识得出对应的诊疗信息。
开发犬类疾病专家系统对犬类疾病防疫工作具有一定的理论与实践意义。
1.3 开发思路
针对基层生产实践中存在犬类疾病长期得不到很好的控制、基层养殖单位对专家经验与知识渴望的实际情况和普通养犬家庭无法及时获取专家知识的情况,本次课题本着结合我国国情,以实际应用为立足点,成功开发出犬类疾病专家系统。
查阅专家系统的相关资料,明确基于构件体系结构的专家系统结构,确定系统的整体结构。
传统的专家系统基本结构一般包括以下6部分:知识库、综合数据库、推理机、解释部分、人机接口和知识获取,如图2所示。
图2 专家系统体系结构图
在设计中应用传统的专家系统构造模式来处理本系统的架构设计,采用以数据库为主体的构造模式,把传统的专家系统中除推理机和人机界面之外的部分以数据库的形式来表示,在推理过程中,推理机通过不断地访问各种数据库中的事实、规则以及它们的属性来获得最终的结论。
确定好系统的总体结构以后,开始进行知识获取的设计。
犬类疾病诊断知识的获取分三个阶段进行。
首先,通过查阅相关书籍或者使用一切可利用资源,整理出原始知识,完成知识的初步获取。
其次,就要对原始知识进行加工,并进行知识的模糊化处理。
最后,根据专家的知识和经验,对知识进行审核评价,确定建立最后的知识。
专家系统的推理机是专家系统设计的核心部分,推理机根据用户提供的信息,联合规则库中的规则进行推理,最后得到诊断的结果。
因此,选择一个适合的推理机制是非常重要的。
针对本次课题,根据知识的表现方式,选择合适的推理机制,并建立推理模型。
完成专家系统中知识获取和推理机的工作后,开始进行专家系统的人机交互界面的设计和实现。
专家系统的人机交互界面是人与系统进行交流的窗口,在设计上应体现出犬病诊断功能和防治功能,具有疾病诊断、结果显示、相关信息查询和维护知识库等功能的特点。
本次设计本着专家系统人机交互界面应具有的特点,设计简洁、美观,符合人性化且易于掌握和实用性强的人机交互界面。
为了满足初次使用系统的用户,系统还设计了在线帮助的功能,帮助用户在一开始就能够使用系统进行工作。
2 系统总体说明
2.1 使用环境
2.1.1 服务器端配置要求
2.1.1.1 硬件要求
内存:512 MB(推荐 1 GB 或更高);
硬盘:740MB以上;
显示:VGA 或更高分辨率显示器;
处理器:500 MHz 或更快处理器(推荐 1 GHz 或更快);
驱动:CD-ROM 驱动器。
2.1.1.2 软件要求
操作系统:Windows 2000 Professional或更高任意中文版操作系统;
数据库:SQL Server 2005数据库运行于服务器端;
浏览器:Microsoft Internet Explorer 5.0 或更高版本。
2.1.2 客户端配置要求
2.1.1.1 硬件要求
硬件要求:一般能进行网页浏览的计算机即可。
2.1.1.2 软件要求
操作系统:Windows 98以上中文版操作系统;
浏览器:Microsoft Internet Explorer 6.0或更高版本。
2.2 系统主要功能
2.2.1 犬病诊治
根据操作者提供的病因、症状、剖检变化信息对病犬进行诊断,并做出初诊或确诊。
如果根据操作者提供的资料电脑不能确诊时,则提示最有可能的几
种疾病。
操作者提供的资料越准确、越多,则诊断结果越准确。
用户还可根据电脑提示的实验室确诊方法进行实验室检查,确诊疾病。
2.2.2 治疗方案
操作者完成疾病诊断的信息输入环节后,系统经过推理诊断,输出诊断的结果。
诊断结果显示了疾病的基本信息,如病原、症状、诊断、治疗和防御等。
操作者通过阅览信息,可以了解到犬患有疾病的治疗方案,根据治疗方案从而达到治疗的效果。
2.2.3 知识检索
系统中提供了多种临床常见犬病的详细资料(包括疾病的病因、症状、剖检变化、防疫措施等),同时还提供了犬病诊疗中常用到的手术详细资料(包括器械、手术部位、保定与麻醉、术后护理等),操作者可以通过输入查询条件,选择查询方式进行检索。
2.2.4 知识维护
系统是基于B/S结构建立的,为了保证知识的完整和更新,设置了知识维护的功能。
系统设置了后台管理模块,管理员通过登录管理模块,对知识进行更新维护,将近期新发现的疾病添加到知识库中,或者对以往数据库中的疾病信息存在的不足进行修改和完善。
2.2.5 在线帮助
为了让用户能尽快掌握系统的操作流程,系统设计了在线帮助模块。
通过在线帮助,用户可以了解系统的使用方法,查询犬的一些基本常识(如犬的生理指标)、犬病诊断的一般技术、犬病的诊断标准等信息。
2.3 系统主要特点
2.3.1 疾病诊断
本系统主要针对大众用户不了解犬的疾病信息,导致犬患病时不能及时治疗的需求,开发的犬类疾病专家系统。
犬类疾病专家系统采用用户输入信息的方式获得外部信息,然后推理实现疾病诊断的功能,并将诊断的结果返回给用户知晓。
当用户想继续进行诊断时,可选择继续诊断或重新诊断。
如果是继续诊断的话,则上一次输入的信息会被作为匹配的条件,否则前面输入的所有信息将清空。
2.3.2 图谱跟踪
系统中为每一种症状配置了图谱,以直观、明了的方式呈现给用户,为用
户提供参考。
当用户需要查询某种症状的表现形式,可以通过观察图谱与犬的表现形式的异同判断犬的症状。
3 开发环境与相关技术
3.1 开发环境
系统的开发环境是软件开发成功的保证。
主要分为硬件和软件两个部分。
3.1.1 硬件环境
内存:512 MB(推荐 1 GB 或更高);
硬盘:740MB以上;
显示:VGA 或更高分辨率显示器;
处理器:500 MHz 或更快处理器(推荐 1 GHz 或更快);
驱动:CD-ROM 驱动器。
3.1.2 软件环境
操作系统:Microsoft Windows XP Professional;
文字处理:Mierosoft Offiee 2007。
系统开发工具:Microsoft Visual Studio 2008;
数据库开发工具:Microsoft SQL Server 2005;
图片处理工具:Adobe Photoshop CS3、iSee图片专家、ACDsee。
3.2 设计方法与技术
3.2.1 设计方法
首先,收集犬类疾病相关资料,对资料信息进行分类整理,确定疾病信息的知识结构,结合专家系统的标准结构,建立专家系统所需要的数据库。
本次设计专家系统的数据库由知识库和综合数据库组成。
知识库用于存放专家领域相关知识,数据量可能会极其庞大。
鉴于SQL Server 2005[6]数据库的易管理性、安全性等优势,使用SQL Server 2005开发专家系统数据库,建立基于数据库的知识库,对疾病知识进行存储和管理,如图3中a所示。
通过对知识的分析、整理,对疾病症状进行分类处理,建立症状与疾病之间的关系,运用混合推理的思想,建立基于规则产生式的推理模型,编写推理程序作为专家系统的诊断推理机制,实现专家系统的推理诊断功能,如图3中b所示。
完成专家系统的数据库建立与推理机的设计后,开始建立数据库与推理机交互的桥梁。
鉴于前面章节介绍的Microsoft Visual Studio 2008(下面简称VS 2008)的功能特点,我们使用VS 2008创建系统的人机交互界面,使用C#编程语言作为系统的主要开发语言,编程实现数据库与推理机之间数据的交互,实现专家系统的诊断功能,完成专家系统整体结构的组建 (如图4所示)。
3.2.2 设计技术 3.2.2.1 技术
[7]是Microsoft 公司推出的新一代建立动态Web 应用程序开发平台,是一种建立动态Web 应用程序的新技术。
它是.NET 框架的一部分,可以使用任何.NET 兼容的语言(如Visual Basic 、C#)编写 应用程序。
当建立Web 页面时,可以使用 服务器端控件来建立常用的UI (用户界面)元素,并对它们进行编程来完成一般的任务,这可以把程序开发人员的工作效率提升到与其他技术都无法比拟的程度。
是目前主流的网络开发技术之一, 应用程序采用页面脱
a 数据库开发
b 建立基于规则推理的推理机模型 图3 系统知识库和推理机的实现
知识工程师
离代码技术和缓存机制,提高系统的运行性能。
3.5版不仅在语言核技术上改进了原有 2.0的不足,并提供了很多新的控件和功能。
使用新增的服务器控件和包含新增功能的现有控件,可以轻松、快捷地创建网页和应用程序。
3.2.2.2 技术
有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。
包含用于连接到数据库、执行命令和检索结果的.NET Framework提供程序。
对象大体分成两大类:一类是包含了Command对象、DataReader对象以及DataAdapter对象的与数据库直接连接的联机对象,通过这些类对象,可以在应用程序里完成连接数据源以及数据维护等相关操作。
另一类则是DataSet对象、DataRelation对象等与数据源无关的断线对象。
其中DataSet对象是的核心对象[8]。
可以把DataSet想成内存中的数据库,它就像是离线的数据一样。
使用DataSet,可以使程序员在编写程序时可以屏蔽数据库之间的差异获得一致的编程模型。
的设计原理意于提供分布式应用程序一种合适的解决方案,用户可以利用连接对象取得数据源里所需的原始数据,并且利用断线对象,一次返回给前端用户,前端用户在处理变动数据的过程中,并不需要保持与数据库的连接,当对所有数据完成变动操作之后,则再一次通过连接对象将数据返回更新到数据库,因为不需要时时保持与数据库的连接,所以能够大大的降低所消耗的系统资源。
在.NET[9]中为存取任何类型的数据提供了一个统一的框架,它适用于WinForms应用程序、应用程序和Web Servers。
4 系统设计要点
4.1 系统整体结构
在1.3介绍了专家系统的基本体系结构包含六个部分:知识库、综苔数据库、推理机、解释部分、人机接口和知识获取。
本系统在设计中除了按照传统的专家系统构造模式来处理,还采用了以数据库为主体的构造模式,把传统的专家系统中除推理机和人机界面之外的部分以数据库的形式来表示,在推理过程中,推理机通过不断地访问各种数据库中的事实、规则以及它们的属性来求证最终的结论。
4.1.1 用户界面
用户界面是用户同系统交流的通信机制。
通过界面,用户通过输入病犬的症状信息,回答系统的提问,完成犬的疾病诊断;查看相关资料和信息;系统为用户提供相关信息。
4.1.2 解释机
基于规则的系统的一个最大特色是其具有解释功能,它可以向用户解释系统为什么采用了一种规则,得出结论的依据是什么以及为什么向用户提问一定的问题等。
4.1.3 推理机
推理机是系统根据用户提供的信息进行推理,最终得出结论的模块。
4.1.4 其它数据库
该库由3个主要的数据库组成。
动态数据库是系统在运行期间产生的一个临时数据库,用于存贮用户提供的事实、系统激活的规则、系统产生的中间解以及系统中断的推理过程等。
多媒体数据库是为适应信息及其相关技术的迅速发展和应用而添加于专家系统中的辅助诊断信息库,它提供了与犬类疾病诊断和治疗有关的图片资料。
防治措施库是存放防治措施和其它与犬疾病相关的文字内容的数据库。
4.1.5 知识库
在本系统中,采用了将事实库作为知识库一部分的构造方法,因为犬类疾病诊断知识的特殊性,我们把事实库中的事实作为界面上为用户提供的参考答案,因此,事实库中的所有事实都会在规则库中有完全匹配的规则,其实际作用相当于规则的前件库。
规则库是存放规则的所在。
4.1.6知识编辑器
系统采用了基于数据库的系统构建模式,系统中的知识库和所有数据库都是完全独立于系统的其它模块之外,知识编辑器是一个实施知识库的修改、删除、增加的模块。
根据本次设计的最初目标,我们初步建立如错误!未找到引用源。
所示的犬病专家系统体系结构。
4.2 数据库的建立
4.2.1知识的结构
对犬类疾病诊断知识进行详细的分析,并且完成对知识的结构划分,是设计推理策略和建立知识库的前提条件。
因为一种疾病可能对应多种症状,而一种症状可能引起多种疾病,通过对疾病的症状进行全面的考察与分析,对所有症状进行分类,形成了症状之间的层次关系,结构如图6所示。
……
图5 根据症状对知识进行分类示意图
4.2.2知识库的建立
4.2.2.1 事实库
事实库包含两个方面的内容:症状库和结论库(疾病库)。
症状库:症状分为两个级别,一个是一级症状即为症状组,另一个为二级症状即所有症状事实。
由于症状的两个级别之间存在一定的联系,我们使用关联数据库对其进行管理,统一对其进行编号,表之间通过编号建立联系。
一级症状和二级症状的表结构如图7和图8所示。
结论库:和症状一样,我们也将疾病进行分类,一个是一级结论即疾病所属的科室(图10),另一个就是二级结论(图11),二级结论对应犬类疾病的每一种疾病的详细信息。
两个表之间同样存在一定的联系,我们使用关联数据库对其进行管理,统一对其进行编号,库之间通过编号建立联系。
图6 一级症状表结构
图7 二级症状表结构
图9 一级结论表结构图
……
图8 根据科室对知识进行分类示意图
4.2.2.2 规则库
规则库中存贮的是用于疾病诊断的专家知识,这种知识以IF<前提>THEN<结论>Weight 形式表示。
在犬类疾病诊断专家诊治系统中,前提主要指症状,结论则主要是疾病,Weight 是有前提所描述的症状时疾病发生的概率。
库中疾病的所有症状对应的Weight 值之和为100。
规则中表的结构如图12所示。
4.2.2.3 治疗措施库
由于我们已经将每种疾病对应的信息放在了结论库中,因此,这里的治疗措施库主要是指外科手术库。
外科手术库用于存放手术的相关信息。
用户可以根据自己的需要查询手术的名称,获取手术的具体实施办法。
手术库中表的结构图如图13所示。
图10 二级结论表结构图
图11 规则表结构图
4.2.3 其他数据库
本系统的设计是运行在服务器端,通过浏览器使用的犬类疾病专家系统,因此对专家系统的数据维护管理需要固定的人员来完成。
我们设定了一个用户表用于存放管理员的信息,其结构图如图14所示。
4.2.4 系统中表间关系图
通过SQL Server 2005中提供的可视化方法建立数据库中表间关系图如图15所示。
4.3 推理机设计 4.3.1 混合模式介绍
在动物疾病诊断过程中,专家所采用的推理策略是一种混合推理,首先,
图12 手术表的结构图
图13 用户数据库结构图
图14 数据库中的表间结构关系图
专家通过对疾病诊断的一般信息的获取和动物患病后所表现出的主要症状的观察,形成一个假设结论,然后通过进一步的信息获取来验证他已经形成的假设结论。
专家系统既然是对人类专家的作用的模拟和计算机实现,就必须在解决问题时按照专家解决的方式去进行实际操作,从推理策略上对专家思维的模拟是专家系统智能化的重要体现。
所以,犬类疾病专家系统诊断的推理策略采用了混合推理方式。
4.3.2 推理机的实现
前面我们已经对知识库的建立做了详细的介绍,在建立规则库时,我们建立了if<症状>then<疾病>Weight结构的产生式,其中Weight为激活该规则时的影响权重。
推理的过程也就是一个匹配选择的过程。
在进行推理的时候,我们建立如下的匹配流程:
输入症状信息;
对症状信息进行分割,产生临床症状数组。
结构:array1[临床症状1,临床症状2,……,临床症状n];
使用for循环,将array1中的临床症状与症状库中的症状信息进行匹配,规则为:if<临床症状i匹配症状j>then<症状j>,即如果临床症
状与症状库中的某一症状j匹配成功了,即记录症状j的信息,这里
指的是症状的编号。
结构:array2[症状1,症状2,……,症状m];
将array2中数据与规则库进行匹配,规则:if<症状>then<疾病>Weight。
如果匹配成功的话,同样记录匹配的信息。
包括疾病编号,
症状编号和权值,将结果保存在表table1中;
结构:table1{可疑疾病1,可疑疾病2,……,可疑疾病x}
可疑疾病d{ [症状di,Weightdi]} (其中i为1到m中的任意数,d为1到x的任意数)
对table1中的数据根据疾病编号进行排序,然后对相同编号的行的权值进行处理,计算影响可疑疾病的所有症状在所有的症状中所占的比
重,保存在table2中;
结构:table2{[可疑疾病1,比重v1],……,[可疑疾病x,比重vx] } 使用类似的方法计算匹配成功的症状信息在影响该疾病的所有症状中的比重V;。