人工智能的图像识别

该代码实现了一个基于Python的数据处理程序,用于读取动物特性、规则库和匹配结果的文本文件,并通过用户输入的动物特征进行正向和逆向匹配推理,以确定可能的动物类别。用户可以逐步增加特征,系统会根据匹配概率给出可能的动物类别。
摘要由CSDN通过智能技术生成
import pandas as pd
# 读取保留字典形式的动物特性信息

with open(r"animal_data.txt", "r", encoding='utf‐8') as f:  # 打开文件

    data = f.read()  # 读取文件

dic1 = eval(data)

print("字典形式的动物特性信息",dic1)

结果如下:

with open(r"rule_data.txt", "r", encoding='utf‐8') as f:  # 打开文件

    rule_data = f.read()  # 读取文件

rule_dic = eval(rule_data)

print("规则库特征数据",rule_dic )

结果如下:

with open(r"rule_result_data.txt", "r", encoding='utf‐8') as f:  # 打开文件

    result_data = f.read()  # 读取文件

result_dic = eval(result_data)

print("规则库匹配数据",result_dic )

结果如下:

# 综合数据库

def input1():

    answer_features = input('\n请选择动物的特征编号,用英文逗号分开,回车结束输入:')

    try:

        #print(answer)

        answer_features = list(answer_features.split(','))

        new_answer = [int(x) for x in answer_features]

        

        return new_answer

    except Exception:

        print('您输入的是数字格式有误')
# 正向匹配推理机
use_rules  = []  # 保存可能类别————能够与特征进行匹配的规则,即标记哪些规则被使用了
def rule_Find_Forward(features,rule,rule_result,animal_dic): 
    if len(features) < 6 :

        q = 1 #  存放是否停止判断的 参数

        global Data

        Data = []

        I = []

        N =[] # 存放要缺失的特征编号

        num = [] # 存放目标类的的位置

        for j in  range(1,len(rule_dic)+1) : # 遍历规则库

            n = []

            c= 0

            for i in range(len(rule_dic[j])): # 循环每一个匹配规则

                if rule_dic[j][i] not in features : # 判断这个类别规则中与输入规则是否有相符合的

                    n.append(rule_dic[j][i])

                else: 

                    c += 1

            N.append(list(n))

            num.append(j) # 并添加信息位置

            Si = c/len(rule_dic[j])

            I.append(Si)

            #n = list(set(n)) # 去重

            #n.sort() # 排序,因为规则是从小到大排序的

            # 输出相似度

        Data = pd.DataFrame({'可能类别':num,'缺失特征':N,'相似度':I})

        if sum(Data['相似度'] == 1) > 0:

            col1 = Data.iloc[Data['相似度'].values == 1,0]

            for i in col1:

                #[dict_before[nn] for nn in n],

                print('属于的类别为====>',dic1[result_dic[i]]) # 匹配可能属于的类别

            #print('最终类别为',Data.iloc[Data['相似度'].values == 1,0])

        elif sum(Data['相似度'] == 1) > 0 or sum(Data['相似度'] == 1) < 1:

            #print('最终类别为',Data.iloc[Data['相似度'].values > 0,0])

            col = Data.iloc[Data['相似度'].values > 0,0]

            for i in col:

                #[dict_before[nn] for nn in n],

                print(dic1[result_dic[i]]) # 匹配可能属于的类别
             #*********请补全代码-end**********#
        if features == [26]:
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值