3 个版本
0.5.4 | 2021年5月25日 |
---|---|
0.5.3 | 2021年5月25日 |
0.5.1 | 2021年5月24日 |
#1844 in 文本处理
在 yake-rust 中使用
21KB
163 行
Contractions
注意: Contractions
的 API 尚未稳定,仍在开发中
contractions
是一个用于处理英语缩写的 Rust 库。
目前只实现了扩展缩写的数据集。
将 "I’m" 扩展为 "I am" 等。
默认数据集对所有全小写、全大写和首字母大写的缩写都有替换。
示例
let contractions = contractions::Contractions::default();
assert_eq!("I am sure you would have been fine.", contractions.apply("I’m sure you’d’ve been fine."));
assert_eq!("Are you sure?", contractions.apply("R u sure?"));
let mut contractions = Contractions::new();
contractions.add_from_json(contractions::SINGLE_CONTRACTIONS_JSON);
assert_eq!("I am sad you couldn’t’ve come.", contractions.apply("I’m sad you couldn’t’ve come."));
问题案例(默认数据集)
- Ain’t "The word ’ain’t’ is a contraction for am not, is not, are not, has not, and have not in the common English language vernacular. In some dialects ain’t is also used as a contraction of do not, does not, and did not." - https://en.wikipedia.org/wiki/Ain’t
- 默认数据集不替换 "Ain’t"
- 一些带有 "’s" 的缩写可以是 "is" 或所有格
- 默认数据集替换 "Everyone’s" => "Everyone is"
- 默认数据集替换 "Somebody’s" => "Somebody is"
- 默认数据集替换 "Someone’s" => "Someone is"
- 默认数据集不替换任何其他带有 "’s" 的缩写,如 "Carl’s"
- She’s / He’s / It’s
- "He’s" 可以是 "He is" 或 "He has"。
- 默认数据集替换 "He’s" => "He is", "She’s" => "She is", "It’s" => "It is"
依赖关系
~2.8–4.5MB
~89K SLoC