Package: cn2an
cn2an: Chinese Numerals To Arabic Numerals📦cn2an是一个快速转化中文数字和阿拉伯数字的工具包！🔗点击访问 DEMO🎈v0.5.22 update: replace print with warning.warn🎈en2an: 「英文数字」和「阿拉伯数字」互转正在收集需求中！详情🎈Cn2An.jl: Julia 语言版本已经上线，正在丰富基础功能。详情1 功能1.1中文数字=>阿拉伯数字支持中文数字=>阿拉伯数字；支持大写中文数字=>阿拉伯数字；支持中文数字和阿拉伯数字=>阿拉伯数字；1.2阿拉伯数字=>中文数字支持阿拉伯数字=>中文数字；支持阿拉伯数字=>大写中文数字；支持阿拉伯数字=>大写人民币；1.3 句子转化支持中文数字=>阿拉伯数字；支持日期；支持分数；支持百分比；支持摄氏度；支持阿拉伯数字=>中文数字；支持日期；支持分数；支持百分比；支持摄氏度；1.4 其他支持小数；支持负数；支持HTTP API。2 安装⚠️ 注意：本地安装仅支持 Python 的 3.6 以上版本；其他语言用户可以考虑使用HTTP API；尽可能使用cn2an的最新版本。2.1 使用 pip 安装pipinstallcn2an-U2.2 从代码库安装gitclonehttps://github.com/Ailln/cn2an.gitcdcn2an&&pythonsetup.pyinstall3 使用# 在文件首部引入包importcn2an# 查看当前版本号print(cn2an.__version__)# 0.5.223.1中文数字=>阿拉伯数字最大支持到10**16，即千万亿，最小支持到10**-16。importcn2an# 在 strict 模式（默认）下，只有严格符合数字拼写的才可以进行转化output=cn2an.cn2an("一百二十三")# 或者output=cn2an.cn2an("一百二十三","strict")# output:# 123# 在 normal 模式下，可以将 一二三 进行转化output=cn2an.cn2an("一二三","normal")# output:# 123# 在 smart 模式下，可以将混合拼写的 1百23 进行转化output=cn2an.cn2an("1百23","smart")# output:# 123# 以上三种模式均支持负数output=cn2an.cn2an("负一百二十三","strict")# output:# -123# 以上三种模式均支持小数output=cn2an.cn2an("一点二三","strict")# output:# 1.233.2阿拉伯数字=>中文数字最大支持到10**16，即千万亿，最小支持到10**-16。importcn2an# 在 low 模式（默认）下，数字转化为小写的中文数字output=cn2an.an2cn("123")# 或者output=cn2an.an2cn("123","low")# output:# 一百二十三# 在 up 模式下，数字转化为大写的中文数字output=cn2an.an2cn("123","up")# output:# 壹佰贰拾叁# 在 rmb 模式下，数字转化为人民币专用的描述output=cn2an.an2cn("123","rmb")# output:# 壹佰贰拾叁元整# 以上三种模式均支持负数output=cn2an.an2cn("-123","low")# output:# 负一百二十三# 以上三种模式均支持小数output=cn2an.an2cn("1.23","low")# output:# 一点二三3.3 句子转化⚠️：试验性功能，可能会造成不符合期望的转化。importcn2an# 在 cn2an 方法（默认）下，可以将句子中的中文数字转成阿拉伯数字output=cn2an.transform("小王捡了一百块钱")# 或者output=cn2an.transform("小王捡了一百块钱","cn2an")# output:# 小王捡了100块钱# 在 an2cn 方法下，可以将句子中的中文数字转成阿拉伯数字output=cn2an.transform("小王捡了100块钱","an2cn")# output:# 小王捡了一百块钱## 支持日期output=cn2an.transform("小王的生日是二零零一年三月四日","cn2an")# output:# 小王的生日是2001年3月4日output=cn2an.transform("小王的生日是2001年3月4日","an2cn")# output:# 小王的生日是二零零一年三月四日## 支持分数output=cn2an.transform("抛出去的硬币为正面的概率是二分之一","cn2an")# output:# 抛出去的硬币为正面的概率是1/2output=cn2an.transform("抛出去的硬币为正面的概率是1/2","an2cn")# output:# 抛出去的硬币为正面的概率是二分之一## 支持百分比## 支持摄氏度3.4 HTTP API主要为其他语言（Java、Javascript、Go等）用户提供方便，当然 Python 用户也可以使用，点击查看详细用法。4 版本支持理论上支持Windows、MacOS、Ubuntu下的所有Python 3.6+的版本。实际上仅在ubuntu-latest、windows-latest、macOS-latest的Python 3.6, 3.7, 3.8上做过完整测试。欢迎提交其他版本使用情况到Issues中，期待你的反馈。如果你有Python 2的使用需求，可 Fork 代码自行修改。当然也欢迎提 PR，贡献自己代码给其他人。5 问题反馈先搜索Issues中有没有人已经问过类似的问题；如果没有找到解答，请新开一个 issue：首先，在「issue 标题」中填写你遇到的问题的简介；然后，在「issue 详情」中填写你遇到的问题的详情；最后，不要忘记注明你使用的操作系统（比如 Windows 10）和 Python 版本（比如 Python 3.6.3）。还可以参考Issue Template。6 开发相关6.1 开发进度本项目是用看板管理开发进度，请点击v0.5查看开发进度和计划事项。6.2 代码测试本地测试使用Anaconda的虚拟环境，测试方法如下：# 执行测试bashscripts/local_test.sh线上测试使用GitHub Actions。6.3 性能测试测试版本：v0.5.1测试设备：2.3 GHz 双核Intel Core i5 MacBook Pro测试代码：performance.py测试方法：pipinstall-rrequirements_test.txt

python-mcn2an.performance测试结果：序号功能执行次数执行时间(万次平均)性能(次/秒)1an2cn100000.1567k2cn2an100000.3529k测试时，我使用的是最大长度的测试数据！因此，大多数情况下该库的性能会更好～7 许可证8 交流欢迎添加微信号：Ailln_，备注「cn2an」，邀请你进入 Python 交流群。9 致谢Thunder Bouble: 提出很多有效的反馈，包括一些 bug 和新功能；Damon Yu: 增加对全角数字和全角符号的支持；Beants: 修复了口语格式的 bug；Ray: 提出修改输出 warn 的方法，以及其他一些建议。10 参考🎈 cn2an 核心代码解析如何发布自己的包到 pypiPython 中的小陷阱汉字数字转阿拉伯数字Chinese Text Normalization for Speech ProcessingThe Best Tool of Chinese Number to DigitsMicrosoft Recognizers Text Overviewprocess: 数据预处理管道wikipedia: 中文数字