Unicode Normalize

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

テキスト処理のための Unicode の整形。NFC/NFKC 正規化、空白のまとめ、見えない文字の除去を行います。

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

cargo install kura-rs
kura add unicode-normalize

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

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

use crate::parts::unicode_normalize::{normalize, Options};

let clean = normalize(&raw, Options::nfkc().fold_whitespace().strip_invisible());

検証

サンプルデータ

unicodedata 3.12(Python)と性質ベースのテストで比較しました。同じ入力を両方の実装に与え、出力を突き合わせています。

参照実装
unicodedata
Python 3.12
テストケース
10,000
性質ベースのテスト
成功
10,000 / 10,000
すべて一致
最終実行
2026年9月26日
UTC

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

ベンチマーク

サンプルデータ

入力サイズごとに kura-rs(Rust)と unicodedata を比べています。 入力が約 143 件を超えると速い。最大 2.2× 速い。

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

kura-rs (Rust)unicodedata
1回あたりの処理時間(短いほど良い)。 網掛けの範囲では参照実装の方が速い。
数値の表を見る
入力サイズkura-rs (Rust)unicodedata倍率
100.01 ms0 ms3.0× 遅い
1000.02 ms0.02 ms1.1× 遅い
1,0000.09 ms0.16 ms1.8×
10,0000.8 ms1.7 ms2.1×
100,0007.9 ms17 ms2.2×
1,000,00078 ms172 ms2.2×

ファイル

  • parts/unicode_normalize/mod.rs

依存する crate