人工智能示例之基于规则的专家系统(动物识别)的python完整代码

06-02 1030阅读

        其实我在“人工智能原理”的专栏中是比较系统的讲解过专家系统的,包括:专家系统的基本概念、一般结构、知识获取、检测与组织管理、推理流程、神经网络在专家系统中的应用等,但是确实没有一个完整的示例。

1.专家系统的基本概念解析:专家系统的基本概念解析——基于《人工智能原理与方法》的深度拓展_专家系统的本质-CSDN博客 

2.专家系统的一般结构解析:专家系统的一般结构解析——基于《人工智能原理与方法》的深度拓展-CSDN博客 

3.专家系统的知识获取、检测与组织管理:专家系统的知识获取、检测与组织管理——基于《人工智能原理与方法》的深度解析_专家系统 知识获取-CSDN博客 

4.专家系统的推理流程深度解析:专家系统的推理流程深度解析_专家系统推理过程-CSDN博客 

5.神经网络在专家系统中的应用:神经网络在专家系统中的应用:从符号逻辑到连接主义的融合创新_符号系统 知识库 神经网络-CSDN博客 

        本文仅对专家系统进行简单举例,不涉及复杂流程,并对示例的代码进行深度讲解,以期大家对专家系统运行过程的深度理解。

        如想了解专家系统中的复杂流程,如知识表示形式的不同、知识的获取与建模、推理机制的设定、规则匹配算法、规则冲突的消解机制等,可以看上面的文章,会有详细说明。

一、代码即运行结果

(一)python代码示例

        以下代码实现了一个面向动物识别领域的采用正向推理机的基于规则的专家系统,用于模拟人工智能中的符号推理过程。代码分为知识库、推理机、示例输入和解释模块四个部分。完整代码如下:

# 知识库:规则列表(前提-结论)
rules = [
    {
        "name": "哺乳动物-有毛发",
        "premise": ["有毛发"],
        "conclusion": "哺乳动物"
    },
    {
        "name": "鸟类-有羽毛",
        "premise": ["有羽毛"],
        "conclusion": "鸟类"
    },
    {
        "name": "食肉动物-哺乳动物+吃肉",
        "premise": ["哺乳动物", "吃肉"],
        "conclusion": "食肉动物"
    },
    {
        "name": "老虎-哺乳动物+食肉动物+黄褐色+黑色条纹",
        "premise": ["哺乳动物", "食肉动物", "黄褐色", "黑色条纹"],
        "conclusion": "老虎"
    }]
# 推理机:正向推理
def forward_chaining(facts, rules):
    known_facts = set(facts)
    inferred = set()
    while True:
        updated = False
        for rule in rules:
            if all(p in known_facts for p in rule["premise"]) and rule["conclusion"] not in known_facts:
                known_facts.add(rule["conclusion"])
                inferred.add(rule["name"])
                updated = True
        if not updated:
            break
    return known_facts, inferred
# 示例输入:用户提供的事实
user_facts = ["有毛发", "吃肉", "黄褐色", "黑色条纹"]
result_facts, result_rules = forward_chaining(user_facts, rules)
# 解释模块:展示推理路径
print("已知事实:", user_facts)
print("推理结论:", result_facts - set(user_facts))
print("触发规则:")
for rule_name in result_rules:
    for rule in rules:
        if rule["name"] == rule_name:
            print(f"- {rule['name']}: {', '.join(rule['premise'])} → {rule['conclusion']}")
            break

(二)代码简单说明

(1)知识库部分定义了一个规则列表,每个规则有名字、前提和结论。比如第一个规则是“哺乳动物 - 有毛发”,前提是“有毛发”,结论是“哺乳动物”。这部分就是存储了专家系统的规则。

(2)推理机的正向推理函数forward_chaining。正向推理的基本思路是从已知事实出发,逐步应

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码