Skip to main content

Crate kaiji

Crate kaiji 

Source
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;

Modules§

config
dedup
error
matcher
normalize
normalizer
similarity
variants