confluent/scripts/add-final-roots.py
StillHammer 4236232a62 Refonte complète du lexique Confluent et système d'audit
- Correction et extension du lexique: 78 → 0 erreurs
- Ajout de 14 racines manquantes (toli, konu, aika, vito, paka, nutu, tuli, nemu, zeru, novi, muta, supu, selu, saki)
- Extension du lexique: 67 racines standards (53 → 67)
- Création de 6 nouveaux fichiers lexique (navigation, architecture, concepts philosophiques, étrangers, actions militaires, vêtements)
- Réduction consonnes rares: 26.5% → 2.7%
- Remplacement racines anglaises par finno-basques (malo→paka, situ→tuli, taki→kanu, time→aika)
- Correction des mots mal formés (ulak→kulak, koliukitan→koliukita, ulapisu→lapis, pekikayo→pekikazo)
- Amélioration script d'audit: charge maintenant verbes, compositions et grammaire (638 racines)
- Ajout scripts de maintenance (audit, correction consonnes rares, détection doublons)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 21:53:03 +08:00

106 lines
3.0 KiB
Python

#!/usr/bin/env python3
"""
Ajoute les 6 dernières racines manquantes
"""
import json
from pathlib import Path
LEXIQUE_DIR = Path(__file__).parent.parent / "ancien-confluent" / "lexique"
RACINES_FILE = LEXIQUE_DIR / "02-racines-standards.json"
# Les 6 racines à ajouter
RACINES_A_AJOUTER = {
"ciel": {
"traductions": [{
"confluent": "zeru",
"type": "racine",
"forme_liee": "zer",
"domaine": "nature",
"note": "Ciel, voûte céleste - utilisé dans Ciels-clairs"
}],
"synonymes_fr": ["voûte céleste", "firmament"]
},
"presage": {
"traductions": [{
"confluent": "novi",
"type": "racine",
"forme_liee": "nov",
"domaine": "concept",
"note": "Présage, signe du futur"
}],
"synonymes_fr": ["augure", "signe"]
},
"faim": {
"traductions": [{
"confluent": "muta",
"type": "racine",
"forme_liee": "mut",
"domaine": "besoin",
"note": "Faim, manque, besoin de nourriture"
}],
"synonymes_fr": ["manque", "privation"]
},
"intimite": {
"traductions": [{
"confluent": "supu",
"type": "racine",
"forme_liee": "sup",
"domaine": "espace",
"note": "Intérieur, intimité, espace privé"
}],
"synonymes_fr": ["intérieur", "privé"]
},
"sale": {
"traductions": [{
"confluent": "selu",
"type": "racine",
"forme_liee": "sel",
"domaine": "qualificatif",
"note": "Salé, eau salée - distinct de salu (sel cristal)"
}],
"synonymes_fr": ["salé", "saumâtre"]
},
"charge": {
"traductions": [{
"confluent": "saki",
"type": "racine",
"forme_liee": "sak",
"domaine": "action",
"note": "Charge, fardeau, ce qu'on porte"
}],
"synonymes_fr": ["fardeau", "cargaison"]
}
}
def main():
print("🔧 Ajout des 6 dernières racines manquantes\n")
with open(RACINES_FILE, 'r', encoding='utf-8') as f:
data = json.load(f)
print(f"Avant: {len(data['dictionnaire'])} entrées\n")
added = 0
for key_fr, entry in RACINES_A_AJOUTER.items():
if key_fr not in data['dictionnaire']:
mot = entry['traductions'][0]['confluent']
print(f" ✅ Ajout: {key_fr}{mot}")
data['dictionnaire'][key_fr] = entry
added += 1
else:
print(f" ⚠️ Existe déjà: {key_fr}")
print(f"\n{added} racines ajoutées")
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()