confluent/ConfluentTranslator/test-results-radical-system.md
StillHammer e8d17ab0d5 Implement radical lookup system for Confluent translator (83% → 92% coverage)
Major features:
- Radical-based word matching for conjugated verbs
- Morphological decomposition for compound words
- Multi-index search (byWord + byFormeLiee)
- Cascade search strategy with confidence scoring

New files:
- ConfluentTranslator/radicalMatcher.js: Extract radicals from conjugated forms
- ConfluentTranslator/morphologicalDecomposer.js: Decompose compound words
- ConfluentTranslator/plans/radical-lookup-system.md: Implementation plan
- ConfluentTranslator/test-results-radical-system.md: Test results and analysis
- ancien-confluent/lexique/00-grammaire.json: Grammar particles
- ancien-confluent/lexique/lowercase-confluent.js: Lowercase utility

Modified files:
- ConfluentTranslator/reverseIndexBuilder.js: Added byFormeLiee index
- ConfluentTranslator/confluentToFrench.js: Cascade search with radicals
- Multiple lexique JSON files: Enhanced entries with forme_liee

Test results:
- Before: 83% coverage (101/122 tokens)
- After: 92% coverage (112/122 tokens)
- Improvement: +9 percentage points

Remaining work to reach 95%+:
- Add missing particles (ve, eol)
- Enrich VERBAL_SUFFIXES (aran, vis)
- Document missing words (tiru, kala, vulu)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 22:24:56 +08:00

7.1 KiB

Test du système de recherche par radicaux - Résultats

Date: 2025-11-28

Texte de test (122 tokens)

Va siluuumi vo mako sekavoki na akoazana vokan at. Va aliaska vo voki aita na aita zo kisun at. No kekutoka tiru okitori vo loku taku su mitak at. Tova vo uraakota na kisiran vokis at. Va umitori velu mirak at. Va alu su vo onuvoki melu su pasun at. Va naki su vo savu su pasun at. Va maku sukamori vo varu mako su zo sukam ul at. Va vokiueka vo kala okimako uravis at. Na tova na uraal kisaran ui vo mako vulu pasak ok se vo talu su vaku nekan ok. Se na kisiran zo urak u suki na velu ve at. Zom na okitori na mako ve at. Se va sekauaita na tori su ui kisun at eol.

Résultats

Coverage global

  • Avant implémentation (plan): 83% (101/122 tokens)
  • Après implémentation: 92% (112/122 tokens)
  • Amélioration: +9 points de pourcentage (+11 mots trouvés)

Mots trouvés (112/122)

Exemples de mots correctement trouvés grâce au système:

  • vokan, vokis → trouvés via radical vok → "voix"
  • kisun, kisiran → trouvés via radical kis → "transmettre"
  • pasun → trouvé via radical pas → "prendre"
  • mirak → trouvé via radical mir → "voir"
  • sekavoki → composition reconnue → "conseil"
  • Nombreuses particules grammaticales (va, vo, na, at, su, etc.)
  • Noms propres (castes, lieux): akoazana, aliaska, kekutoka, uraakota

Mots non trouvés (10/122)

1. Particules grammaticales manquantes (2)

  • ve (apparaît 2 fois) - particule non documentée
  • eol - marqueur de fin de phrase

Action requise: Ajouter au lexique 00-grammaire.json

2. Compositions non décomposées (4)

  • sukamori - composition potentielle suk-a-mori (forger + relation + ?)
  • uraal - composition potentielle ur-aa-l (être + relation_forte + ?)
  • kisaran - dérivé de kis avec suffixe aran (non documenté)
  • uravis - verbe avec suffixe vis (non documenté)

Problèmes identifiés:

  • Suffixes aran et vis absents de VERBAL_SUFFIXES
  • Racines composantes (mori, composants de uraal) peut-être absentes

Action requise:

  • Enrichir radicalMatcher.js avec nouveaux suffixes
  • Vérifier/ajouter racines manquantes au lexique

3. Mots absents du lexique (4)

  • tiru - modificateur/adjectif ?
  • kala - mot inconnu
  • vulu - mot inconnu

Action requise: Documenter dans le lexique approprié

Traduction brute obtenue

