解析用自然语言写的数字

number-parser的Python项目详细描述


Supported Python Versions

number-parser是一个简单的库,允许您转换以自然方式编写的数字 它的等价数字形式的语言。它目前支持下列基数 语言-英语,印地语,西班牙语和俄语以及英语中的序数。在

安装

pip install number-parser

数字解析器需要python3.6+。在

使用

该库提供了三个主要的api,它们对应于以下常见用法。在

接口1:多个号码

识别文本字符串中的数字,将其转换为相应的数值,同时忽略非数字单词。 这也支持序数转换(仅限英语)。在

^{pr2}$

接口2:单号

把一个用单词写的数字转换成它对应的整数。在

>>> from number_parser import parse_number
>>> parse_number("two thousand and twenty")
2020
>>> parse_number("not_a_number")

接口3:单数序数

将一个用单词写成的序数转换成它对应的整数。(仅支持英语)

>>> from number_parser import parse_ordinal
>>> parse_ordinal("twenty third")
23
>>> parse_ordinal("seventy fifth")
75

语言支持

默认语言是英语,您可以通过其他语言对应的语言环境传递language参数。 它目前支持下列基数 语言-英语,印地语,西班牙语和俄语以及英语中的序数。在

>>> 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.1.0(2020-07-30)

初始版本。在

0.2.0(2020-08-18)

序数支持

0.2.1(2020-08-25)

修复标记化错误-印地语

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java随机填充2d数组   java运行时。getRuntime。带有长参数的exec(cmd)   java Minecraft无法放置自定义背景   java AChartEngine YAxis自定义标签区域边距和图表值为字符串?   泛型类的java类型安全错误   整数的java符号等价物。toBinaryString方法?   Java中数组列表的数组   java WebView应用程序在谷歌登录后显示空白屏幕   java从backback中删除特定片段   如果服务器不支持使用的协议,java JSSE是否实现回退?   java Sonarqube正在进行核心漏洞查找。如何解决   javajavax。jcr。UnsupportedPositionOperationException:testVersionable处的节点不可版本化   java在安卓中每隔X小时运行一次文件/函数,无需打开应用程序   java如何为磁盘持久性配置BigMemory?   java BufferWriter不转换383以上的整数   Java7交集类型:规范具体说明了什么?   Java:CollectionHow创建多列   java如何检测运算符的空白   java问题:在firebase中为导航栏中的第二个表单提交数据第一个表单工作正常。实际isse是连接Mainactivity中的另一个活动