Text Chunker

v0.1.02026年9月26日 に追加サンプルデータ

RAG 向けの再帰的なテキスト分割。段落・文・単語の境目で文書を区切り、指定した大きさと重なり幅のチャンクにします。

サンプルデータです。この数値は仮のもので、実測ではありません。

cargo install kura-rs
kura add text-chunker

2 個のソースファイルを自分のプロジェクトにコピーします。以後、コードはあなたのものです。

別のツールの kura コマンドとぶつかる場合は、cargo install kura-rs --bin kura-rs で入れて kura-rs add を使ってください。

use crate::parts::text_chunker::Chunker;

let chunker = Chunker::new(1_000).overlap(200);

for chunk in chunker.split(&document) {
    index.add(chunk.text, chunk.range);
}

検証

サンプルデータ

langchain-text-splitters 0.3.8(Python)と差分テストで比較しました。同じ入力を両方の実装に与え、出力を突き合わせています。

参照実装
langchain-text-splitters
Python 0.3.8
テストケース
2,400
差分テスト
成功
2,400 / 2,400
すべて一致
最終実行
2026年9月26日
UTC

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。

ベンチマーク

サンプルデータ

入力サイズごとに kura-rs(Rust)と langchain-text-splitters を比べています。 計測したすべての入力サイズで速い。最大 26× 速い。

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。

kura-rs (Rust)langchain-text-splitters
1回あたりの処理時間(短いほど良い)。
数値の表を見る
入力サイズkura-rs (Rust)langchain-text-splitters倍率
10.08 ms0.9 ms11×
100.4 ms6.2 ms16×
1003.1 ms71 ms23×
1,00029 ms720 ms25×
10,000290 ms7.4 s26×

ファイル

  • parts/text_chunker/mod.rs
  • parts/text_chunker/boundaries.rs

依存する crate