Project Icon

cn2an

中文数字与阿拉伯数字互转的Python库

cn2an是一个开源的Python库,专门用于中文数字和阿拉伯数字的相互转换。该库支持严格、正常和智能三种转换模式,能够处理负数、小数、日期和分数等多种数字形式。cn2an还提供句子转换功能和HTTP API接口,方便其他编程语言调用。凭借其高性能和广泛的数字范围支持,cn2an成为处理中文数字相关任务的有力工具。

cn2an:中文数字转阿拉伯数字

Pypi MIT许可证 星标 构建 API 月下载量

📦 cn2an 是一个快速转换中文数字和阿拉伯数字的工具包!

🔗点击访问演示

🎈 v0.5.22 更新:用 warning.warn 替代 print

🎈 en2an:英文数字和阿拉伯数字互转功能正在收集需求中!详情

🎈 Cn2An.jl:Julia 语言版本已上线,正在完善基础功能。详情

1 功能

1.1 中文数字 => 阿拉伯数字

  • 支持中文数字 => 阿拉伯数字;
  • 支持大写中文数字 => 阿拉伯数字;
  • 支持中文数字和阿拉伯数字混合 => 阿拉伯数字;

1.2 阿拉伯数字 => 中文数字

  • 支持阿拉伯数字 => 中文数字;
  • 支持阿拉伯数字 => 大写中文数字;
  • 支持阿拉伯数字 => 大写人民币金额;

1.3 句子转换

  • 支持中文数字 => 阿拉伯数字;

    • 支持日期;
    • 支持分数;
    • 支持百分比;
    • 支持摄氏度;
  • 支持阿拉伯数字 => 中文数字;

    • 支持日期;
    • 支持分数;
    • 支持百分比;
    • 支持摄氏度;

1.4 其他

  • 支持小数;
  • 支持负数;
  • 支持 HTTP API。

2 安装

⚠️ 注意:

  1. 本地安装仅支持 Python 3.6 及以上版本;
  2. 其他语言用户可以考虑使用 HTTP API
  3. 请尽可能使用 cn2an 的最新版本。

2.1 使用 pip 安装

pip install cn2an -U

2.2 从代码库安装

git clone https://github.com/Ailln/cn2an.git
cd cn2an && python setup.py install

3 使用

# 在文件开头导入包
import cn2an

# 查看当前版本号
print(cn2an.__version__)
# 0.5.22

3.1 中文数字 => 阿拉伯数字

最大支持到 10**16,即千万亿,最小支持到 10**-16

import cn2an

# 在严格模式(默认)下,只有严格符合数字拼写的才能进行转换
output = cn2an.cn2an("一百二十三")
# 或者
output = cn2an.cn2an("一百二十三", "strict")
# output:
# 123
# 在 normal 模式下,可以将 一二三 进行转化
output = cn2an.cn2an("一二三", "normal")
# 输出:
# 123

# 在 smart 模式下,可以将混合拼写的 1百23 进行转化
output = cn2an.cn2an("1百23", "smart")
# 输出:
# 123

# 以上三种模式均支持负数
output = cn2an.cn2an("负一百二十三", "strict")
# 输出:
# -123

# 以上三种模式均支持小数
output = cn2an.cn2an("一点二三", "strict")
# 输出:
# 1.23

3.2 阿拉伯数字 => 中文数字

最大支持到10**16,即千万亿,最小支持到 10**-16

import cn2an

# 在 low 模式(默认)下,数字转化为小写的中文数字
output = cn2an.an2cn("123")
# 或者
output = cn2an.an2cn("123", "low")
# 输出:
# 一百二十三

# 在 up 模式下,数字转化为大写的中文数字
output = cn2an.an2cn("123", "up")
# 输出:
# 壹佰贰拾叁

# 在 rmb 模式下,数字转化为人民币专用的描述
output = cn2an.an2cn("123", "rmb")
# 输出:
# 壹佰贰拾叁元整

