| @@ -0,0 +1,35 @@ | |||
| import json | |||
| from collections import defaultdict | |||
| # Chemin vers ton fichier d'entrée et de sortie | |||
| input_file = "Paires de phrases en ukrainien-français - 2026-01-06.tsv" # Remplace par ton chemin | |||
| output_file = "paires.json" # Fichier de sortie | |||
| # Dictionnaire pour stocker les paires uniques (clé = phrase ukrainienne, valeur = liste de traductions) | |||
| unique_pairs = defaultdict(list) | |||
| # Lire le fichier d'entrée | |||
| with open(input_file, "r", encoding="utf-8") as f: | |||
| for line in f: | |||
| # Diviser la ligne en colonnes (séparateur = tabulation) | |||
| parts = line.strip().split("\t") | |||
| if len(parts) >= 3: | |||
| uk_text = parts[1] # Texte ukrainien | |||
| fr_text = parts[3] # Traduction française | |||
| # Ajouter la paire au dictionnaire (évite les doublons) | |||
| if fr_text not in unique_pairs[uk_text]: | |||
| unique_pairs[uk_text].append(fr_text) | |||
| # Écrire le fichier JSONL de sortie | |||
| with open(output_file, "w", encoding="utf-8") as f_out: | |||
| for uk_text, fr_translations in unique_pairs.items(): | |||
| # Prendre la première traduction (ou toutes si tu préfères) | |||
| for fr_text in fr_translations: | |||
| # Créer une entrée JSONL | |||
| entry = { | |||
| "text": uk_text, | |||
| "translation": fr_text | |||
| } | |||
| f_out.write(json.dumps(entry, ensure_ascii=False) + "\n") | |||
| print(f"Fichier JSONL généré : {output_file}") | |||
| @@ -1,5 +1,5 @@ | |||
| FROM qwen2.5:14b | |||
| PARAMETER temperature 0.3 | |||
| PARAMETER temperature 0.2 | |||
| PARAMETER num_ctx 8192 | |||
| SYSTEM """ | |||
| @@ -9,8 +9,8 @@ Tu es un traducteur spécialisé dans les mémoires ukrainiennes des années 191 | |||
| Règles strictes : | |||
| 1. **Conserve tous les noms de lieux** dans leur forme originale (ex. : Львів → Lviv, mais ajoute une note si nécessaire entre [ ]). | |||
| 2. **Respecte le style narratif** : garde les tournures orales et les expressions propres à l’auteur. | |||
| 3. **Pour les termes historiques** (ex. : "powiat"), utilise le terme français standard ou ajoute une note explicative. | |||
| 4. **Conserve les citations** russe/allemand/polonais intégrés au texte (mais ajoute une note entre [ ] en la traduisant et en précisant la langue d'origine. | |||
| 3. **Pour les termes historiques** (ex. : "powiat"), utilise le terme français standard et ajoute une note explicative. | |||
| 4. **Conserve les citations** russe/allemand/polonais intégrés au texte (mais ajoute une note de fin de paragraphe entre [ ] en la traduisant et en précisant la langue d'origine. | |||
| 5. **Structure** : Garde les sauts de ligne et la mise en page originale. | |||
| 6. **Notes du traducteur** : Ajoute entre crochets [ ] les explications contextuelles si un contexte historique existe (ex. : "[Note : le context]"). | |||
| """ | |||
| @@ -12,14 +12,14 @@ import os | |||
| # Configuration | |||
| DEBUG = True | |||
| PDF_PATH = "TaniaBorecMemoir(Ukr).pdf" | |||
| PDF_PATH = "Traduction\TaniaBorecMemoir(Ukr).pdf" | |||
| OLLAMA_MODEL = "traductionUkrainienVersFrancais:latest" | |||
| OLLAMA_URL = "http://localhost:11434/api/generate" | |||
| TARGET_LANGUAGE = "français" | |||
| CHECKPOINT_FILE = "checkpoint.json" | |||
| TEMP_OUTPUT_TXT = "output_temp.txt" | |||
| FINAL_OUTPUT_PDF = PDF_PATH.replace(".pdf",f"({TARGET_LANGUAGE.upper()[:2]})_V7.pdf") | |||
| FINAL_OUTPUT_TXT = PDF_PATH.replace(".pdf",f"({TARGET_LANGUAGE.upper()[:2]})_V7.txt") | |||
| CHECKPOINT_FILE = "Traduction\checkpoint.json" | |||
| TEMP_OUTPUT_TXT = "Traduction\output_temp.txt" | |||
| FINAL_OUTPUT_PDF = PDF_PATH.replace(".pdf",f"({TARGET_LANGUAGE.upper()[:2]})_V8.pdf") | |||
| FINAL_OUTPUT_TXT = PDF_PATH.replace(".pdf",f"({TARGET_LANGUAGE.upper()[:2]})_V8.txt") | |||
| DEBUG = True | |||
| @@ -11,18 +11,18 @@ REM Chemin vers l'environnement virtuel Python (relatif au répertoire courant) | |||
| set VENV_PATH=%CURRENT_DIR%\venv | |||
| REM Chemin vers votre script principal (relatif au répertoire courant) | |||
| set MAIN_SCRIPT_PATH=%CURRENT_DIR%\main.py | |||
| set MAIN_SCRIPT_PATH=%CURRENT_DIR%\Traduction\main.py | |||
| REM Activer l'environnement virtuel Python | |||
| call %VENV_PATH%\Scripts\activate.bat | |||
| REM Lancer la compilation du modèle LLM pour Ollama | |||
| ollama create traductionUkrainienVersFrancais -f .\Modelfile | |||
| ollama create traductionUkrainienVersFrancais -f .\Traduction\Modelfile | |||
| :: 1. Vérifie si le processus ollama.exe est en cours d'exécution | |||
| tasklist | find "ollama.exe" >nul | |||
| if %ERRORLEVEL% equ 0 ( | |||
| echo [OK] Le processus Ollama est en cours d'execution. | |||
| echo [OK] Le processus Ollama est bien en cours d'execution. | |||
| ) else ( | |||
| echo [ERREUR] Ollama n'est pas lancé. | |||
| pause | |||