13 个稳定版本
新功能 2.5.0 | 2024 年 8 月 23 日 |
---|---|
2.4.1 | 2024 年 7 月 18 日 |
2.3.0 | 2024 年 6 月 28 日 |
2.1.4 | 2023 年 8 月 29 日 |
1.7.0 | 2021 年 12 月 6 日 |
198 在 文本处理 中
145 每月下载量
170KB
4K SLoC
将英语、荷兰语、西班牙语、德语、意大利语或法语书写的数字转换为它们的数字表示形式。
此包提供库以识别、解析和将自然语言中表达的数量(十进制)转录为数字。
示例
检查某些字符串是否为给定语言的合法数字
use text2num::{Language, text2digits};
let es = Language::spanish();
let utterance = "ochenta y cinco";
match text2digits(utterance, &es) {
Ok(repr) => println!("'{}' means {} in Spanish", utterance, repr),
Err(_) => println!("'{}' is not a number in Spanish", utterance)
}
当运行上述代码时,应打印 'ochenta y cinco' 在西班牙语中表示 85 in Spanish
到标准输出。
在自然语言字符串中查找和替换数字
通常,你只是想重写包含自然语言的字符串,使其包含的数字(基数词、序数词、小数)以数字(十进制)形式出现。
由于孤立的较小数字在纯文本中可能更容易阅读,你可以指定一个阈值,在此阈值以下,孤立的简单基数词和序数词不会被替换。
use text2num::{Language, replace_numbers};
let en = Language::english();
let sentence = "Let me show you two things: first, isolated numbers are treated differently than groups like one, two, three. And then, that decimal numbers like three point one four one five are well understood.";
assert_eq!(
replace_numbers(sentence, &en, 10.0),
"Let me show you two things: first, isolated numbers are treated differently than groups like 1, 2, 3. And then, that decimal numbers like 3.1415 are well understood."
);
assert_eq!(
replace_numbers(sentence, &en, 0.0),
"Let me show you 2 things: 1st, isolated numbers are treated differently than groups like 1, 2, 3. And then, that decimal numbers like 3.1415 are well understood."
);
有关更高级的使用(例如,在标记流中),请参阅 文档。
依赖关系
~3MB
~63K SLoC