| |
| import json |
| import wikipedia |
| import random |
| import re |
|
|
| wikipedia.set_lang("fr") |
|
|
| |
| |
| |
|
|
| |
| niveau_1 = [ |
| "locgi apprend.", |
| "gopu.inc innove.", |
| "le code tourne.", |
| "pytorch calcule.", |
| "un tenseur change.", |
| "python est simple.", |
| "locgi est une ia.", |
| "le systeme avance.", |
| "bonjour tout le monde.", |
| "comment ca va aujourdhui.", |
| "le soleil brille.", |
| "la lune est belle.", |
| "les etoiles scintillent.", |
| "le vent souffle.", |
| "la pluie tombe.", |
| "le chat dort.", |
| "le chien court.", |
| "les oiseaux chantent.", |
| "le jardin est vert.", |
| "la mer est bleue.", |
| ] |
|
|
| |
| niveau_2 = [ |
| "locgi est un modele de langage rapide.", |
| "gopu.inc developpe des outils de securite.", |
| "le reseau de neurones ajuste ses poids.", |
| "les fichiers safetensors stockent les tenseurs.", |
| "un developpeur ecrit du code en python.", |
| "l'apprentissage par cursus facilite la convergence du modele.", |
| "le fichier de configuration valide les donnees.", |
| "locgi est developpe par Mauricio Mangituka en 2026.", |
| "un modele de langage comprend le texte.", |
| "le deep learning utilise des reseaux de neurones.", |
| "les donnees d'entrainement sont importantes.", |
| "la performance du modele s'ameliorer avec le temps.", |
| "le football est un sport collectif populaire.", |
| "le basket se joue avec un ballon et un panier.", |
| "la musique adoucit les moeurs.", |
| "l'art est une forme d'expression humaine.", |
| "la science explore l'univers.", |
| "la technologie evolue rapidement.", |
| "les ordinateurs sont partout.", |
| "internet connecte le monde.", |
| ] |
|
|
| |
| niveau_3 = [ |
| "le modele locgi analyse chaque caractere pour predire la suite du texte.", |
| "gopu.inc cree des architectures intelligentes adaptees aux environnements de developpement.", |
| "les matrices imbriquees calculent les probabilites de chaque lettre du dictionnaire unique.", |
| "optimiser les hyperparametres permet d'eviter les minima locaux pendant l'entrainement progressif.", |
| "une intelligence artificielle peut apprendre a partir de donnees textuelles structurees.", |
| "le traitement du langage naturel permet aux machines de comprendre le langage humain.", |
| "les reseaux de neurones recurrents sont adaptes pour les sequences de texte.", |
| "le machine learning transforme la facon dont nous interagissons avec la technologie.", |
| "les donnees de qualite sont essentielles pour un apprentissage efficace.", |
| "la puissance de calcul des GPU accelere l'entrainement des modeles.", |
| ] |
|
|
| |
| niveau_4 = [ |
| "bonjour comment ca va.", |
| "ca va bien merci et toi.", |
| "je vais bien merci de demander.", |
| "quelle est la capitale de la france.", |
| "paris est la capitale de la france.", |
| "combien font deux plus deux.", |
| "deux plus deux font quatre.", |
| "qui est le president de la france.", |
| "emmanuel macron est le president de la france.", |
| "j'aime la programmation.", |
| "python est un langage de programmation puissant.", |
| "pytorch est une bibliotheque pour l'apprentissage profond.", |
| "comment s'appelle le soleil.", |
| "le soleil s'appelle le soleil.", |
| "pourquoi le ciel est bleu.", |
| "le ciel est bleu a cause de la diffusion de la lumiere.", |
| "ou se trouve la tour eiffel.", |
| "la tour eiffel se trouve a paris.", |
| "quand est ne locgi.", |
| "locgi est ne en 2026.", |
| "que signifie gopu.inc.", |
| "gopu.inc est une entreprise qui developpe des ia.", |
| ] |
|
|
| |
| |
| |
|
|
| def clean_text(text): |
| """Nettoie le texte Wikipedia""" |
| |
| text = re.sub(r'\[\d+\]', '', text) |
| |
| text = re.sub(r'\([^)]*\)', '', text) |
| |
| text = text.replace('\n', ' ') |
| return text |
|
|
| def get_wikipedia_data(sujets, sentences=4): |
| """Récupère des résumés Wikipedia avec meilleure gestion des erreurs""" |
| data = [] |
| |
| |
| mapping = { |
| "intelligence artificielle": ["intelligence artificielle", "IA"], |
| "apprentissage profond": ["apprentissage profond", "deep learning"], |
| "reseau de neurones": ["réseau de neurones", "neurone"], |
| "python": ["Python", "langage python"], |
| "technologie": ["technologie", "innovation"], |
| "science": ["science", "sciences"], |
| "informatique": ["informatique", "ordinateur"], |
| "football": ["football", "sport"], |
| "paris": ["Paris", "ville de Paris"], |
| "programmation": ["programmation", "code informatique"], |
| } |
| |
| for sujet in sujets: |
| trouve = False |
| |
| |
| sujets_a_tester = [sujet] |
| if sujet in mapping: |
| sujets_a_tester.extend(mapping[sujet]) |
| |
| for test_sujet in sujets_a_tester: |
| try: |
| print(f" Essai: {test_sujet}...") |
| page = wikipedia.page(test_sujet) |
| summary = page.summary |
| |
| |
| summary = clean_text(summary) |
| |
| |
| phrases = summary.split('. ') |
| phrases = [p.strip() for p in phrases if len(p.strip()) > 20] |
| |
| |
| for phrase in phrases[:sentences]: |
| if len(phrase) > 10: |
| |
| if not phrase.endswith('.'): |
| phrase += '.' |
| data.append(phrase.lower()) |
| |
| print(f" ✓ Wikipedia: {sujet} ajouté ({len(phrases[:sentences])} phrases)") |
| trouve = True |
| break |
| |
| except wikipedia.exceptions.DisambiguationError as e: |
| |
| try: |
| premier = e.options[0] |
| print(f" → Ambigu, essai: {premier}") |
| page = wikipedia.page(premier) |
| summary = page.summary |
| summary = clean_text(summary) |
| phrases = summary.split('. ') |
| phrases = [p.strip() for p in phrases if len(p.strip()) > 20] |
| for phrase in phrases[:sentences]: |
| if len(phrase) > 10: |
| if not phrase.endswith('.'): |
| phrase += '.' |
| data.append(phrase.lower()) |
| print(f" ✓ Wikipedia: {sujet} ajouté via {premier}") |
| trouve = True |
| break |
| except: |
| pass |
| |
| except wikipedia.exceptions.PageError: |
| print(f" ✗ Page non trouvée: {test_sujet}") |
| |
| except Exception as e: |
| print(f" ✗ Erreur: {e}") |
| |
| if not trouve: |
| print(f" ✗ Wikipedia: {sujet} non trouvé") |
| |
| return data |
|
|
| |
| sujets_wiki = [ |
| "intelligence artificielle", |
| "apprentissage profond", |
| "reseau de neurones", |
| "python", |
| "technologie", |
| "science", |
| "informatique", |
| "football", |
| "paris", |
| "programmation", |
| ] |
|
|
| |
| |
| |
|
|
| print("Récupération des données Wikipedia...") |
| print("-" * 40) |
| donnees_wiki = get_wikipedia_data(sujets_wiki, sentences=3) |
| print("-" * 40) |
|
|
| |
| corpus_complet = niveau_1 + niveau_2 + niveau_3 + niveau_4 + donnees_wiki |
|
|
| |
| random.shuffle(corpus_complet) |
|
|
| |
| nom_fichier = "corpus.txt" |
| with open(nom_fichier, "w", encoding="utf-8") as f: |
| for phrase in corpus_complet: |
| f.write(phrase + "\n") |
|
|
| print("\n" + "=" * 50) |
| print(f"[SUCCÈS] Fichier '{nom_fichier}' généré !") |
| print(f"Nombre total d'exemples : {len(corpus_complet)}") |
| print(f" - Niveau 1 (Bases) : {len(niveau_1)}") |
| print(f" - Niveau 2 (Intermédiaire) : {len(niveau_2)}") |
| print(f" - Niveau 3 (Complexe) : {len(niveau_3)}") |
| print(f" - Niveau 4 (Dialogues) : {len(niveau_4)}") |
| print(f" - Wikipedia : {len(donnees_wiki)}") |
| print("=" * 50) |
|
|
| |
| if donnees_wiki: |
| print("\nExemples de données Wikipedia ajoutées:") |
| for i in range(min(3, len(donnees_wiki))): |
| print(f" {i+1}. {donnees_wiki[i][:80]}...") |
|
|