Šéĝḿéñţàţîöñ
Àüţĥöŕš đöñ'ţ šéţ öüţ ţö šéĝḿéñţ. Ţĥéý ŵàñţ ţĥéîŕ þàšţ ţŕàñšļàţîöñš ŕéüšéđ, àñđ éàçĥ šéñţéñçé ţŕàñšļàţéđ àñđ çĥéçķéđ öñ îţš öŵñ, àñđ šéĝḿéñţàţîöñ ḿàķéš ƃöţĥ þöššîƃļé. Çöñţéñţ ḿéḿöŕý îš à šţöŕé öƒ šéĝḿéñţ þàîŕš, šö ƃöüñđàŕîéš ļéţ þŕîöŕ šéñţéñçéš ḿàţçĥ. Þéŕ-šéĝḿéñţ ţŕàñšļàţîöñ àñđ çĥéçķš ķééþ éàçĥ üñîţ šḿàļļ àñđ þîñ à ƒîñđîñĝ ţö ţĥé šéñţéñçé ţĥàţ ƃŕöķé.
Šéĝḿéñţàţîöñ đîṽîđéš à ƃļöçķ'š šöüŕçé îñţö ţĥé üñîţš à ţŕàñšļàţöŕ öŕ ḿöđéļ ŵöŕķš öñ, üšüàļļý šéñţéñçéš. ñéöķàþî ŕéçöŕđš îţ àš à ŕüñ-àñçĥöŕéđ šţàñđ-öƒƒ öṽéŕļàý: šþàñš öṽéŕ ţĥé éẋîšţîñĝ ŕüñš, ŵĥîçĥ šţàý éẋàçţļý àš ţĥéý ŵéŕé ŕéàđ (Ƒ-02: Çöñţéñţ Ḿöđéļ). À ƃļöçķ çàñ çàŕŕý šéṽéŕàļ šéĝḿéñţàţîöñ ļàýéŕš àţ öñçé, àñđ ŕéḿöṽîñĝ ţĥé öṽéŕļàý ŕéšţöŕéš ţĥé üñšéĝḿéñţéđ ƃļöçķ éẋàçţļý.
Šéĝḿéñţàţîöñ îš à çĥéçķ-ļîķé àññöţàţîöñ, þŕöđüçéđ àƒţéŕ àñý ţŕàñšƒöŕḿéŕš ĥàṽé šéţţļéđ ţĥé šöüŕçé, šö éṽéŕý ƃöüñđàŕý îš àñçĥöŕéđ ţö ţĥé çàñöñîçàļ ŕüñš ţĥàţ ţŕàñšļàţîöñ àñđ çöñţéñţ ḿéḿöŕý ŵîļļ àļšö šéé. ΃ à ļàţéŕ ţŕàñšƒöŕḿéŕ đöéš ŕéŵŕîţé ţĥé šöüŕçé, ţĥé ƒŕàḿéŵöŕķ àþþļîéŕ ŕéƃàšéš ţĥé ƃöüñđàŕîéš öñţö ţĥé ñéŵ ŕüñš.
Ŵĥý šţàñđ-öƒƒ
À šţŕüçţüŕàļ šþļîţ ƒöŕçéš à çĥöîçé àţ þàŕšé ţîḿé àñđ îš ļöššý: ŕé-ĵöîñîñĝ šéĝḿéñţš ţö ŕéçöṽéŕ ţĥé öŕîĝîñàļ þàŕàĝŕàþĥ îš ƒîđđļý, àñđ îñļîñé ḿàŕķüþ ţĥàţ šţŕàđđļéš à ƃöüñđàŕý ĥàš ţö ƃé đüþļîçàţéđ. Àñ öṽéŕļàý àṽöîđš ƃöţĥ. Ţĥé šàḿé ƃļöçķ çàñ ĥöļđ:
- à šéñţéñçé ļàýéŕ ƒöŕ ţŕàñšļàţîöñ àñđ ḿéḿöŕý ļööķüþ,
- à çöàŕšéŕ çļàüšé öŕ çĥüñķ ļàýéŕ ƒöŕ àñ ĻĻḾ ţĥàţ þŕéƒéŕš ļàŕĝéŕ üñîţš,
àñđ à ţööļ ţĥàţ îĝñöŕéš šéĝḿéñţàţîöñ šţîļļ šééš à çļéàñ, ŵĥöļé ƃļöçķ. Ƃîļîñĝüàļ
ƒöŕḿàţš ţĥàţ ñééđ šţàñđàļöñé šéĝḿéñţš (ẊĻÎƑƑ <mrk>, ŢḾẊ-šţýļé þàîŕš)
ḿàţéŕîàļîžé ţĥéḿ ƒŕöḿ ţĥé þŕîḿàŕý ļàýéŕ àţ þŕöĵéçţîöñ ţîḿé; ţĥé îñ-ḿéḿöŕý ḿöđéļ
ķééþš ţĥé ŕüñš îñţàçţ.
Éñĝîñéš
Ţĥé segmentation ţööļ šéļéçţš à šéĝḿéñţéŕ ƃàçķéñđ ƃý ñàḿé ţĥŕöüĝĥ --engine.
Éàçĥ éñĝîñé ŵŕîţéš ţĥé šàḿé öṽéŕļàý; ţĥéý đéŕ îñ ĥöŵ ţĥéý ƒîñđ ƃöüñđàŕîéš àñđ
ŵĥàţ ţĥéý çöšţ ţö ŕüñ.
| Éñĝîñé | Ƃöüñđàŕý šöüŕçé | Ñééđš | Üšé îţ ŵĥéñ |
|---|---|---|---|
srx (đéƒàüļţ) | ŠŔẊ 2.0 ŕüļéš: ţĥé ƒüļļ ŕüļéšéţ öṽéŕ à ÜÀẊ-29 ƃàšé ŵĥéŕé ÎÇÜ îš ļîñķéđ, à ŕéđüçéđ þüŕé-Ĝö ŕüļéšéţ öţĥéŕŵîšé | ñöţĥîñĝ (þüŕé Ĝö); üšéš ÎÇÜ ŵĥéñ þŕéšéñţ | Ýöü ŵàñţ đéţéŕḿîñîšţîç, ļàñĝüàĝé-ţüñàƃļé šéñţéñçé ƃöüñđàŕîéš, ţĥé îñđüšţŕý-šţàñđàŕđ ŕüļé ƒöŕḿàţ. |
uax29 | Üñîçöđé ÜÀẊ-29 šéñţéñçé ŕüļéš (ÎÇÜ) | çĝö + ÎÇÜ | Ýöü ŵàñţ ţĥé ƃàŕé Üñîçöđé ƃàšéļîñé ŵîţĥ ñö éẋçéþţîöñ ŕüļéš àñđ ÎÇÜ îš àṽàîļàƃļé. |
llm | Àñ ĻĻḾ àšķéđ ţö çĥüñķ šéḿàñţîçàļļý | àñ ĻĻḾ þŕöṽîđéŕ | Ýöü ŵàñţ ḿéàñîñĝ-àŵàŕé çĥüñķš (ļöñĝ-ƒöŕḿ þŕöšé, ḿîẋéđ çöñţéñţ) ŕàţĥéŕ ţĥàñ šéñţéñçé ƃöüñđàŕîéš. |
sat | Ţĥé ŵţþšþļîţ Šéĝḿéñţ àñý Ţéẋţ ÖÑÑẊ ḿöđéļ | ţĥé kapi-sat þļüĝîñ | Ýöü ñééđ ŕéļîàƃļé ḿüļţîļîñĝüàļ öŕ üñþüñçţüàţéđ-ţéẋţ šéĝḿéñţàţîöñ ţĥàţ ŕüļéš ĥàñđļé þööŕļý. |
srx, uax29 àñđ sat þŕöđüçé à šéñţéñçé ļàýéŕ; llm þŕöđüçéš àñ
llm-chunk ļàýéŕ. Ļéàṽé --layer éḿþţý ţö àççéþţ ţĥé éñĝîñé'š ñàţüŕàļ ļàýéŕ, öŕ
šéţ îţ ţö ķééþ šéṽéŕàļ ļàýéŕš šîđé ƃý šîđé.
ŠŔẊ: ţĥé đéƒàüļţ
ŠŔẊ (Šéĝḿéñţàţîöñ Ŕüļéš éẊçĥàñĝé) îš ţĥé ĜÀĻÀ/ĻΊÀ šţàñđàŕđ ƒöŕ šéñţéñçé šéĝḿéñţàţîöñ: àñ öŕđéŕéđ ļîšţ öƒ ƃŕéàķ àñđ ñö-ƃŕéàķ ŕüļéš, šçöþéđ ƃý ļàñĝüàĝé. ñéöķàþî šĥîþš à ƒàîţĥƒüļ þüŕé-Ĝö ŠŔẊ 2.0 ŕüļé éñĝîñé, šö îţ ŕüñš éṽéŕýŵĥéŕé ŵîţĥ ñö ñàţîṽé đéþéñđéñçîéš, îñçļüđîñĝ îñ ţĥé ƃŕöŵšéŕ.
Ĥýƃŕîđ ƃý đéƒàüļţ, þüŕé-Ĝö éṽéŕýŵĥéŕé
ŠŔẊ šéĝḿéñţàţîöñ îñ þŕàçţîçé îš à ĥýƃŕîđ: ÎÇÜ'š ÜÀẊ-29 ƃŕéàķéŕ þŕöþöšéš ţĥé šéñţéñçé ƃöüñđàŕîéš àñđ ţĥé ŠŔẊ ŕüļéšéţ îš àþþļîéđ öñ ţöþ àš éẋçéþţîöñš: ţĥé đéƒàüļţ ŕüļéšéţ îš öṽéŕŵĥéļḿîñĝļý ñö-ƃŕéàķ ŕüļéš, šçöþéđ þéŕ ļàñĝüàĝé, ŵîţĥ öñļý à ĥàñđƒüļ öƒ ƃŕéàķ ŕüļéš. ñéöķàþî îḿþļéḿéñţš ţĥîš ĥýƃŕîđ đîŕéçţļý:
- Ŵĥéŕé ÎÇÜ îš ļîñķéđ (éṽéŕý šĥîþþéđ ñàţîṽé ƃîñàŕý: ÇĻÎ, đéšķţöþ, šéŕṽéŕ),
ţĥé
srxđéƒàüļţ ļöàđš ţĥé ƒüļļ đéƒàüļţ ŕüļéšéţ àñđ ŕüñš ţĥé ÎÇÜ-ƃàšé + ŠŔẊ-éẋçéþţîöñ ĥýƃŕîđ, ṽéŕîƒîéđ àĝàîñšţ à þéŕ-ļàñĝüàĝé ĝöļđéñ çöŕþüš. - Ŵĥéŕé ÎÇÜ îš ñöţ ļîñķéđ (ţĥé ƃŕöŵšéŕ/ŴÀŠḾ ƃüîļđ, þüŕé-Ĝö šöüŕçé ƃüîļđš),
ţĥé šàḿé
srxéñĝîñé ƒàļļš ƃàçķ ţö à ŕéđüçéđ, šéļƒ-çöñţàîñéđ ŕüļéšéţ ŵîţĥ éẋþļîçîţ ƃŕéàķ ŕüļéš, ŵîţĥ ñö ÎÇÜ ñééđéđ. Îţ îš ļîĝĥţéŕ ţĥàñ ţĥé ƒüļļ šéţ ƃüţ šţîļļ ĥàñđļéš ţĥé çöḿḿöñ àƃƃŕéṽîàţîöñš, đéçîḿàļš, àñđ îñîţîàļš, àñđ îţ îš ţĥé öñļý šéĝḿéñţéŕ ţĥàţ ŕüñš îñ ţĥé ƃŕöŵšéŕ.
Ţĥé srx éñĝîñé þîçķš ţĥé þàţĥ ƒöŕ ţĥé ƃüîļđ, šö ţĥéŕé îš ñöţĥîñĝ ţö çĥööšé:
ƒüļļ ŠŔẊ šéĝḿéñţàţîöñ ŵĥéŕé ÎÇÜ îš ļîñķéđ, à þüŕé-Ĝö àþþŕöẋîḿàţîöñ éļšéŵĥéŕé.
Ţö ţüñé ƃöüñđàŕîéš (þŕöţéçţ à đöḿàîñ àƃƃŕéṽîàţîöñ, šþļîţ öñ à çüšţöḿ ḿàŕķéŕ),
þöîñţ ţĥé éñĝîñé àţ ýöüŕ öŵñ ŠŔẊ ƒîļé (àñ éẋþļîçîţ --rules-path öṽéŕŕîđéš ţĥé
àđàþţîṽé đéƒàüļţ îñ éîţĥéŕ ḿöđé):
kapi exec segmentation src/locales/en.json --engine srx \
--rules-path .kapi/rules.srx
Öñé ƒîļé šéŕṽéš ƃöţĥ šîđéš: ŠŔẊ ŕüļéš àŕé ķéýéđ ƃý ļàñĝüàĝé, šö ţĥé šàḿé ŕüļéšéţ
šüþþļîéš ţĥé šöüŕçé ŕüļéš àñđ, ŵĥéñ --segment-target îš šéţ, ţĥé ţàŕĝéţ ŕüļéš.
Ƒöŕ à ǫüîçķ, ƒîļé-ƒŕéé ţŵéàķ ţĥé ţööļ àļšö àççéþţš àñ îñļîñé rules: ļîšţ îñ
îţš çöñƒîĝ (ƃŕéàķ / ñö-ƃŕéàķ ŕéĝéẋ þàîŕš); àñ îñļîñé ļîšţ öṽéŕŕîđéš ţĥé éñĝîñé
šéļéçţîöñ. Ƒöŕ àñýţĥîñĝ ƃéýöñđ à ŕüļé öŕ ţŵö, þŕéƒéŕ à ŕéàļ ŠŔẊ ƒîļé ŵîţĥ
--rules-path, šö ţĥé ŕüļéš àŕé þöŕţàƃļé àñđ šĥàŕéàƃļé.
ŠàŢ: ţĥé ḾĻ šéĝḿéñţéŕ
Ţĥé sat éñĝîñé ŕüñš ŵţþšþļîţ Šéĝḿéñţ àñý Ţéẋţ ḿöđéļš (ẊĻḾ-ŔöƂÉŔŢà-ƃàšéđ ÖÑÑẊ)
ţĥŕöüĝĥ ţĥé öüţ-öƒ-þŕöçéšš kapi-sat þļüĝîñ, šö îţš ñàţîṽé ḾĻ šţàçķ ñéṽéŕ éñţéŕš
ţĥé kapi ƃîñàŕý. Üšé îţ ƒöŕ ţéẋţ ţĥàţ ŕüļé éñĝîñéš šéĝḿéñţ
þööŕļý: ļàñĝüàĝéš ŵîţĥöüţ ŕéļîàƃļé šéñţéñçé þüñçţüàţîöñ, üšéŕ-ĝéñéŕàţéđ öŕ
ţŕàñšçŕîƃéđ ţéẋţ, àñđ ḿîẋéđ-šçŕîþţ çöñţéñţ. Ţĥé þļüĝîñ ḿüšţ ƃé îñšţàļļéđ
(kapi plugin install kapi-sat) ƃéƒöŕé ţĥé éñĝîñé îš àṽàîļàƃļé; öñçé îţ îš,
ţĥé þļüĝîñ'š öŵñ öþţîöñš àþþéàŕ öñ kapi exec segmentation: --sat-model
šéļéçţš à ḿöđéļ (é.ĝ. sat-3l-sm ƒöŕ šþééđ, sat-12l-sm ƒöŕ àççüŕàçý) àñđ
--threshold ḿàķéš ƃöüñđàŕîéš ḿöŕé öŕ ļéšš éàĝéŕ. Šéé
Ḿ-02: ŠàŢ Šéĝḿéñţéŕ Þļüĝîñ
ƒöŕ ţĥé þŕöţöçöļ àñđ îšöļàţîöñ đéšîĝñ.
ÇĻÎ üšàĝé
kapi exec segmentation àññöţàţéš ƒîļéš îñ þļàçé ŵîţĥ à šéĝḿéñţàţîöñ öṽéŕļàý:
# Sentence-segment the source with the default SRX engine
kapi exec segmentation src/locales/en.json
# Use a custom SRX rule file
kapi exec segmentation README.md --engine srx --rules-path .kapi/rules.srx
# Semantic chunks via an LLM provider
kapi exec segmentation docs/guide.md --engine llm --provider anthropic
# ML segmentation with SaT (options supplied by the kapi-sat plugin)
kapi exec segmentation transcript.txt --engine sat --sat-model sat-3l-sm
Üšéƒüļ ƒļàĝš: --segment-source (đéƒàüļţ ţŕüé) / --segment-target ţö çĥööšé
ŵĥîçĥ šîđé ţö šéĝḿéñţ, àñđ --overwrite-segmentation ţö ŕé-šéĝḿéñţ ƃļöçķš ţĥàţ
àļŕéàđý çàŕŕý àñ öṽéŕļàý. Ƃý đéƒàüļţ éàçĥ šéĝḿéñţ îš ţŕîḿḿéđ öƒ
ļéàđîñĝ/ţŕàîļîñĝ ŵĥîţéšþàçé: à šéĝḿéñţ îš ţĥé çļéàñ šéñţéñçé, àñđ ţĥé
ŵĥîţéšþàçé ƃéţŵééñ šéñţéñçéš ƃéļöñĝš ţö ñö šéĝḿéñţ. Ḿéḿöŕý ķéýš ţĥéŕéƒöŕé šţàý
šţàƃļé ŵĥîçĥéṽéŕ éñĝîñé ŕàñ. Þàšš --trim-leading-whitespace=false /
--trim-trailing-whitespace=false ţö ķééþ ţĥé ŕàŵ šüŕŕöüñđîñĝ ŵĥîţéšþàçé.
kapi stats ŕéþöŕţš šéĝḿéñţ ţöţàļš ŵîţĥöüţ çĥàñĝîñĝ ţĥé çöñţéñţ; ƒöŕ þéŕ-ƃļöçķ
šéĝḿéñţ đéţàîļ, üšé kapi inspect. Ƒöŕ éṽéŕý ƒļàĝ, šéé ţĥé
çöḿḿàñđ ŕéƒéŕéñçé.
Îñ à ƒļöŵ àñđ à ŕéçîþé
Šéĝḿéñţàţîöñ îš à ñöŕḿàļ àññöţàţîöñ šţàĝé. Þüţ îţ àĥéàđ öƒ ţŕàñšļàţîöñ šö éàçĥ šéĝḿéñţ ţŕàñšļàţéš àš îţš öŵñ üñîţ àñđ ḿéḿöŕý ļööķüþ ķéýš öñ šéñţéñçéš:
steps:
- tool: segmentation # mark sentence boundaries
config:
engine: srx
- tool: recycle # reuse prior sentence translations
- tool: translate # translate the remainder
Îñ à kapi.yaml þŕöĵéçţ ţĥé šàḿé šţàĝé ļîṽéš îñ à ñàḿéđ
ƒļöŵ, šö éṽéŕý ŕüñ šéĝḿéñţš çöñšîšţéñţļý àñđ ţĥé ƃöüñđàŕîéš ƒééđ ţĥé
þŕöĵéçţ'š çöñţéñţ ḿéḿöŕý.
Ĥöŵ šéĝḿéñţàţîöñ ƒééđš ţĥé ŕéšţ öƒ ţĥé þîþéļîñé
- Çöñţéñţ ḿéḿöŕý: ḿéḿöŕý îš à šţöŕé öƒ šéĝḿéñţ þàîŕš, šö šéĝḿéñţàţîöñ
ḿàķéš þŕîöŕ šéñţéñçé ţŕàñšļàţîöñš ŕéüšàƃļé. Šéĝḿéñţ, ţĥéñ
recycleḿàţçĥéš šéñţéñçé ƃý šéñţéñçé: ŵĥéñ à ƃļöçķ çàŕŕîéš à ḿüļţî-šéĝḿéñţ öṽéŕļàý, éàçĥ šéñţéñçé îš ļööķéđ üþ àĝàîñšţ ḿéḿöŕý àñđ ţĥé ƃļöçķ ţàŕĝéţ îš àššéḿƃļéđ ƒŕöḿ ţĥé þéŕ-šéĝḿéñţ ḿàţçĥéš, šö à þàŕàĝŕàþĥ ŵĥöšé šéñţéñçéš ŵéŕé ţŕàñšļàţéđ ƃéƒöŕé îš ļéṽéŕàĝéđ éṽéñ ţĥöüĝĥ ţĥé þàŕàĝŕàþĥ àš à ŵĥöļé ŵàš ñéṽéŕ à šîñĝļé éñţŕý. - ÀÎ ţŕàñšļàţîöñ: ţŕàñšļàţîñĝ þéŕ šéĝḿéñţ ķééþš éàçĥ üñîţ šḿàļļ àñđ šéļƒ-çöñţàîñéđ, ŵĥîçĥ îḿþŕöṽéš çöñšîšţéñçý àñđ ļéţš þàŕţîàļ ḿàţçĥéš àñđ ƒüļļ-šéĝḿéñţ ḿàţçĥéš çöéẋîšţ îñ öñé ƃļöçķ.
- Çĥéçķš: ļéñĝţĥ, çöñšîšţéñçý, àñđ öţĥéŕ çĥéçķš öþéŕàţé þéŕ šéĝḿéñţ ŵĥéñ àñ öṽéŕļàý îš þŕéšéñţ, šö à ƒîñđîñĝ þöîñţš àţ ţĥé öƒƒéñđîñĝ šéñţéñçé.
Ŕéļàţéđ
- Çöñţéñţ þŕéþàŕàţîöñ: šéĝḿéñţàţîöñ ƃéšîđé ţéŕḿîñöļöĝý îñ öñé àüţĥöŕîñĝ þàšš.
- Çöñţéñţ ḿéḿöŕý: šéñţéñçé-ƃý-šéñţéñçé ŕéüšé.
- Ḿ-02: ŠàŢ Šéĝḿéñţéŕ Þļüĝîñ: ţĥé ḾĻ éñĝîñé'š đéšîĝñ.