1.在与代码文件相同路径下建立 features.txt 文档:

存入:

有毛发
有奶
有羽毛
会飞
会下蛋
吃肉
有犬齿
有爪
眼盯前方
有蹄
黄褐色
暗斑点
黑色条纹
长脖子
长腿
不会飞
有黑白二色
会游泳
善飞
哺乳动物
鸟
蹄类动物
反刍动物
食肉动物
金钱豹
虎
长颈鹿
斑马
鸵鸟
企鹅
信天翁2.代码
fp1 = open("features.txt", encoding='UTF-8')
lines1 = fp1.readlines()
leng = len(lines1)def rules():test = 1list3 = list2.copy()while test == 1:test = 0if ("有毛发" in list3 or "有奶" in list3) and "哺乳动物" not in list3:print("使用规则:有毛发 or 有奶-->哺乳动物")test = 1list3.append("哺乳动物")print("当前动态数据库:", list3)elif "有羽毛" in list3 and "鸟" not in list3:print("使用规则:有羽毛-->鸟")test = 1list3.append("鸟")print("当前动态数据库:", list3)elif "会飞" in list3 and "会下蛋" in list3 and "鸟" not in list3:print("使用规则:会飞 and 会下蛋 --> 鸟")test = 1list3.append("鸟")print("当前动态数据库:", list3)elif "吃肉" in list3 and "食肉动物" not in list3:print("使用规则:吃肉-->食肉动物")test = 1list3.append("食肉动物")print("当前动态数据库:", list3)elif "有犬齿" in list3 and "有爪" in list3 and "眼盯前方" in list3 and "食肉动物" not in list3:print("使用规则:有犬齿 and 有爪 and 眼盯前方-->食肉动物")test = 1list3.append("食肉动物")print("当前动态数据库:", list3)elif "哺乳动物" and "有蹄" in list3 and "蹄类动物" not in list3:print("使用规则:哺乳动物 and 有蹄-->蹄类动物")test = 1list3.append("蹄类动物")print("当前动态数据库:", list3)elif "哺乳动物" and "反刍动物" in list3 and "反刍动物" not in list3:print("使用规则:哺乳动物 and 反刍动物-->蹄类动物")test = 1list3.append("蹄类动物")print("当前动态数据库:", list3)elif "哺乳动物" in list3 and "食肉动物" in list3 and "黄褐色" in list3 and "暗斑点" in list3:print("使用规则:哺乳动物 and 食肉动物 and 黄褐色 and 暗斑点 -->金钱豹")list3.append("金钱豹")test = 1print("当前动态数据库:", list3)return list3[-1]elif "哺乳动物" in list3 and "食肉动物" in list3 and "黄褐色" in list3 and "黑色条纹" in list3:print("使用规则:哺乳动物 and 食肉动物 and 黄褐色 and 黑色条纹 -->虎")list3.append("虎")test = 1print("当前动态数据库:", list3)return list3[-1]elif "蹄类动物" in list3 and "长脖子" in list3 and "长腿" in list3 and "暗斑点" in list3:print("使用规则:蹄类动物 and 长脖子 and 长腿 and 暗斑点 -->长颈鹿")list3.append("长颈鹿")test = 1print("当前动态数据库:", list3)return list3[-1]elif "蹄类动物"in list3 and "黑色条纹" in list3:print("使用规则:蹄类动物 and 黑色条纹 -->斑马")list3.append("斑马")test = 1print("当前动态数据库:", list3)return list3[-1]elif "鸟"in list3 and "长脖子"in list3 and "长腿"in list3 and "不会飞"in list3 and "有黑白二色"in list3:print("使用规则:鸟 and 长脖子 and 长腿 and 不会飞 and 有黑白二色 -->鸵鸟")list3.append("鸵鸟")test = 1print("当前动态数据库:", list3)return list3[-1]elif "鸟"in list3  and "会游泳"in list3 and "不会飞"in list3 and "有黑白二色" in list3:print("使用规则:鸟 and 会游泳  and 不会飞 and 有黑白二色 -->企鹅")list3.append("企鹅")test = 1print("当前动态数据库:", list3)return list3[-1]elif "鸟"in list3 and "善飞" in list3:print("使用规则:鸟 and 善飞 -->信天翁")list3.append("信天翁")test = 1print("当前动态数据库:", list3)return list3[-1]else:print("匹配错误")return 0print("----------知识数据库如下----------")
i = 0
list1 = []
list2 = []for line in lines1:line = line.strip('\n')list1.append(line)if i == leng - 1:breakprint("{}:{}".format(i, line))i += 1choice1 = input("请输入已知知识序号并以空格隔开")
temp = choice1.split(" ")
print("选中的事实:")
for i in range(len(temp)):list2.append(list1[int(temp[i])])
print(list2)
result = rules()
print(result)

