13 个稳定版本
1.1.5 | 2023年5月23日 |
---|---|
1.1.4 | 2022年10月28日 |
1.1.2 | 2022年6月28日 |
1.0.10 | 2021年10月22日 |
1.0.2 | 2021年1月11日 |
#227 in 文本处理
18KB
389 行
卡托伊
Rust 文本女性化库
- 目前使用来自 http://opencorpora.org 的俄语
- 使用 xmlparser 进行 性能优化
- 将解析后的卡托伊导出为二进制格式
- 使用 load(从 bincode)来加速!
- 两种模式(极端和常规)
用法
从 xml 进行序列化并将导出为二进制序列化格式(虽然,导出是可选的,从 xml 导出已经足够快)
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(())
}
少量测试和从二进制导入
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(())
}
依赖项
~455KB