Générateur : Différence entre versions

De Le Parergon
Sauter à la navigation Sauter à la recherche
(Page créée avec « import random # Listes d'éléments pour chaque rôle sémantique avec des marqueurs verbs = ["chanter", "composer", "jouer", "ressentir"] agents = ["(DET) (NOM)"] instru… »)
 
 
(3 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
import random
+
En logique descriptive SHOIN, je peux représenter mon [[générateur]] en utilisant des concepts (classes), des rôles (relations), et des individus. Voici une tentative de description formelle de mon programme :
  
# Listes d'éléments pour chaque rôle sémantique avec des marqueurs
+
== Concepts principaux ==
verbs = ["chanter", "composer", "jouer", "ressentir"]
+
Programme : Le concept général représentant le programme.
agents = ["(DET) (NOM)"]
 
instruments = ["avec (NOM)", "au (NOM)", "à la (NOM)"]
 
objets = ["(DET) (NOM)"]
 
sieges = ["dans (DETPOS) (NOM)"]
 
experiments = ["(ADV)"]
 
beneficiaires = ["pour (NOM)"]
 
causes = ["par (NOM)"]
 
resultats = ["(NOM)"]
 
sources = ["de (NOM)"]
 
buts = ["pour (NOM)"]
 
lieux = ["dans (NOM)", "sur (NOM)"]
 
temps = ["ce (NOM)", "au (verbs) du soleil", "à (NOM)", "en (NOM)", "pendant (NOM)", "au (NOM)"]
 
  
# Dictionnaires pour les remplacements
+
Phrase : Le concept représentant une phrase générée.
noms = {
 
    "singulier_masculin": ["musicien", "poète", "compositeur", "écrivain", "piano", "batterie", "cœur", "esprit", "corps", "public"],
 
    "singulier_feminin": ["chanteuse", "artiste", "guitare", "âme", "pensée", "nature", "expérience", "mélodie", "rythmique", "liberté", "communauté", "humanité"],
 
    "pluriel_masculin": ["musiciens", "poètes", "compositeurs", "écrivains", "pianos", "batteries", "cœurs", "esprits", "corps", "publics"],
 
    "pluriel_feminin": ["chanteuses", "artistes", "guitares", "âmes", "pensées", "natures", "expériences", "mélodies", "rythmiques"]
 
}
 
determinants = {
 
    "singulier_masculin": ["le", "un"],
 
    "singulier_feminin": ["la", "une"],
 
    "pluriel_masculin": ["les", "des"],
 
    "pluriel_feminin": ["les", "des"]
 
}
 
detpos = ["son", "sa", "ses"]
 
adverbes = ["essentiellement", "énergiquement"]
 
  
# Table de conjugaison des verbes pour chaque pronom et temps
+
RôleSémantique : Le concept représentant un rôle sémantique.
conjugaisons = {
 
    "chanter": {
 
        "présent": {
 
            "je": "chante",
 
            "tu": "chantes",
 
            "il": "chante",
 
            "nous": "chantons",
 
            "vous": "chantez",
 
            "ils": "chantent"
 
        },
 
        "passé": {
 
            "je": "ai chanté",
 
            "tu": "as chanté",
 
            "il": "a chanté",
 
            "nous": "avons chanté",
 
            "vous": "avez chanté",
 
            "ils": "ont chanté"
 
        },
 
        "futur": {
 
            "je": "chanterai",
 
            "tu": "chanteras",
 
            "il": "chantera",
 
            "nous": "chanterons",
 
            "vous": "chanterez",
 
            "ils": "chanteront"
 
        }
 
    },
 
    "composer": {
 
        "présent": {
 
            "je": "compose",
 
            "tu": "composes",
 
            "il": "compose",
 
            "nous": "composons",
 
            "vous": "composez",
 
            "ils": "composent"
 
        },
 
        "passé": {
 
            "je": "ai composé",
 
            "tu": "as composé",
 
            "il": "a composé",
 
            "nous": "avons composé",
 
            "vous": "avez composé",
 
            "ils": "ont composé"
 
        },
 
        "futur": {
 
            "je": "composerai",
 
            "tu": "composeras",
 
            "il": "composera",
 
            "nous": "composerons",
 
            "vous": "composerez",
 
            "ils": "composeront"
 
        }
 
    },
 
    "jouer": {
 
        "présent": {
 
            "je": "joue",
 
            "tu": "joues",
 
            "il": "joue",
 
            "nous": "jouons",
 
            "vous": "jouez",
 
            "ils": "jouent"
 
        },
 
        "passé": {
 
            "je": "ai joué",
 
            "tu": "as joué",
 
            "il": "a joué",
 
            "nous": "avons joué",
 
            "vous": "avez joué",
 
            "ils": "ont joué"
 
        },
 
        "futur": {
 
            "je": "jouerai",
 
            "tu": "joueras",
 
            "il": "jouera",
 
            "nous": "jouerons",
 
            "vous": "jouerez",
 
            "ils": "joueront"
 
        }
 
    },
 
    "ressentir": {
 
        "présent": {
 
            "je": "ressens",
 
            "tu": "ressens",
 
            "il": "ressent",
 
            "nous": "ressentons",
 
            "vous": "ressentez",
 
            "ils": "ressentent"
 
        },
 
        "passé": {
 
            "je": "ai ressenti",
 
            "tu": "as ressenti",
 
            "il": "a ressenti",
 
            "nous": "avons ressenti",
 
            "vous": "avez ressenti",
 
            "ils": "ont ressenti"
 
        },
 
        "futur": {
 
            "je": "ressentirai",
 
            "tu": "ressentiras",
 
            "il": "ressentira",
 
            "nous": "ressentirons",
 
            "vous": "ressentirez",
 
            "ils": "ressentiront"
 
        }
 
    }
 
}
 
  
# Fonction pour choisir le genre et le nombre et remplacer les marqueurs
+
Verbe : Le concept représentant un verbe.
def choisir_accord(genre_nombre):
 
    if genre_nombre == "singulier_masculin":
 
        return random.choice(noms["singulier_masculin"]), random.choice(determinants["singulier_masculin"])
 
    elif genre_nombre == "singulier_feminin":
 
        return random.choice(noms["singulier_feminin"]), random.choice(determinants["singulier_feminin"])
 
    elif genre_nombre == "pluriel_masculin":
 
        return random.choice(noms["pluriel_masculin"]), random.choice(determinants["pluriel_masculin"])
 
    elif genre_nombre == "pluriel_feminin":
 
        return random.choice(noms["pluriel_feminin"]), random.choice(determinants["pluriel_feminin"])
 
  
# Fonction pour remplacer les marqueurs dans les phrases
+
Nom : Le concept représentant un nom.
def remplacer_marqueurs(phrase):
 
    genre_nombre = random.choice(["singulier_masculin", "singulier_feminin", "pluriel_masculin", "pluriel_feminin"])
 
    nom, det = choisir_accord(genre_nombre)
 
   
 
    phrase = phrase.replace("(DET)", det).replace("(NOM)", nom)
 
    phrase = phrase.replace("(DETPOS)", random.choice(detpos))
 
    phrase = phrase.replace("(ADV)", random.choice(adverbes))
 
   
 
    return phrase
 
  
# Fonction pour générer une phrase complète selon le type
+
Déterminant : Le concept représentant un déterminant.
def generate_phrase(type_phrase):
 
    verb = random.choice(verbs)
 
    agent = remplacer_marqueurs(random.choice(agents))
 
    instrument = remplacer_marqueurs(random.choice(instruments))
 
    objet = remplacer_marqueurs(random.choice(objets))
 
    siege = remplacer_marqueurs(random.choice(sieges))
 
    experiment = remplacer_marqueurs(random.choice(experiments))
 
    beneficiaire = remplacer_marqueurs(random.choice(beneficiaires))
 
    cause = remplacer_marqueurs(random.choice(causes))
 
    resultat = remplacer_marqueurs(random.choice(resultats))
 
    source = remplacer_marqueurs(random.choice(sources))
 
    but = remplacer_marqueurs(random.choice(buts))
 
    lieu = remplacer_marqueurs(random.choice(lieux))
 
    temps_choice = remplacer_marqueurs(random.choice(temps))
 
   
 
    # Choisir aléatoirement le temps du verbe (présent, passé, futur)
 
    temps_verbe = random.choice(["présent", "passé", "futur"])
 
   
 
    # Choisir aléatoirement un pronom personnel
 
    pronom = random.choice(["je", "tu", "il", "nous", "vous", "ils"])
 
   
 
    # Appliquer la conjugaison du verbe avec le pronom et le temps choisi
 
    verbe_conjugué = conjugaisons[verb][temps_verbe][pronom]
 
  
    if type_phrase == 1:
+
Conjugaison : Le concept représentant une conjugaison verbale.
        return f"{pronom} {verbe_conjugué} {objet}"
 
    elif type_phrase == 2:
 
        return f"{verbe_conjugué.capitalize()} {instrument}"
 
    elif type_phrase == 3:
 
        return f"{verbe_conjugué.capitalize()} {siege}"
 
    elif type_phrase == 4:
 
        return f"{verbe_conjugué.capitalize()} {source}"
 
    elif type_phrase == 5:
 
        return f"{experiment}, {verbe_conjugué} {objet}"
 
    elif type_phrase == 6:
 
        return f"{verbe_conjugué.capitalize()} {beneficiaire}"
 
    elif type_phrase == 7:
 
        return f"{verbe_conjugué.capitalize()} {but}"
 
    elif type_phrase == 8:
 
        return f"{verbe_conjugué.capitalize()} {cause}"
 
    elif type_phrase == 9:
 
        return f"{pronom} {verbe_conjugué}, {resultat}"
 
    elif type_phrase == 10:
 
        return f"{verbe_conjugué.capitalize()} {lieu}"
 
    elif type_phrase == 11:
 
        return f"{pronom} {verbe_conjugué} {temps_choice}"
 
    elif type_phrase == 12:
 
        return f"{verbe_conjugué.capitalize()}, {resultat}"
 
  
# Fonction principale du générateur
+
ModuleAccord : Le concept représentant le module de gestion des accords.
def Générateur():
 
    lyrics = []
 
    for type_phrase in range(1, 13):
 
        phrase_generée = generate_phrase(type_phrase)
 
        lyrics.append(phrase_generée)
 
    return "\n".join(lyrics)
 
  
# Générer les paroles
+
Rôles (relations) entre concepts :
paroles = Générateur()
+
 
print(paroles)
+
génère : Un rôle qui relie le concept Programme au concept Phrase. Indique que le programme génère des phrases.
 +
 
 +
contient : Un rôle reliant Phrase à RôleSémantique. Indique que chaque phrase contient un ou plusieurs rôles sémantiques.
 +
 
 +
aVerbe : Un rôle reliant Phrase à Verbe. Indique qu'une phrase utilise un verbe.
 +
 
 +
aNom : Un rôle reliant Phrase à Nom. Indique qu'une phrase utilise un nom.
 +
 
 +
aDéterminant : Un rôle reliant Phrase à Déterminant. Indique qu'une phrase utilise un déterminant.
 +
 
 +
aConjugaison : Un rôle reliant Verbe à Conjugaison. Indique qu'un verbe a une conjugaison spécifique.
 +
 
 +
utiliseModuleAccord : Un rôle reliant Programme à ModuleAccord. Indique que le programme utilise un module pour gérer les accords.
 +
 
 +
== Axiomes (assertions sur les concepts et rôles) ==
 +
 
 +
Programme
 +
 +
 +
 +
∃ génère.
 +
 
 +
Phrase : Un programme génère nécessairement des phrases.
 +
 
 +
 
 +
Phrase
 +
 +
 +
 +
∃ contient.RôleSémantique
 +
 +
 +
 +
∃ aVerbe.Verbe
 +
 +
 +
 +
∃ aNom.Nom
 +
 +
 +
 +
∃ aDéterminant.Déterminant : Une phrase contient nécessairement un rôle sémantique, un verbe, un nom, et un déterminant.
 +
 
 +
Verbe
 +
 +
 +
 +
∃ aConjugaison.Conjugaison : Un verbe est associé à une conjugaison.
 +
 
 +
ModuleAccord
 +
 +
⊑ Programme : Le module d'accord est une partie intégrante du programme.
 +
 
 +
Programme
 +
 +
 +
 +
∃ utiliseModuleAccord.ModuleAccord : Le programme utilise nécessairement un module pour gérer les accords.
 +
 
 +
== Exemple d'individus ==
 +
 
 +
 
 +
programme1 : Programme
 +
phrase1 : Phrase
 +
verbe1 : Verbe avec aConjugaison(conjugaisonPrésent)
 +
nom1 : Nom
 +
determinant1 : Déterminant
 +
moduleAccord1 : ModuleAccord
 +
Assertions sur les individus :
 +
programme1 génère phrase1
 +
phrase1 contient rôleSémantique1
 +
phrase1 aVerbe verbe1
 +
phrase1 aNom nom1
 +
phrase1 aDéterminant determinant1
 +
programme1 utiliseModuleAccord moduleAccord1
 +
 
 +
Ensemble, ces éléments décrivent mon programme de génération en logique descriptive SHOIN, en mettant l'accent sur les concepts et les relations qui structurent le processus de génération des phrases.

Version actuelle datée du 19 août 2024 à 15:09

En logique descriptive SHOIN, je peux représenter mon générateur en utilisant des concepts (classes), des rôles (relations), et des individus. Voici une tentative de description formelle de mon programme :

Concepts principaux

Programme : Le concept général représentant le programme.

Phrase : Le concept représentant une phrase générée.

RôleSémantique : Le concept représentant un rôle sémantique.

Verbe : Le concept représentant un verbe.

Nom : Le concept représentant un nom.

Déterminant : Le concept représentant un déterminant.

Conjugaison : Le concept représentant une conjugaison verbale.

ModuleAccord : Le concept représentant le module de gestion des accords.

Rôles (relations) entre concepts :

génère : Un rôle qui relie le concept Programme au concept Phrase. Indique que le programme génère des phrases.

contient : Un rôle reliant Phrase à RôleSémantique. Indique que chaque phrase contient un ou plusieurs rôles sémantiques.

aVerbe : Un rôle reliant Phrase à Verbe. Indique qu'une phrase utilise un verbe.

aNom : Un rôle reliant Phrase à Nom. Indique qu'une phrase utilise un nom.

aDéterminant : Un rôle reliant Phrase à Déterminant. Indique qu'une phrase utilise un déterminant.

aConjugaison : Un rôle reliant Verbe à Conjugaison. Indique qu'un verbe a une conjugaison spécifique.

utiliseModuleAccord : Un rôle reliant Programme à ModuleAccord. Indique que le programme utilise un module pour gérer les accords.

Axiomes (assertions sur les concepts et rôles)

Programme ⊑ ⊑ ∃ ∃ génère.

Phrase : Un programme génère nécessairement des phrases.


Phrase ⊑ ⊑ ∃ ∃ contient.RôleSémantique ⊓ ⊓ ∃ ∃ aVerbe.Verbe ⊓ ⊓ ∃ ∃ aNom.Nom ⊓ ⊓ ∃ ∃ aDéterminant.Déterminant : Une phrase contient nécessairement un rôle sémantique, un verbe, un nom, et un déterminant.

Verbe ⊑ ⊑ ∃ ∃ aConjugaison.Conjugaison : Un verbe est associé à une conjugaison.

ModuleAccord ⊑ ⊑ Programme : Le module d'accord est une partie intégrante du programme.

Programme ⊑ ⊑ ∃ ∃ utiliseModuleAccord.ModuleAccord : Le programme utilise nécessairement un module pour gérer les accords.

Exemple d'individus

programme1 : Programme phrase1 : Phrase verbe1 : Verbe avec aConjugaison(conjugaisonPrésent) nom1 : Nom determinant1 : Déterminant moduleAccord1 : ModuleAccord Assertions sur les individus : programme1 génère phrase1 phrase1 contient rôleSémantique1 phrase1 aVerbe verbe1 phrase1 aNom nom1 phrase1 aDéterminant determinant1 programme1 utiliseModuleAccord moduleAccord1

Ensemble, ces éléments décrivent mon programme de génération en logique descriptive SHOIN, en mettant l'accent sur les concepts et les relations qui structurent le processus de génération des phrases.