Šķîþ ţö ḿàîñ çöñţéñţ

Šéĝḿéñţàţîöñ

Àüţĥöŕš đöñ'ţ šéţ öüţ ţö šéĝḿéñţ. Ţĥéý ŵàñţ ţĥéîŕ þàšţ ţŕàñšļàţîöñš ŕéüšéđ, àñđ éàçĥ šéñţéñçé ţŕàñšļàţéđ àñđ çĥéçķéđ öñ îţš öŵñ, àñđ šéĝḿéñţàţîöñ ḿàķéš ƃöţĥ þöššîƃļé. Çöñţéñţ ḿéḿöŕý îš à šţöŕé öƒ šéĝḿéñţ þàîŕš, šö ƃöüñđàŕîéš ļéţ þŕîöŕ šéñţéñçéš ḿàţçĥ. Þéŕ-šéĝḿéñţ ţŕàñšļàţîöñ àñđ çĥéçķš ķééþ éàçĥ üñîţ šḿàļļ àñđ þîñ à ƒîñđîñĝ ţö ţĥé šéñţéñçé ţĥàţ ƃŕöķé.

Šéĝḿéñţàţîöñ đîṽîđéš à ƃļöçķ'š šöüŕçé îñţö ţĥé üñîţš à ţŕàñšļàţöŕ öŕ ḿöđéļ ŵöŕķš öñ, üšüàļļý šéñţéñçéš. ñéöķàþî ŕéçöŕđš îţ àš à ŕüñ-àñçĥöŕéđ šţàñđ-öƒƒ öṽéŕļàý: šþàñš öṽéŕ ţĥé éẋîšţîñĝ ŕüñš, ŵĥîçĥ šţàý éẋàçţļý àš ţĥéý ŵéŕé ŕéàđ (Ƒ-02: Çöñţéñţ Ḿöđéļ). À ƃļöçķ çàñ çàŕŕý šéṽéŕàļ šéĝḿéñţàţîöñ ļàýéŕš àţ öñçé, àñđ ŕéḿöṽîñĝ ţĥé öṽéŕļàý ŕéšţöŕéš ţĥé üñšéĝḿéñţéđ ƃļöçķ éẋàçţļý.

šéĝḿéñţ (öṽéŕļàý öñļý; šöüŕçé ŕüñš üñçĥàñĝéđ)Block source"Dr. Smith arrived. He was late."segmentation overlay← anchored to run-index rangessegment[0, 18) · "Dr. Smith arrived."segment[19, 31) · "He was late."

Šéĝḿéñţàţîöñ îš à çĥéçķ-ļîķé àññöţàţîöñ, þŕöđüçéđ àƒţéŕ àñý ţŕàñšƒöŕḿéŕš ĥàṽé šéţţļéđ ţĥé šöüŕçé, šö éṽéŕý ƃöüñđàŕý îš àñçĥöŕéđ ţö ţĥé çàñöñîçàļ ŕüñš ţĥàţ ţŕàñšļàţîöñ àñđ çöñţéñţ ḿéḿöŕý ŵîļļ àļšö šéé. ΃ à ļàţéŕ ţŕàñšƒöŕḿéŕ đöéš ŕéŵŕîţé ţĥé šöüŕçé, ţĥé ƒŕàḿéŵöŕķ àþþļîéŕ ŕéƃàšéš ţĥé ƃöüñđàŕîéš öñţö ţĥé ñéŵ ŕüñš.

Ŵĥý šţàñđ-öƒƒ​

À šţŕüçţüŕàļ šþļîţ ƒöŕçéš à çĥöîçé àţ þàŕšé ţîḿé àñđ îš ļöššý: ŕé-ĵöîñîñĝ šéĝḿéñţš ţö ŕéçöṽéŕ ţĥé öŕîĝîñàļ þàŕàĝŕàþĥ îš ƒîđđļý, àñđ îñļîñé ḿàŕķüþ ţĥàţ šţŕàđđļéš à ƃöüñđàŕý ĥàš ţö ƃé đüþļîçàţéđ. Àñ öṽéŕļàý àṽöîđš ƃöţĥ. Ţĥé šàḿé ƃļöçķ çàñ ĥöļđ:

  • à šéñţéñçé ļàýéŕ ƒöŕ ţŕàñšļàţîöñ àñđ ḿéḿöŕý ļööķüþ,
  • à çöàŕšéŕ çļàüšé öŕ çĥüñķ ļàýéŕ ƒöŕ àñ ĻĻḾ ţĥàţ þŕéƒéŕš ļàŕĝéŕ üñîţš,

àñđ à ţööļ ţĥàţ îĝñöŕéš šéĝḿéñţàţîöñ šţîļļ šééš à çļéàñ, ŵĥöļé ƃļöçķ. Ƃîļîñĝüàļ ƒöŕḿàţš ţĥàţ ñééđ šţàñđàļöñé šéĝḿéñţš (ẊĻÎƑƑ <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 ḿàţçĥéš šéñţéñçé ƃý šéñţéñçé: ŵĥéñ à ƃļöçķ çàŕŕîéš à ḿüļţî-šéĝḿéñţ öṽéŕļàý, éàçĥ šéñţéñçé îš ļööķéđ üþ àĝàîñšţ ḿéḿöŕý àñđ ţĥé ƃļöçķ ţàŕĝéţ îš àššéḿƃļéđ ƒŕöḿ ţĥé þéŕ-šéĝḿéñţ ḿàţçĥéš, šö à þàŕàĝŕàþĥ ŵĥöšé šéñţéñçéš ŵéŕé ţŕàñšļàţéđ ƃéƒöŕé îš ļéṽéŕàĝéđ éṽéñ ţĥöüĝĥ ţĥé þàŕàĝŕàþĥ àš à ŵĥöļé ŵàš ñéṽéŕ à šîñĝļé éñţŕý.
  • ÀÎ ţŕàñšļàţîöñ: ţŕàñšļàţîñĝ þéŕ šéĝḿéñţ ķééþš éàçĥ üñîţ šḿàļļ àñđ šéļƒ-çöñţàîñéđ, ŵĥîçĥ îḿþŕöṽéš çöñšîšţéñçý àñđ ļéţš þàŕţîàļ ḿàţçĥéš àñđ ƒüļļ-šéĝḿéñţ ḿàţçĥéš çöéẋîšţ îñ öñé ƃļöçķ.
  • Çĥéçķš: ļéñĝţĥ, çöñšîšţéñçý, àñđ öţĥéŕ çĥéçķš öþéŕàţé þéŕ šéĝḿéñţ ŵĥéñ àñ öṽéŕļàý îš þŕéšéñţ, šö à ƒîñđîñĝ þöîñţš àţ ţĥé öƒƒéñđîñĝ šéñţéñçé.

Ŕéļàţéđ​