#nlp #numbers #language #english #french #spanish #digits

text2num

将英语、荷兰语、西班牙语、德语、意大利语或法语书写的数字转换为它们的数字表示形式

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文本处理

Download history 3/week @ 2024-04-26 1/week @ 2024-05-03 3/week @ 2024-05-10 12/week @ 2024-05-24 12/week @ 2024-05-31 98/week @ 2024-06-07 51/week @ 2024-06-14 1/week @ 2024-06-21 125/week @ 2024-06-28 73/week @ 2024-07-05 159/week @ 2024-07-12 58/week @ 2024-07-19 9/week @ 2024-07-26

145 每月下载量

MIT 许可证

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