久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    動物識別 python 人工智能實驗

     印度阿三17 2023-01-29 發布于重慶

    構建動物識別系統

    系統分為兩部分,第一部分是初始化綜合數據庫,分為兩類,一類是間接數據庫,即不指向最終動物的信息。另一類是直接數據庫,即指向最終動物的信息。使用的是二維列表加上一個一維列表存儲key與value。第二部分為添加數據庫和識別動物,查詢的時候添加,可以有效的擴增數據庫,使功能更靈活與完善。在識別動物的時候,先在間接數據庫中完善信息,在直接數據庫中查找對應的動物,記錄信息時,使用字典記錄某個特征是否出現,這樣查詢的復雜度就為O(1)。(這一段為老師所給提示)

    思路:

    1、我選擇構建直接、間接數據庫的方式為將條件存入列表中,列表中的元素都有對應的下標,將下標作為字典的值、結果作為字典的鍵構成數據庫,這樣條件和結果就能構成呢個一一對應的關系。因此程序中的數據庫是包括列表、字典兩部分的。

    eg: 間接庫列表:奶                             哺乳動物+蹄                    羽毛

            間接庫字典:哺乳動物->0             蹄類動物->1                    鳥->2

    2、識別動物的時候,先在間接庫中進行推理,再在直接庫中推理。

    Indirdict=dict()#間接庫字典,用于從數字尋找對應結果
    Dirdict=dict()#直接庫字典,用于從數字尋找對應結果
    Indirlist=[]#間接庫列表,用于存放動物特征的集合和定義、存放這個集合對應數字
    Dirlist=[]#直接庫列表,用于存放動物特征的集合和定義、存放這個集合對應數字
    Indirnum=0#作為間接庫字典的值
    Dirnum=0#作為直接庫字典的值
    
    def change(str):#以字符串的形式輸入全部特征值,這個函數可以將字符串中的特征值識
                    #別出來,并且將所有特征值存放到一個集合中
        set1=set()#定義一個集合,存放特征值
        str1=""
        for i in range(0,len(str)):
            if(str[i]!=" "):
                str1+=str[i]
            else:
                set1.add(str1)
                str1=""
                i+=1
        return set1
    
    list1=[]#定義一個臨時列表,表示間接庫或直接庫
    dict1=dict()#定義一個臨時字典,表示間接庫字典或直接庫字典
    num1=0
    
    def Builddata(list1,dict1,num1):#num1存放在字典中,與結果相對應
        str2=input("請輸入條件,以空格隔開:")#定義一個字符串,存放用戶輸入特征值
        str2+=" "
        while(str2!="0 "):
            str3=input("請輸入結果:")#字符串,存放結果
            dict1[num1]=str3#將值與結果在字典中相對應
            set2=change(str2)#集合,將用戶輸入特征值放入此集合內
            list1.append(set2)#將特征值集合存入列表
            str2=input("請輸入條件,以空格隔開:")
            str2+=" "
            num1+=1
        return num1
    
    def Infer(animalset,list1,dict1):#推理函數,將動物條件的集合放在間接庫或直接庫中進行匹配
        for i in range(0,len(animalset)):#保證循環足夠多的次數
            for j in range(0,(len(list1))):
                if(list1[j].issubset(animalset) or list1[j]==animalset):
                    animalset.add(dict1[j])
                    #print(list1[j])
                    animalset=animalset-list1[j]
        return animalset
    
    def Rec():#識別動物
        feature=input("請輸入動物的特征(不同特征之間用空格隔開):")
        feature+=" "
        animalset=change(feature)
        #將動物的特征化為關鍵詞的集合
        animalset=Infer(animalset,Indirlist,Indirdict)
        set3=Infer(animalset,Dirlist,Dirdict)#返回經過直接規則庫過濾后的集合
        list2=list(set3)#將動物特征集合化為列表,便于確定最后剩下多少特征值
        if(len(list2)==1):
            print("這個動物是:"+list2[0])
        else:
            print("查無此動物")
    
    print("請輸入接下來操作(1.添加間接數據庫 2.添加直接數據庫 3.查詢動物 0.結束操作):")
    chose = input()
    while (chose!='0'):
        if (chose=='1'):
            print("構造間接數據庫:(輸入條件時輸入0結束構建)")
            Indirnum=Builddata(Indirlist,Indirdict,Indirnum)
            print("間接數據庫構造完成!")
            print("")
            chose = input("請輸入接下來操作(1.添加間接數據庫 2.添加直接數據庫 3.查詢動物 0.結束操作):")
        elif (chose=='2'):
            print("構造直接數據庫:(輸入條件時輸入0結束構建)")
            Dirnum=Builddata(Dirlist,Dirdict,Dirnum)
            print("直接數據庫構造完成!")
            print("")
            chose = input("請輸入接下來操作(1.添加間接數據庫 2.添加直接數據庫 3.查詢動物 0.結束操作):")
        elif (chose=='3'):
            Rec()
            print("")
            chose = input("請輸入接下來操作(1.添加間接數據庫 2.添加直接數據庫 3.查詢動物 0.結束操作):")
        else:
            print("輸入不合法,請重新輸入")
            chose = input("請輸入接下來操作(1.添加間接數據庫 2.添加直接數據庫 3.查詢動物 0.結束操作):")

    注:輸入條件、結果時,構建間接規則庫、構建直接規則庫、查詢動物時輸入形式、相同的內容必須保持一致。

     https:///show/1/781946.html

    此文是借鑒大佬博客https://blog.csdn.net/weixin_46178977/article/details/105842471,是對大佬代碼的拙劣優化。。

    能夠搞懂并改寫這樣的一個不很簡單的程序,也算是對大一身為python小小白的我一個交代了吧。。      

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲夂夂婷婷色拍ww47| 国产精品视频午夜福利| 99精品国产综合久久久久五月天| 99在线精品国自产拍中文字幕| 天堂中文官网在线| 日韩人妻无码精品系列| 亚洲人成网线在线播放VA| 日韩精品久久久久久久电影蜜臀 | 99久久国产成人免费网站| 一个人免费视频WWW在线观看| 国产精品自在线拍国产手机版| 国产尤物AV尤物在线看| 在线观看免费人成视频播放| 国产成人AV在线免播放观看新| 国产偷国产偷亚洲高清人| 人妻少妇精品久久| 国产精品日韩中文字幕| 免费无码VA一区二区三区| 精品乱码一区二区三四五区| 老熟妇高潮一区二区三区| 免费无码一区无码东京热| 亚洲一区二区三区无码久久| 免费人成视频网站在线18| 久久精品国产www456c0m| 在线中文字幕有码中文| 亚洲欧美自偷自拍视频图片| 久久超碰97人人做人人爱| 女人的天堂A国产在线观看| 男女xx00上下抽搐动态图| 久久精品国产亚洲AV麻豆长发 | 亚洲人妻一区二区精品| 久久超碰97人人做人人爱| 国产成熟妇女性视频电影| 成人午夜在线观看刺激| 最近2019中文字幕大全视频1| 办公室强奷漂亮少妇同事 | 尹人香蕉久久99天天拍| 中文字幕V亚洲日本在线电影| 黑森林福利视频导航| 亚洲精品色午夜无码专区日韩| 夜夜添狠狠添高潮出水|