ITC2 – TD 1-3

Voici un TD « IA & BDD » dans le contexte du « Machine Learning » sur les bases de données se décomposant en deux parties. Le premier consiste à mettre en place un code qui crée une base de données qui sera remplie à l’aide de questions posées à l’utilisateur (donner des objets dont la couleur est imposée). Le second permettra alors de demander des objets à l’utilisateur dans la console, sa couleur étant alors renvoyée en piochant dans la base de données créée.

Sujet pdf du TP :

Si tu travailles avec Pyzo et que tu obtiens l’erreur « No such file or directory », va consulter cette page: LIEN

Programmes ce TP directement dans Basthon ci-dessous, mais attention, tu dois faire les parties « Apprentissage » et « Utilisation » dans la même fenêtre et nommer ta base de données autrement que « 1-1 – TD – Applications du cours – BDD.db » car ce Basthon charge déjà un exemple de ce nom pour que tu puisse tester cette base sur la partie « utilisation » :

↑ Ce Basthon reste en cache du navigateur ↑

Visualiser le Basthon de correction - Apprentissage
Visualiser le Basthon de correction - Utilisation
Visualiser les liens Dropbox vers les différents documents de ce TD

Liens :

Codes non exécutables indépendants de Basthon et Dropbox (peuvent ne pas être à jour)

Code Apprentissage :

''' 1 - Bases de données'''

'''1-3 - IA et BDD'''

## 1-3 - IA et BDD

# Création de la BDD

Nom = '3-1 - IA et BDD - Base de données.db'
import sqlite3
BDD = sqlite3.connect(Nom)
cursor = BDD.cursor()
Requete = """CREATE TABLE IF NOT EXISTS Objets(Couleur TEXT,Objet TEXT)"""
cursor.execute(Requete)

# Apprentissage

from random import randint as rand

Couleurs = ['rouge','bleu','vert']
Taille = len(Couleurs)

for i in range(5):
    Ind = rand(0,Taille-1)
    Couleur = Couleurs[Ind]
    Objet = input('Quelque chose de ' + Couleur + ' ? (en minuscules - Taper ENTER pour ne pas répondre) ')
    if Objet != '':
        Requete = """INSERT INTO Objets VALUES (?,?);"""
        cursor.execute(Requete,(Couleur,Objet))

# Vérification

Requete = """SELECT name FROM sqlite_master WHERE type='table';"""
cursor.execute(Requete)
print(cursor.fetchall())

Requete = """PRAGMA table_info(Objets);"""
cursor.execute(Requete)
print(cursor.fetchall())

Requete = """SELECT * FROM Objets ;"""
cursor.execute(Requete)
Resultats = cursor.fetchall()
print(Resultats)

# Fermeture

BDD.commit()
BDD.close()

Code Utilisation :

''' 1 - Bases de données'''

'''1-3 - IA et BDD'''

## 1-3 - IA et BDD

# Ouverture de la BDD

Nom = '1-3 - IA et BDD - Base de données.db'
import sqlite3
BDD = sqlite3.connect(Nom)
cursor = BDD.cursor()

# Vérification

print("Liste des tables:")
Req = """SELECT name FROM sqlite_master WHERE type='table';"""
cursor.execute(Req)
print(cursor.fetchall())

# Questionnement

Objet = input('Un objet/Une chose de couleur définie ? (en minuscules) ')
Requete = """SELECT DISTINCT Couleur from Objets WHERE Objet = '""" + Objet + """';"""
cursor.execute(Requete)
Res_1 = cursor.fetchall() # Toutes les couleurs de l'objet

Requete = """SELECT Couleur from Objets WHERE Objet = '"""+ Objet +"""' GROUP BY Couleur ORDER BY COUNT(*) DESC LIMIT 1;"""
cursor.execute(Requete)
Res_2 = cursor.fetchone()

# Résultat

Nb_Res_1 = len(Res_1)
if Nb_Res_1 == 0:
    print("Je ne connais pas le résultat")
elif Nb_Res_1 == 1:
    Resultat = Res_1[0][0]
    print("Résultat: ",Resultat)
else:
    print("J'ai plusieurs résultats ! Les voici: ")
    for i in range(Nb_Res_1):
        print(Res_1[i][0])
    print()
    print("Voici le plus probable: ")
    print(Res_2[0])

# Fermeture

BDD.commit()
BDD.close()

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Les Sciences Industrielles de l'Ingénieur (SII) et l'Informatique du Tronc Commun (ITC) en CPGE par Denis DEFAUCHY