68 lines
2.2 KiB
Python
68 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Supprime les doublons dans 02-racines-standards.json
|
|
Garde les versions originales, supprime les nouvelles clés ajoutées
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
LEXIQUE_DIR = Path(__file__).parent.parent / "ancien-confluent" / "lexique"
|
|
RACINES_FILE = LEXIQUE_DIR / "02-racines-standards.json"
|
|
|
|
# Clés à supprimer (les nouvelles versions qu'on a ajoutées)
|
|
DOUBLONS_A_SUPPRIMER = [
|
|
"agent", # doublon de "personne" (si elle existe ailleurs)
|
|
"proteger", # garder si pas de doublon
|
|
"duree", # doublon de "temps"
|
|
"materiau_bois", # doublon de "bois"
|
|
"negatif", # doublon de "mauvais"
|
|
"aliment", # garder si pas de doublon
|
|
"demeurer", # garder si pas de doublon
|
|
"souvenir" # doublon de "memoire"
|
|
]
|
|
|
|
def main():
|
|
print("🔧 Nettoyage des doublons dans 02-racines-standards.json\n")
|
|
|
|
with open(RACINES_FILE, 'r', encoding='utf-8') as f:
|
|
data = json.load(f)
|
|
|
|
print(f"Avant: {len(data['dictionnaire'])} entrées\n")
|
|
|
|
# Afficher les mots confluent et leurs clés
|
|
mots_conf = {}
|
|
for key, value in data['dictionnaire'].items():
|
|
mot = value['traductions'][0]['confluent']
|
|
if mot not in mots_conf:
|
|
mots_conf[mot] = []
|
|
mots_conf[mot].append(key)
|
|
|
|
# Trouver les vrais doublons (même mot confluent)
|
|
print("Doublons trouvés (même mot confluent):")
|
|
for mot, cles in sorted(mots_conf.items()):
|
|
if len(cles) > 1:
|
|
print(f" {mot}: {', '.join(cles)}")
|
|
|
|
print("\nSuppression des clés en doublon:")
|
|
removed = 0
|
|
for key in DOUBLONS_A_SUPPRIMER:
|
|
if key in data['dictionnaire']:
|
|
mot = data['dictionnaire'][key]['traductions'][0]['confluent']
|
|
print(f" ❌ {key} ({mot})")
|
|
del data['dictionnaire'][key]
|
|
removed += 1
|
|
|
|
print(f"\n✅ {removed} doublons supprimés")
|
|
print(f"Après: {len(data['dictionnaire'])} entrées")
|
|
|
|
# Sauvegarder
|
|
with open(RACINES_FILE, 'w', encoding='utf-8') as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
|
f.write('\n')
|
|
|
|
print(f"\n💾 Fichier sauvegardé")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|