# 以上三种模式均支持负数
output = cn2an.an2cn("-123", "low")
# 输出:
# 负一百二十三

# 以上三种模式均支持小数
output = cn2an.an2cn("1.23", "low")
# 输出:
# 一点二三

3.3 句子转化

⚠️:试验性功能,可能会造成不符合期望的转化。

import cn2an

# 在 cn2an 方法(默认)下,可以将句子中的中文数字转成阿拉伯数字
output = cn2an.transform("小王捡了一百块钱")
# 或者
output = cn2an.transform("小王捡了一百块钱", "cn2an")
# 输出:
# 小王捡了100块钱

# 在 an2cn 方法下,可以将句子中的中文数字转成阿拉伯数字
output = cn2an.transform("小王捡了100块钱", "an2cn")
# 输出:
# 小王捡了一百块钱


## 支持日期
output = cn2an.transform("小王的生日是二零零一年三月四日", "cn2an")
# 输出:
# 小王的生日是2001年3月4日

output = cn2an.transform("小王的生日是2001年3月4日", "an2cn")
# 输出:
# 小王的生日是二零零一年三月四日


## 支持分数
output = cn2an.transform("抛出去的硬币为正面的概率是二分之一", "cn2an")
# 输出:
# 抛出去的硬币为正面的概率是1/2

output = cn2an.transform("抛出去的硬币为正面的概率是1/2", "an2cn")
# 输出:
# 抛出去的硬币为正面的概率是二分之一

## 支持百分比
## 支持摄氏度

3.4 HTTP API

主要为其他语言(Java、Javascript、Go等)用户提供方便,当然 Python 用户也可以使用,点击查看详细用法

4 版本支持

  • 理论上支持 WindowsMacOSUbuntu 下的所有 Python 3.6+ 的版本。
  • 实际上仅在 ubuntu-latestwindows-latestmacOS-latestPython 3.6, 3.7, 3.8 上做过完整测试。
  • 欢迎提交其他版本使用情况到 Issues 中,期待你的反馈。
  • 如果你有 Python 2 的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。

5 问题反馈

  1. 首先在 Issues 中搜索是否有人已经提出过类似的问题;
  2. 如果没有找到解答,请创建一个新的 issue:
    1. 首先,在「issue 标题」中填写你遇到的问题的简要描述;
    2. 然后,在「issue 详情」中填写你遇到的问题的具体情况;
    3. 最后,请务必注明你使用的操作系统(例如 Windows 10)和 Python 版本(例如 Python 3.6.3)。
  3. 你还可以参考 Issue Template

6 开发相关

6.1 开发进度

本项目使用看板管理开发进度,请点击 v0.5 查看开发进度和计划事项。

6.2 代码测试

本地测试使用 Anaconda 的虚拟环境,测试方法如下:

# 执行测试
bash scripts/local_test.sh

线上测试使用 GitHub Actions

6.3 性能测试

  • 测试版本:v0.5.1

  • 测试设备:2.3 GHz 双核Intel Core i5 MacBook Pro

  • 测试代码:performance.py

  • 测试方法:

    pip install -r requirements_test.txt
    
    python -m cn2an.performance
    
  • 测试结果:

    序号功能执行次数执行时间(万次平均)性能(次/秒)
    1an2cn100000.1567k
    2cn2an100000.3529k

测试时,我使用了最大长度的测试数据!因此,在大多数情况下,该库的性能会更好~

7 许可证

8 交流

欢迎添加微信号:Ailln_,备注「cn2an」,邀请你加入 Python 交流群。

9 致谢

  • Thunder Bouble:提出许多有效的反馈,包括一些 bug 和新功能;
  • Damon Yu:增加对全角数字和全角符号的支持;
  • Beants:修复了口语格式的 bug;
  • Ray:提出修改输出警告的方法,以及其他一些建议。

10 参考

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号