人工智能产生式系统动物识别实验python相关推荐

  1. c语言产生式系统动物识别系统,简单动物识别系统的知识表示实验报告

    简单动物识别系统的知识表示实验报告 一. 实验目的: 1. 2. 理解和掌握产生式知识表示方法. 能够用选定的编程语言实现产生式系统的规则库. 二. 实验内容和要求: 1.以动物识别系统的产生式规则为 ...

  2. 动物识别专家系统PYTHON

    能搜到这个文章的,估计你就是为了想找篇现成的系统抄抄了,我也废话不多说好叭. 下面这些是我们当时的要求和加分项: 1.建立一个动物识别系统的规则库,用以识别虎.豹.斑马.长颈鹿.企鹅.鸵鸟.信天翁等7 ...

  3. 动物识别系统 python实现+UI

    完整代码在最下方 实验目的 利用动物识别系统来验证基于符号的推理,通过实验理解简单的专家系统所包含的模块:人机结构,知识获取机构,知识库及管理系系统,推理机,解释机构,数据库及管理系统". ...

  4. 人工智能导论-动物识别专家系统

    动物识别专家系统实验 这个人工智能导论实验可算是折磨了我许久,关键是我一直想不明白该如何推理. 在某天的晚上,我去对象那里上晚自习,突然灵感大开.由于电脑没有电了,我就手绘了一个系统结构图,并且想到了 ...

  5. java动物识别_java编写的专家系统(人工智能)动物识别

    import java.awt.*; //包含用于建立用户界面和绘制图形图像的全部类 import java.awt.event.*;   //提供处理由 AWT 组件所激发的各种事件的接口和类人工智 ...

  6. 【毕业设计】深度学习动物识别系统 - python 卷积神经网络 机器视觉

    文章目录 0 前言 1 背景 2 算法原理 2.1 动物识别方法概况 2.2 常用的网络模型 2.2.1 B-CNN 2.2.2 SSD 3 SSD动物目标检测流程 4 实现效果 5 部分相关代码 5 ...

  7. 【AI】基于产生式规则的动物识别系统

    产生式系统 --动物识别系统 一.实验目的 二.实验原理 三.算法设计 四.系统代码设计 一.实验目的 [实验内容] 开发一个可以识别虎.金钱豹.斑马.长颈鹿.企鹅.鸵鸟.信天翁等7种动物的产生式系统 ...

  8. 动物识别系统代码python_动物识别 python 人工智能实验

    构建动物识别系统 系统分为两部分,第一部分是初始化综合数据库,分为两类,一类是间接数据库,即不指向最终动物的信息.另一类是直接数据库,即指向最终动物的信息.使用的是二维列表加上一个一维列表存储key与 ...

  9. 人工智能实验-动物识别系统

    ** 实验一:产生式系统实验 ** 一.实验目的: 熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机制,以及基于规则推理的基本方法. 二.实验内容: 设计并编程实现一个小型产生式系统(如分类.诊 ...

  10. python动物专家系统_动物识别专家系统 实验报告

    学 号 XXXXX 姓 名 XXXXX 实验名称 动物识别专家系统 实验目的 本实验的主要目的是熟练使用推理方法, 进行编程完成相应的功 能. 本次试验的预期功能是在系统可以像使用者提出问题, 然后系 ...

最新文章

  1. 暑期集训1:C++STL 练习题D:HDU-1509
  2. 微信红包如何抢大包、直播反垃圾、老骗局翻新……这一期宅客周刊你值得拥有...
  3. centos7配置br0_centos 7.2 网卡配置文件 及 linux bridge的静态配置
  4. 因脉脉上的匿名消息,拼多多员工被开除了!
  5. 获取周/月的第一天最后一天
  6. java stream 多个filter_恕我直言你可能真的不会java第3篇:Stream的Filter与谓词逻辑...
  7. 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析
  8. python基础逻辑判断语句(九)
  9. 杭电2066一个人的旅行
  10. python中的scipy基础知识_Python机器学习(五十二)SciPy 基础功能
  11. 实习技术员的基本功(十)
  12. 制作纯天然无污染的微软官方win10Pe(超详细)
  13. 如何测试串口线是否发生故障
  14. 使用多个可选过滤器过滤 Eloquent 模型
  15. android 获取电池最大容量,地表最大容量:Energizer推出16000mAh电池安卓机,续航长达一个周...
  16. 飞机大战代码(高仿),完美复原原游戏,好玩到停不下来
  17. 【目标跟踪 SOT】SiamFC -用于对象跟踪的全卷积孪生网络
  18. 慢聊Go之Go常见的Web 开发框架
  19. 为什么强烈推荐 Java 程序员使用 Google Guava 编程!
  20. 黑客技术论坛为什么越来越少了?

热门文章

  1. python开源管理系统_基于Python开源框架Flask的地震信息网络运维管理系统实现
  2. STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
  3. 企业实战——Ansible自动化运维基础知识
  4. Windows 下 Apple Mobile Device Support 安装失败导致 iTunes 无法连接分析和解决方案
  5. ubuntu 18.04虚拟机访问Windows磁盘或文件夹
  6. FPGA信号处理系列文章——DDS的性能和误差分析
  7. Hive SQL行列转换
  8. 如何计算某一天是星期几?—— 蔡勒(Zeller)公式
  9. 数据仓库工具hive面试题集锦
  10. Java八大基本数据类型