Expand description
§kaiji — CJK Fuzzy Match & Normalization Engine
High-performance normalization and fuzzy matching for Japanese, Chinese, and Korean text.
§Quick start
use kaiji::{Normalizer, matches_default, normalize_default, similarity_score, NormalizerConfig};
// Fuzzy name matching — variant characters are folded before comparison
assert!(matches_default("斎藤", "齋藤").unwrap());
assert!(matches_default("渡辺", "渡邊").unwrap());
// Normalization — zero allocation when input is already canonical
let s = normalize_default("齋藤一郎").unwrap();
assert_eq!(s, "斉藤一郎");
// Similarity score (Jaro-Winkler on normalized strings)
let cfg = NormalizerConfig::default();
assert_eq!(similarity_score("斎藤", "齋藤", &cfg).unwrap(), 1.0);
// Builder API with width normalization
let n = Normalizer::builder()
.width_normalization(true)
.fold_variants(true)
.strip_ivs(true)
.build();
assert_eq!(n.normalize("ABC齋藤").unwrap(), "ABC斉藤");Re-exports§
pub use config::ChineseConvertMode;pub use config::NormalizerConfig;pub use dedup::group_variants;pub use error::CjkFuzzyError;pub use error::Result;pub use matcher::matches;pub use matcher::matches_default;pub use normalize::normalize;pub use normalize::normalize_default;pub use normalize::normalize_iter;pub use normalizer::Normalizer;pub use normalizer::NormalizerBuilder;pub use similarity::similarity_score;