va oracle vo grand (ou: vaste) conseil na faucons chasseurs (ou: faucons chasseurs, akoazana, faucon chasseur, faucons) voix (ou: parole, appeler) at va ailes-grises (ou: ailes-grises, aliaska, aile-grise, aile grise, ailes grises, ailes) vo voix (ou: parole, appeler) ancêtre (ou: ancien, aïeul, vieux, âgé) na ancêtre (ou: ancien, aïeul, vieux, âgé) zo transmettre (ou: enseigner, transmettent, transmis) at no antres des échos (ou: antres des échos, kekutoka) [INCONNU:tiru] guerrier vo loi (ou: règle, lieu, endroit, loup, zone, région) porter (ou: transporter) su famille (ou: clan) at tova vo caste de l'eau (ou: caste de l'eau, la confluence, uraakota, confluence (la)) na transmettre (ou: enseigner, transmettent, transmis) voix (ou: parole, appeler) at va chaman surveiller voir (ou: observer, regarder, vu, vus, vue, vues, verbe) at va grue (ou: Regard-Libre, grues, regard-libre) su vo poème (ou: vers, chant) doux (ou: doux, tendre) su prendre (ou: prennent, pris, prisse) at va descendant (ou: descendant, futur, débutant, enfant) su vo serment (ou: serment, promesse, jurer) su prendre (ou: prennent, pris, prisse) at va grand (ou: vaste) [INCONNU:sukamori] vo arme grand (ou: vaste) su zo forger ul at va proclamateur (ou: proclamateur, proclamation) vo [INCONNU:kala] terrible [INCONNU:uravis] at na tova na [INCONNU:uraal] [INCONNU:kisaran] ui vo grand (ou: vaste) [INCONNU:vulu] prendre (ou: prennent, pris, prisse) ok se vo hall su allié (ou: allié, ami) tovak (ou: agir, faire, accomplir, créer, font, ferai, feras, fera, ferons, ferez, feront) ok se na transmettre (ou: enseigner, transmettent, transmis) zo être (ou: exister, vivre, il y a, y a-t-il, existe, existent, existant) u feu (ou: flamme, étincelle) na surveiller [INCONNU:ve] at zom na guerrier na grand (ou: vaste) [INCONNU:ve] at se va sagesse na homme (ou: homme, personne) su ui transmettre (ou: enseigner, transmettent, transmis) at [INCONNU:eol]

Analyse du système implémenté

Ce qui fonctionne

  1. Recherche exacte - Correspondance directe dans le lexique
  2. Recherche par radicaux verbaux - Extraction de racines avec suffixes connus
  3. Index byFormeLiee - Recherche rapide par forme liée
  4. Compositions simples - Reconnaissance des mots composés documentés

Ce qui nécessite des améliorations 🔧

  1. Liste des suffixes verbaux - Incomplète (manque aran, vis, etc.)
  2. Décomposition morphologique récursive - Ne trouve pas toutes les compositions
  3. Lexique - Certains mots/particules manquants
  4. Confiance des matches - Système de scoring pourrait être affiné

Commande de test

curl -s -X POST http://localhost:3000/api/translate/conf2fr \
  -H "Content-Type: application/json" \
  -d '{"text": "Va siluuumi vo mako sekavoki na akoazana vokan at. Va aliaska vo voki aita na aita zo kisun at. No kekutoka tiru okitori vo loku taku su mitak at. Tova vo uraakota na kisiran vokis at. Va umitori velu mirak at. Va alu su vo onuvoki melu su pasun at. Va naki su vo savu su pasun at. Va maku sukamori vo varu mako su zo sukam ul at. Va vokiueka vo kala okimako uravis at. Na tova na uraal kisaran ui vo mako vulu pasak ok se vo talu su vaku nekan ok. Se na kisiran zo urak u suki na velu ve at. Zom na okitori na mako ve at. Se va sekauaita na tori su ui kisun at eol."}' \
  | python3 -m json.tool

Prochaines étapes pour atteindre 95%+

  1. Ajouter particules ve et eol → +2% coverage
  2. Enrichir VERBAL_SUFFIXES avec aran, vis → +2% coverage
  3. Documenter tiru, kala, vulu → +3% coverage
  4. Vérifier/ajouter racines pour compositions → +1% coverage

Objectif réaliste: 98-100% coverage avec ces ajustements.

Fichiers créés/modifiés

Nouveaux fichiers

  • ConfluentTranslator/radicalMatcher.js - Extraction de radicaux
  • ConfluentTranslator/morphologicalDecomposer.js - Décomposition morphologique

Fichiers modifiés

  • ConfluentTranslator/reverseIndexBuilder.js - Ajout index byFormeLiee
  • ConfluentTranslator/confluentToFrench.js - Recherche en cascade

Structure de l'index

{
  byWord: {
    "voki": { francais: "voix", forme_liee: "vok", ... }
  },
  byFormeLiee: {
    "vok": [
      { francais: "voix", matchType: "forme_liee", ... }
    ]
  }
}

Conclusion

Le système de recherche par radicaux est fonctionnel et opérationnel. Il a permis d'améliorer significativement le coverage de 83% à 92% (+9 points). Les 8% restants nécessitent principalement:

  • L'enrichissement du lexique (particules, mots manquants)
  • L'ajout de suffixes verbaux supplémentaires
  • La documentation de quelques racines composantes

Le système est prêt pour la production et peut être amélioré incrémentalement en ajoutant les éléments manquants au lexique.