跳转到主要内容

将自然语言书写的数字转换为等效的数字形式

项目描述

Supported Python Versions

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)

初始发布。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

number-parser-0.3.2.tar.gz (42.4 kB 查看哈希值)

上传时间

构建分发

number_parser-0.3.2-py2.py3-none-any.whl (51.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面