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>
130 lines
7.1 KiB
Markdown
130 lines
7.1 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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
|
|
```javascript
|
|
{
|
|
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.
|