将自然语言书写的数字转换为等效的数字形式
项目描述
number-parser 是一个简单的库,允许您将自然语言书写的数字转换为等效的数字形式。目前它支持以下语言的基数词 - 英语、印地语、西班牙语、乌克兰语和俄语,以及英语的序数词。
安装
pip install number-parser
number-parser 需要 Python 3.7+。
用法
该库提供以下常用用法。
原地转换数字
识别文本字符串中的数字,将它们转换为相应的数值,同时忽略非数字单词。这也支持序数词转换(仅限英语)。
>>> from number_parser import parse >>> parse("I have two hats and thirty seven coats") 'I have 2 hats and 37 coats' >>> parse("One, Two, Three go") '1, 2, 3 go' >>> parse("First day of year two thousand") '1 day of year 2000'
解析数字
将用文字书写的单个数字转换为相应的整数。
>>> from number_parser import parse_number >>> parse_number("two thousand and twenty") 2020 >>> parse_number("not_a_number")
解析序数词
将用文字书写的单个序数词转换为相应的整数。(仅限英语支持)
>>> from number_parser import parse_ordinal >>> parse_ordinal("twenty third") 23 >>> parse_ordinal("seventy fifth") 75
解析分数
将用文字书写的分数转换为相应的整数分数。(仅限英语支持)
>>> from number_parser import parse_fraction >>> parse_fraction("forty two divided by five hundred and six") '42/506' >>> parse_fraction("one over two") '1/2' >>> parse_fraction("forty two / one million") '42/1000000'
语言支持
默认语言为英语,您可以通过传递相应的语言区域参数来使用其他语言。目前支持以下语言的基数词 - 英语、印地语、西班牙语、乌克兰语和俄语,以及英语的序数词。
>>> from number_parser import parse, parse_number >>> parse("Hay tres gallinas y veintitrés patos", language='es') 'Hay 3 gallinas y 23 patos' >>> parse_number("चौदह लाख बत्तीस हज़ार पाँच सौ चौबीस", language='hi') 1432524
支持的案例
该库具有广泛的测试。以下是一些支持的案例。
在形成数字时准确处理连词的使用。
>>> parse("doscientos cincuenta y doscientos treinta y uno y doce", language='es') '250 y 231 y 12'
处理没有适当分隔符的模糊情况。
>>> parse("two thousand thousand") '2000 1000' >>> parse_number("two thousand two million") 2002000000
处理不同语言中相同数字的不同形式。
>>> parse_number("пятисот девяноста шести", language='ru') 596 >>> parse_number("пятистам девяноста шести", language='ru') 596 >>> parse_number("пятьсот девяносто шесть", language='ru') 596
贡献
变更
0.3.2 (2023-03-28)
修复:- 修复导入错误 (#91)
0.3.1 (2023-03-22)
改进:- 添加 Python 3.10、3.11 支持 (#83) - 添加 __version__ (#87) - 将 OrderedDict 替换为 dict (#88)
修复:- 在数字后的句子分隔符周围的空白处理不一致 (#76, #77)
0.3.0 (2022-10-20)
改进:- 添加对西班牙语中更大数字的支持 (#43) - 添加 pytest flake8 (#44) - 重构代码 (#45) - 改进测试 (#46) - 改进脚本 (#47) - 添加测试 (#50, #72) - 添加 GitHub actions (#54, #55, #56, #57) - 添加对简单分数的支持 (#60)
新功能:- 添加解析乌克兰语中数字的功能 (#79)
0.2.1 (2020-08-25)
修复分词错误 - 印地语
0.2.0 (2020-08-18)
序数词支持
0.1.0 (2020-07-30)
初始发布。