Šéĝḿéñţàţîöñ
Šéĝḿéñţàţîöñ îš à ḿéàñš: àüţĥöŕš đöñ'ţ šéţ öüţ "ţö šéĝḿéñţ," ţĥéý ŵàñţ ţĥéîŕ þàšţ ţŕàñšļàţîöñš ŕéüšéđ àñđ éàçĥ šéñţéñçé ţŕàñšļàţéđ àñđ çĥéçķéđ öñ îţš öŵñ. Šéĝḿéñţàţîöñ îš ŵĥàţ ḿàķéš ƃöţĥ þöššîƃļé: çöñţéñţ ḿéḿöŕý îš à šţöŕé öƒ šéĝḿéñţ þàîŕš, šö ƃöüñđàŕîéš àŕé ŵĥàţ ļéţ þŕîöŕ šéñţéñçéš ḿàţçĥ, àñđ þéŕ-šéĝḿéñţ ţŕàñšļàţîöñ àñđ çĥéçķš ķééþ éàçĥ üñîţ šḿàļļ àñđ à ƒîñđîñĝ þîññéđ ţö ţĥé šéñţéñçé ţĥàţ ƃŕöķé. Ţĥîš þàĝé îš ţĥé éñĝîñé ŕéƒéŕéñçé ƒöŕ ţĥé ƒŕàḿéŵöŕķ üšéŕš ŵĥö çöñƒîĝüŕé ţĥàţ ƃéĥàṽîöŕ.
Îţ đîṽîđéš à ƃļöçķ'š šöüŕçé îñţö ţĥé üñîţš à ţŕàñšļàţöŕ öŕ ḿöđéļ ŵöŕķš öñ, üšüàļļý šéñţéñçéš. Îñ neokapi šéĝḿéñţàţîöñ îš à ŕüñ-àñçĥöŕéđ šţàñđ-öƒƒ öṽéŕļàý ŕàţĥéŕ ţĥàñ à šţŕüçţüŕàļ šþļîţ: ţĥé ƃöüñđàŕîéš àŕé ŕéçöŕđéđ àš šþàñš öṽéŕ ţĥé éẋîšţîñĝ ŕüñš, àñđ ţĥé šöüŕçé ŕüñš ţĥéḿšéļṽéš àŕé ñéṽéŕ ŕéŵŕîţţéñ (Ƒ-02: Çöñţéñţ Ḿöđéļ). À ƃļöçķ çàñ çàŕŕý šéṽéŕàļ šéĝḿéñţàţîöñ ļàýéŕš àţ öñçé, àñđ ŕéḿöṽîñĝ ţĥé öṽéŕļàý ŕéšţöŕéš ţĥé üñšéĝḿéñţéđ ƃļöçķ éẋàçţļý.
Ƃéçàüšé šéĝḿéñţàţîöñ îš àñ öṽéŕļàý ŕàţĥéŕ ţĥàñ àñ éđîţ, îţ îš à çĥéçķ-ļîķé àññöţàţîöñ: îţ îš þŕöđüçéđ àƒţéŕ àñý ţŕàñšƒöŕḿéŕš ĥàṽé šéţţļéđ ţĥé šöüŕçé, šö éṽéŕý ƃöüñđàŕý îš àñçĥöŕéđ ţö ţĥé çàñöñîçàļ ŕüñš ţĥàţ ţŕàñšļàţîöñ àñđ çöñţéñţ ḿéḿöŕý ŵîļļ àļšö šéé. ΃ à ļàţéŕ ţŕàñšƒöŕḿéŕ đöéš ŕéŵŕîţé ţĥé šöüŕçé, ţĥé ƒŕàḿéŵöŕķ àþþļîéŕ ŕéƃàšéš ţĥé ƃöüñđàŕîéš öñţö ţĥé ñéŵ ŕüñš.
Ŵĥý šţàñđ-öƒƒ
À šţŕüçţüŕàļ šþļîţ ƒöŕçéš à çĥöîçé àţ þàŕšé ţîḿé àñđ îš ļöššý: ŕé-ĵöîñîñĝ šéĝḿéñţš ţö ŕéçöṽéŕ ţĥé öŕîĝîñàļ þàŕàĝŕàþĥ îš ƒîđđļý, àñđ îñļîñé ḿàŕķüþ ţĥàţ šţŕàđđļéš à ƃöüñđàŕý ĥàš ţö ƃé đüþļîçàţéđ. Àñ öṽéŕļàý àṽöîđš ƃöţĥ. Ţĥé šàḿé ƃļöçķ çàñ ĥöļđ:
- à šéñţéñçé ļàýéŕ ƒöŕ ţŕàñšļàţîöñ àñđ ḿéḿöŕý ļööķüþ,
- à çöàŕšéŕ çļàüšé öŕ çĥüñķ ļàýéŕ ƒöŕ àñ ĻĻḾ ţĥàţ þŕéƒéŕš ļàŕĝéŕ üñîţš,
àñđ à ţööļ ţĥàţ îĝñöŕéš šéĝḿéñţàţîöñ šţîļļ šééš à çļéàñ, ŵĥöļé ƃļöçķ. Ƃîļîñĝüàļ
ƒöŕḿàţš ţĥàţ ñééđ šţàñđàļöñé šéĝḿéñţš (ẊĻÎƑƑ <mrk>, ŢḾẊ-šţýļé þàîŕš)
ḿàţéŕîàļîžé ţĥéḿ ƒŕöḿ ţĥé þŕîḿàŕý ļàýéŕ àţ þŕöĵéçţîöñ ţîḿé; ţĥé îñ-ḿéḿöŕý ḿöđéļ
ķééþš ţĥé ŕüñš îñţàçţ.
Éñĝîñéš
Ţĥé segmentation ţööļ šéļéçţš à šéĝḿéñţéŕ ƃàçķéñđ ƃý ñàḿé ţĥŕöüĝĥ --engine.
Éàçĥ éñĝîñé ŵŕîţéš ţĥé šàḿé öṽéŕļàý; ţĥéý đéŕ îñ ĥöŵ ţĥéý ƒîñđ ƃöüñđàŕîéš àñđ
ŵĥàţ ţĥéý çöšţ ţö ŕüñ.
| Éñĝîñé | Ƃöüñđàŕý šöüŕçé | Ñééđš | Üšé îţ ŵĥéñ |
|---|---|---|---|
srx (đéƒàüļţ) | ŠŔẊ 2.0 ŕüļéš: ţĥé ƒüļļ ŕüļéšéţ öṽéŕ à ÜÀẊ-29 ƃàšé ŵĥéŕé ÎÇÜ îš ļîñķéđ, à ŕéđüçéđ þüŕé-Ĝö ŕüļéšéţ öţĥéŕŵîšé | ñöţĥîñĝ (þüŕé Ĝö); üšéš ÎÇÜ ŵĥéñ þŕéšéñţ | Ýöü ŵàñţ đéţéŕḿîñîšţîç, ļàñĝüàĝé-ţüñàƃļé šéñţéñçé ƃöüñđàŕîéš, ţĥé îñđüšţŕý-šţàñđàŕđ ŕüļé ƒöŕḿàţ. |
uax29 | Üñîçöđé ÜÀẊ-29 šéñţéñçé ŕüļéš (ÎÇÜ) | çĝö + ÎÇÜ | Ýöü ŵàñţ ţĥé ƃàŕé Üñîçöđé ƃàšéļîñé ŵîţĥ ñö éẋçéþţîöñ ŕüļéš àñđ ÎÇÜ îš àṽàîļàƃļé. |
llm | Àñ ĻĻḾ àšķéđ ţö çĥüñķ šéḿàñţîçàļļý | àñ ĻĻḾ þŕöṽîđéŕ | Ýöü ŵàñţ ḿéàñîñĝ-àŵàŕé çĥüñķš (ļöñĝ-ƒöŕḿ þŕöšé, ḿîẋéđ çöñţéñţ) ŕàţĥéŕ ţĥàñ šéñţéñçé ƃöüñđàŕîéš. |
sat | Ţĥé ŵţþšþļîţ Šéĝḿéñţ àñý Ţéẋţ ÖÑÑẊ ḿöđéļ | ţĥé kapi-sat þļüĝîñ | Ýöü ñééđ ŕöƃüšţ ḿüļţîļîñĝüàļ öŕ üñþüñçţüàţéđ-ţéẋţ šéĝḿéñţàţîöñ ţĥàţ ŕüļéš ĥàñđļé þööŕļý. |
srx, uax29 àñđ sat þŕöđüçé à šéñţéñçé ļàýéŕ; llm þŕöđüçéš àñ
llm-chunk ļàýéŕ. Ļéàṽé --layer éḿþţý ţö àççéþţ ţĥé éñĝîñé'š ñàţüŕàļ ļàýéŕ, öŕ
šéţ îţ ţö ķééþ šéṽéŕàļ ļàýéŕš šîđé ƃý šîđé.
ŠŔẊ: ţĥé đéƒàüļţ
ŠŔẊ (Šéĝḿéñţàţîöñ Ŕüļéš éẊçĥàñĝé) îš ţĥé ĜÀĻÀ/ĻΊÀ šţàñđàŕđ ƒöŕ šéñţéñçé šéĝḿéñţàţîöñ: àñ öŕđéŕéđ ļîšţ öƒ ƃŕéàķ àñđ ñö-ƃŕéàķ ŕüļéš, šçöþéđ ƃý ļàñĝüàĝé. neokapi šĥîþš à ƒàîţĥƒüļ þüŕé-Ĝö ŠŔẊ 2.0 ŕüļé éñĝîñé, šö îţ ŕüñš éṽéŕýŵĥéŕé ŵîţĥ ñö ñàţîṽé đéþéñđéñçîéš, îñçļüđîñĝ îñ ţĥé ƃŕöŵšéŕ.
Ĥýƃŕîđ ƃý đéƒàüļţ, þüŕé-Ĝö éṽéŕýŵĥéŕé
ŠŔẊ šéĝḿéñţàţîöñ îñ þŕàçţîçé îš à ĥýƃŕîđ: ÎÇÜ'š ÜÀẊ-29 ƃŕéàķéŕ þŕöþöšéš ţĥé šéñţéñçé ƃöüñđàŕîéš àñđ ţĥé ŠŔẊ ŕüļéšéţ îš àþþļîéđ öñ ţöþ àš éẋçéþţîöñš: ţĥé đéƒàüļţ ŕüļéšéţ îš öṽéŕŵĥéļḿîñĝļý ñö-ƃŕéàķ ŕüļéš, šçöþéđ þéŕ ļàñĝüàĝé, ŵîţĥ öñļý à ĥàñđƒüļ öƒ ƃŕéàķ ŕüļéš. neokapi îḿþļéḿéñţš ţĥîš ĥýƃŕîđ đîŕéçţļý:
- Ŵĥéŕé ÎÇÜ îš ļîñķéđ (éṽéŕý šĥîþþéđ ñàţîṽé ƃîñàŕý: ÇĻÎ, đéšķţöþ, šéŕṽéŕ),
ţĥé
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ḿàţçĥéš šéñţéñçé ƃý šéñţéñçé: ŵĥéñ à ƃļöçķ çàŕŕîéš à ḿüļţî-šéĝḿéñţ öṽéŕļàý, éàçĥ šéñţéñçé îš ļööķéđ üþ àĝàîñšţ ḿéḿöŕý àñđ ţĥé ƃļöçķ ţàŕĝéţ îš àššéḿƃļéđ ƒŕöḿ ţĥé þéŕ-šéĝḿéñţ ḿàţçĥéš, šö à þàŕàĝŕàþĥ ŵĥöšé šéñţéñçéš ŵéŕé ţŕàñšļàţéđ ƃéƒöŕé îš ļéṽéŕàĝéđ éṽéñ ţĥöüĝĥ ţĥé þàŕàĝŕàþĥ àš à ŵĥöļé ŵàš ñéṽéŕ à šîñĝļé éñţŕý. - ÀÎ ţŕàñšļàţîöñ: ţŕàñšļàţîñĝ þéŕ šéĝḿéñţ ķééþš éàçĥ üñîţ šḿàļļ àñđ šéļƒ-çöñţàîñéđ, ŵĥîçĥ îḿþŕöṽéš çöñšîšţéñçý àñđ ļéţš þàŕţîàļ ḿàţçĥéš àñđ ƒüļļ-šéĝḿéñţ ḿàţçĥéš çöéẋîšţ îñ öñé ƃļöçķ.
- Çĥéçķš: ļéñĝţĥ, çöñšîšţéñçý, àñđ öţĥéŕ çĥéçķš öþéŕàţé þéŕ šéĝḿéñţ ŵĥéñ àñ öṽéŕļàý îš þŕéšéñţ, šö à ƒîñđîñĝ þöîñţš àţ ţĥé öƒƒéñđîñĝ šéñţéñçé ŕàţĥéŕ ţĥàñ ţĥé ŵĥöļé ƃļöçķ.
Šéĝḿéñţàţîöñ àñđ ţéŕḿîñöļöĝý àŕé ŕüñ-àñçĥöŕéđ öṽéŕļàýš ţĥàţ þŕéþàŕé à šöüŕçé ƒöŕ ţŕàñšļàţîöñ; šéé Çöñţéñţ þŕéþàŕàţîöñ ƒöŕ ĥöŵ ţĥéý çöḿþöšé îñţö öñé àüţĥöŕîñĝ þàšš.