furigana

Crates.io docs.rs Crates.io GitHub

furigana is a Rust library that contains functionality for correctly mapping furigana to a word given a reading, and optionally kanji reading data.

Usage

rs for mapping in furigana::map_naive("物の怪", "もののけ") { println!("{mapping}"); }

prints out the following mappings:

のけ

もの

Only the first reading is actually valid, but based only on a word and its reading there's no way to know that.

If given information about kanji readings (for example, from KANJIDIC2), furigana::map is able to grade the potential mappings:

rs let mut kanji_to_readings = HashMap::new(); kanji_to_readings.insert("物".to_string(), vec!["もの".to_string()]); kanji_to_readings.insert("怪".to_string(), vec!["け".to_string()]); let mapping = furigana::map("物の怪", "もののけ", &kanji_to_readings) .into_iter() .max_by_key(|f| f.accuracy) .unwrap(); println!("{mapping}");

assigns a high accuracy value to the correct reading and a low value to the other one, so that only the correct mapping is printed:

もの

Notes

License

Licensed under the Mozilla Public License Version 2.0.