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
数値の表を見る
| 入力サイズ | kura-rs (Rust) | unicodedata | 倍率 |
|---|---|---|---|
| 10 | 0.01 ms | 0 ms | 3.0× 遅い |
| 100 | 0.02 ms | 0.02 ms | 1.1× 遅い |
| 1,000 | 0.09 ms | 0.16 ms | 1.8× |
| 10,000 | 0.8 ms | 1.7 ms | 2.1× |
| 100,000 | 7.9 ms | 17 ms | 2.2× |
| 1,000,000 | 78 ms | 172 ms | 2.2× |
ファイル
- parts/unicode_normalize/mod.rs