Crates.io | kathoey |
lib.rs | kathoey |
version | 1.1.5 |
source | src |
created_at | 2021-01-11 14:57:22.681609 |
updated_at | 2023-05-23 11:10:12.466407 |
description | Rust library for text feminization using open corpus linguistics data |
homepage | |
repository | https://github.com/Miezhiko/Kathoey |
max_upload_size | |
id | 340444 |
size | 26,546 |
Rust library for text feminization
Serialization from xml and export to binary serialized format (tho, export is optional, export from xml is fast enough)
fn from_xml() -> eyre::Result<()> {
match Kathoey::from_xml("dict.opcorpora.xml") {
Ok(k) => {
if let Err(exerr) = k.save("dict.bin") {
return
Err(eyre!("Failed to export {:?}", exerr));
}
}
Err(kerr) => {
return
Err(eyre!("Failed to create {:?}", kerr));
}
}
Ok(())
}
Few test and import from binary:
fn from_binary() -> eyre::Result<()> {
match Kathoey::load("dict.bin") {
Ok(k) => {
assert_eq!("Я сделала это!", k.feminize("Я сделал это!"));
assert_eq!("Я потеряла ключи", k.feminize("Я потерял ключи"));
assert_eq!("Хорошо, я ответила.", k.feminize("Хорошо, я ответил."));
assert_eq!("Я не хотела этого говорить на случай, если ты увидишь",
k.feminize("Я не хотел этого говорить на случай, если ты увидишь"));
assert_eq!("Я уверена, что у него была идея получше, он просто забыл",
k.feminize("Я уверен, что у него была идея получше, он просто забыл"));
assert_eq!("Вообще-то, я была немного удивлена.",
k.feminize("Вообще-то, я был немного удивлен."));
assert_eq!("Мне нравилось, когда я в аниме и не беспокойся о спойлерах.",
k.feminize("Мне нравилось, когда я в аниме и не беспокойся о спойлерах."));
assert_eq!("Я скажу ему это.",
k.feminize("Я скажу ему это."));
assert_eq!("Начала наруто смотреть",
k.feminize("Начал наруто смотреть"));
}
Err(kerr) => {
return
Err(eyre!("Failed to import rs {:?}", kerr));
}
}
Ok(())
}