cn2an


Namecn2an JSON
Version 0.5.22 PyPI version JSON
download
home_pagehttps://github.com/Ailln/cn2an
SummaryConvert Chinese numerals and Arabic numerals.
upload_time2023-08-21 11:13:16
maintainer
docs_urlNone
authorAilln
requires_python>=3.6
licenseMIT License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cn2an: Chinese Numerals To Arabic Numerals

[![Pypi](https://img.shields.io/pypi/v/cn2an.svg)](https://pypi.org/project/cn2an/)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ailln/cn2an/blob/master/LICENSE)
[![stars](https://img.shields.io/github/stars/Ailln/cn2an.svg)](https://github.com/Ailln/cn2an/stargazers)
[![build](https://img.shields.io/github/actions/workflow/status/Ailln/cn2an/build.yml)](https://github.com/Ailln/cn2an/actions/workflows/build.yml)
[![API](https://img.shields.io/badge/API-reference-pink.svg)](https://github.com/Ailln/cn2an/wiki/API)
[![download month](https://img.shields.io/pypi/dm/cn2an)](https://pypistats.org/packages/cn2an)

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

[![](https://ailln.oss-cn-hangzhou.aliyuncs.com/github/cn2an/cn2an-site-latest.png)](https://www.dovolopor.com/cn2an)

🔗[点击访问 DEMO](https://www.dovolopor.com/cn2an)

> 🎈 `v0.5.22 update`: replace print with warning.warn
> 
> 🎈 [`en2an`](https://github.com/Ailln/en2an): 「英文数字」和「阿拉伯数字」互转正在收集需求中! [详情](https://github.com/Ailln/en2an)
>
> 🎈 [`Cn2An.jl`](https://github.com/Ailln/Cn2An.jl): Julia 语言版本已经上线,正在丰富基础功能。[详情](https://github.com/Ailln/Cn2An.jl)

## 1 功能

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

- 支持 `中文数字` => `阿拉伯数字`;
- 支持 `大写中文数字` => `阿拉伯数字`;
- 支持 `中文数字和阿拉伯数字` => `阿拉伯数字`;

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

- 支持 `阿拉伯数字` => `中文数字`;
- 支持 `阿拉伯数字` => `大写中文数字`;
- 支持 `阿拉伯数字` => `大写人民币`;

### 1.3 句子转化

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

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

### 1.4 其他

- 支持 `小数`;
- 支持 `负数`;
- 支持 `HTTP API`。

## 2 安装

> ⚠️ 注意:
> 1. 本地安装仅支持 Python 的 3.6 以上版本;
> 2. 其他语言用户可以考虑使用 [HTTP API](https://www.dovolopor.com/api/cn2an) ;
> 3. 尽可能使用 `cn2an` 的最新版本。

### 2.1 使用 pip 安装

```shell
pip install cn2an -U
```

### 2.2 从代码库安装

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

## 3 使用

```python
# 在文件首部引入包
import cn2an

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

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

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

```python
import cn2an

# 在 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.23
```

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

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

```python
import cn2an

# 在 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 句子转化

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

```python
import cn2an

# 在 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/2

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

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

### 3.4 HTTP API

主要为其他语言(Java、Javascript、Go等)用户提供方便,当然 Python 用户也可以使用,点击查看[详细用法](https://github.com/Ailln/cn2an/wiki/API#http-api)。

## 4 版本支持

- 理论上支持 `Windows`、`MacOS`、`Ubuntu` 下的所有 `Python 3.6+` 的版本。
- 实际上仅在 `ubuntu-latest`、`windows-latest`、`macOS-latest` 的 `Python 3.6, 3.7, 3.8` 上做过完整测试。
- 欢迎提交其他版本使用情况到 [Issues](https://github.com/Ailln/cn2an/issues) 中,期待你的反馈。
- 如果你有 `Python 2` 的使用需求,可 Fork 代码自行修改。当然也欢迎提 PR,贡献自己代码给其他人。

## 5 问题反馈

1. 先搜索 [Issues](https://github.com/Ailln/cn2an/issues) 中有没有人已经问过类似的问题;
2. 如果没有找到解答,请新开一个 issue:
    1. 首先,在「issue 标题」中填写你遇到的问题的简介;
    2. 然后,在「issue 详情」中填写你遇到的问题的详情;
    3. 最后,不要忘记注明你使用的操作系统(比如 Windows 10)和 Python 版本(比如 Python 3.6.3)。
3. 还可以参考 [Issue Template](https://github.com/Ailln/cn2an/tree/master/.github/ISSUE_TEMPLATE) 。

## 6 开发相关

### 6.1 开发进度

本项目是用看板管理开发进度,请点击 [v0.5](https://github.com/Ailln/cn2an/projects/4) 查看开发进度和计划事项。

### 6.2 代码测试

本地测试使用 [Anaconda](https://www.anaconda.com/) 的虚拟环境,测试方法如下:

```bash
# 执行测试
bash scripts/local_test.sh
```

线上测试使用 [GitHub Actions](https://github.com/Ailln/cn2an/actions) 。

### 6.3 性能测试

- 测试版本:`v0.5.1`
- 测试设备:`2.3 GHz 双核Intel Core i5 MacBook Pro`
- 测试代码:[performance.py](https://github.com/Ailln/cn2an/tree/master/cn2an/performance.py)
- 测试方法:

    ```bash
    pip install -r requirements_test.txt

    python -m cn2an.performance
    ```

- 测试结果:

    | 序号 |  功能   | 执行次数  | 执行时间(万次平均) | 性能(次/秒) |
    |:--:|:-----:|:-----:|:----------:|:-------:|
    | 1  | an2cn | 10000 |    0.15    | **67k** |
    | 2  | cn2an | 10000 |    0.35    | **29k** |

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

## 7 许可证

[![](https://award.dovolopor.com?lt=License&rt=MIT&rbc=green)](./LICENSE)
[![](https://award.dovolopor.com?lt=Ailln's&rt=idea&lbc=lightgray&rbc=red&ltc=red)](https://github.com/Ailln/award)

## 8 交流

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

## 9 致谢

- [Thunder Bouble](https://github.com/sfyc23): 提出很多有效的反馈,包括一些 bug 和新功能;
- [Damon Yu](https://github.com/20071313): 增加对全角数字和全角符号的支持;
- [Beants](https://github.com/Beants): 修复了口语格式的 bug;
- Ray: 提出修改输出 warn 的方法,以及其他一些建议。

## 10 参考

- [🎈 cn2an 核心代码解析](https://www.v2ai.cn/2020/06/30/python/8-cn2an/)
- [如何发布自己的包到 pypi](https://www.v2ai.cn/2018/07/30/python/1-pypi/)
- [Python 中的小陷阱](https://www.v2ai.cn/2019/01/01/python/4-python-trap/)
- [汉字数字转阿拉伯数字](https://www.zouyesheng.com/han-number-convert.html)
- [Chinese Text Normalization for Speech Processing](https://github.com/speechio/chinese_text_normalization)
- [The Best Tool of Chinese Number to Digits](https://github.com/Wall-ee/chinese2digits)
- [Microsoft Recognizers Text Overview](https://github.com/microsoft/Recognizers-Text)
- [process: 数据预处理管道](https://github.com/Ailln/proces)
- [wikipedia: 中文数字](https://zh.wikipedia.org/zh-sg/%E4%B8%AD%E6%96%87%E6%95%B0%E5%AD%97)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Ailln/cn2an",
    "name": "cn2an",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Ailln",
    "author_email": "kinggreenhall@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a1/5c/f565259e568316e5fde4dba292e2ca9cff0619657e4ec9f254f415543f59/cn2an-0.5.22.tar.gz",
    "platform": null,
    "description": "# cn2an: Chinese Numerals To Arabic Numerals\n\n[![Pypi](https://img.shields.io/pypi/v/cn2an.svg)](https://pypi.org/project/cn2an/)\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/Ailln/cn2an/blob/master/LICENSE)\n[![stars](https://img.shields.io/github/stars/Ailln/cn2an.svg)](https://github.com/Ailln/cn2an/stargazers)\n[![build](https://img.shields.io/github/actions/workflow/status/Ailln/cn2an/build.yml)](https://github.com/Ailln/cn2an/actions/workflows/build.yml)\n[![API](https://img.shields.io/badge/API-reference-pink.svg)](https://github.com/Ailln/cn2an/wiki/API)\n[![download month](https://img.shields.io/pypi/dm/cn2an)](https://pypistats.org/packages/cn2an)\n\n\ud83d\udce6 **`cn2an`** \u662f\u4e00\u4e2a\u5feb\u901f\u8f6c\u5316 `\u4e2d\u6587\u6570\u5b57` \u548c `\u963f\u62c9\u4f2f\u6570\u5b57` \u7684\u5de5\u5177\u5305\uff01\n\n[![](https://ailln.oss-cn-hangzhou.aliyuncs.com/github/cn2an/cn2an-site-latest.png)](https://www.dovolopor.com/cn2an)\n\n\ud83d\udd17[\u70b9\u51fb\u8bbf\u95ee DEMO](https://www.dovolopor.com/cn2an)\n\n> \ud83c\udf88 `v0.5.22 update`: replace print with warning.warn\n> \n> \ud83c\udf88 [`en2an`](https://github.com/Ailln/en2an): \u300c\u82f1\u6587\u6570\u5b57\u300d\u548c\u300c\u963f\u62c9\u4f2f\u6570\u5b57\u300d\u4e92\u8f6c\u6b63\u5728\u6536\u96c6\u9700\u6c42\u4e2d\uff01 [\u8be6\u60c5](https://github.com/Ailln/en2an)\n>\n> \ud83c\udf88 [`Cn2An.jl`](https://github.com/Ailln/Cn2An.jl): Julia \u8bed\u8a00\u7248\u672c\u5df2\u7ecf\u4e0a\u7ebf\uff0c\u6b63\u5728\u4e30\u5bcc\u57fa\u7840\u529f\u80fd\u3002[\u8be6\u60c5](https://github.com/Ailln/Cn2An.jl)\n\n## 1 \u529f\u80fd\n\n### 1.1 `\u4e2d\u6587\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\n\n- \u652f\u6301 `\u4e2d\u6587\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\uff1b\n- \u652f\u6301 `\u5927\u5199\u4e2d\u6587\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\uff1b\n- \u652f\u6301 `\u4e2d\u6587\u6570\u5b57\u548c\u963f\u62c9\u4f2f\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\uff1b\n\n### 1.2 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u4e2d\u6587\u6570\u5b57`\n\n- \u652f\u6301 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u4e2d\u6587\u6570\u5b57`\uff1b\n- \u652f\u6301 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u5927\u5199\u4e2d\u6587\u6570\u5b57`\uff1b\n- \u652f\u6301 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u5927\u5199\u4eba\u6c11\u5e01`\uff1b\n\n### 1.3 \u53e5\u5b50\u8f6c\u5316\n\n- \u652f\u6301 `\u4e2d\u6587\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\uff1b\n    - \u652f\u6301 `\u65e5\u671f`\uff1b\n    - \u652f\u6301 `\u5206\u6570`\uff1b\n    - \u652f\u6301 `\u767e\u5206\u6bd4`\uff1b\n    - \u652f\u6301 `\u6444\u6c0f\u5ea6`\uff1b\n\n- \u652f\u6301 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u4e2d\u6587\u6570\u5b57`\uff1b\n    - \u652f\u6301 `\u65e5\u671f`\uff1b\n    - \u652f\u6301 `\u5206\u6570`\uff1b\n    - \u652f\u6301 `\u767e\u5206\u6bd4`\uff1b\n    - \u652f\u6301 `\u6444\u6c0f\u5ea6`\uff1b\n\n### 1.4 \u5176\u4ed6\n\n- \u652f\u6301 `\u5c0f\u6570`\uff1b\n- \u652f\u6301 `\u8d1f\u6570`\uff1b\n- \u652f\u6301 `HTTP API`\u3002\n\n## 2 \u5b89\u88c5\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a\n> 1. \u672c\u5730\u5b89\u88c5\u4ec5\u652f\u6301 Python \u7684 3.6 \u4ee5\u4e0a\u7248\u672c\uff1b\n> 2. \u5176\u4ed6\u8bed\u8a00\u7528\u6237\u53ef\u4ee5\u8003\u8651\u4f7f\u7528 [HTTP API](https://www.dovolopor.com/api/cn2an) \uff1b\n> 3. \u5c3d\u53ef\u80fd\u4f7f\u7528 `cn2an` \u7684\u6700\u65b0\u7248\u672c\u3002\n\n### 2.1 \u4f7f\u7528 pip \u5b89\u88c5\n\n```shell\npip install cn2an -U\n```\n\n### 2.2 \u4ece\u4ee3\u7801\u5e93\u5b89\u88c5\n\n```shell\ngit clone https://github.com/Ailln/cn2an.git\ncd cn2an && python setup.py install\n```\n\n## 3 \u4f7f\u7528\n\n```python\n# \u5728\u6587\u4ef6\u9996\u90e8\u5f15\u5165\u5305\nimport cn2an\n\n# \u67e5\u770b\u5f53\u524d\u7248\u672c\u53f7\nprint(cn2an.__version__)\n# 0.5.22\n```\n\n### 3.1 `\u4e2d\u6587\u6570\u5b57` => `\u963f\u62c9\u4f2f\u6570\u5b57`\n\n> \u6700\u5927\u652f\u6301\u5230 `10**16`\uff0c\u5373 `\u5343\u4e07\u4ebf`\uff0c\u6700\u5c0f\u652f\u6301\u5230 `10**-16`\u3002\n\n```python\nimport cn2an\n\n# \u5728 strict \u6a21\u5f0f\uff08\u9ed8\u8ba4\uff09\u4e0b\uff0c\u53ea\u6709\u4e25\u683c\u7b26\u5408\u6570\u5b57\u62fc\u5199\u7684\u624d\u53ef\u4ee5\u8fdb\u884c\u8f6c\u5316\noutput = cn2an.cn2an(\"\u4e00\u767e\u4e8c\u5341\u4e09\")\n# \u6216\u8005\noutput = cn2an.cn2an(\"\u4e00\u767e\u4e8c\u5341\u4e09\", \"strict\")\n# output:\n# 123\n\n# \u5728 normal \u6a21\u5f0f\u4e0b\uff0c\u53ef\u4ee5\u5c06 \u4e00\u4e8c\u4e09 \u8fdb\u884c\u8f6c\u5316\noutput = cn2an.cn2an(\"\u4e00\u4e8c\u4e09\", \"normal\")\n# output:\n# 123\n\n# \u5728 smart \u6a21\u5f0f\u4e0b\uff0c\u53ef\u4ee5\u5c06\u6df7\u5408\u62fc\u5199\u7684 1\u767e23 \u8fdb\u884c\u8f6c\u5316\noutput = cn2an.cn2an(\"1\u767e23\", \"smart\")\n# output:\n# 123\n\n# \u4ee5\u4e0a\u4e09\u79cd\u6a21\u5f0f\u5747\u652f\u6301\u8d1f\u6570\noutput = cn2an.cn2an(\"\u8d1f\u4e00\u767e\u4e8c\u5341\u4e09\", \"strict\")\n# output:\n# -123\n\n# \u4ee5\u4e0a\u4e09\u79cd\u6a21\u5f0f\u5747\u652f\u6301\u5c0f\u6570\noutput = cn2an.cn2an(\"\u4e00\u70b9\u4e8c\u4e09\", \"strict\")\n# output:\n# 1.23\n```\n\n### 3.2 `\u963f\u62c9\u4f2f\u6570\u5b57` => `\u4e2d\u6587\u6570\u5b57`\n\n> \u6700\u5927\u652f\u6301\u5230`10**16`\uff0c\u5373`\u5343\u4e07\u4ebf`\uff0c\u6700\u5c0f\u652f\u6301\u5230 `10**-16`\u3002\n\n```python\nimport cn2an\n\n# \u5728 low \u6a21\u5f0f\uff08\u9ed8\u8ba4\uff09\u4e0b\uff0c\u6570\u5b57\u8f6c\u5316\u4e3a\u5c0f\u5199\u7684\u4e2d\u6587\u6570\u5b57\noutput = cn2an.an2cn(\"123\")\n# \u6216\u8005\noutput = cn2an.an2cn(\"123\", \"low\")\n# output:\n# \u4e00\u767e\u4e8c\u5341\u4e09\n\n# \u5728 up \u6a21\u5f0f\u4e0b\uff0c\u6570\u5b57\u8f6c\u5316\u4e3a\u5927\u5199\u7684\u4e2d\u6587\u6570\u5b57\noutput = cn2an.an2cn(\"123\", \"up\")\n# output:\n# \u58f9\u4f70\u8d30\u62fe\u53c1\n\n# \u5728 rmb \u6a21\u5f0f\u4e0b\uff0c\u6570\u5b57\u8f6c\u5316\u4e3a\u4eba\u6c11\u5e01\u4e13\u7528\u7684\u63cf\u8ff0\noutput = cn2an.an2cn(\"123\", \"rmb\")\n# output:\n# \u58f9\u4f70\u8d30\u62fe\u53c1\u5143\u6574\n\n# \u4ee5\u4e0a\u4e09\u79cd\u6a21\u5f0f\u5747\u652f\u6301\u8d1f\u6570\noutput = cn2an.an2cn(\"-123\", \"low\")\n# output:\n# \u8d1f\u4e00\u767e\u4e8c\u5341\u4e09\n\n# \u4ee5\u4e0a\u4e09\u79cd\u6a21\u5f0f\u5747\u652f\u6301\u5c0f\u6570\noutput = cn2an.an2cn(\"1.23\", \"low\")\n# output:\n# \u4e00\u70b9\u4e8c\u4e09\n```\n\n### 3.3 \u53e5\u5b50\u8f6c\u5316\n\n> \u26a0\ufe0f\uff1a\u8bd5\u9a8c\u6027\u529f\u80fd\uff0c\u53ef\u80fd\u4f1a\u9020\u6210\u4e0d\u7b26\u5408\u671f\u671b\u7684\u8f6c\u5316\u3002\n\n```python\nimport cn2an\n\n# \u5728 cn2an \u65b9\u6cd5\uff08\u9ed8\u8ba4\uff09\u4e0b\uff0c\u53ef\u4ee5\u5c06\u53e5\u5b50\u4e2d\u7684\u4e2d\u6587\u6570\u5b57\u8f6c\u6210\u963f\u62c9\u4f2f\u6570\u5b57\noutput = cn2an.transform(\"\u5c0f\u738b\u6361\u4e86\u4e00\u767e\u5757\u94b1\")\n# \u6216\u8005\noutput = cn2an.transform(\"\u5c0f\u738b\u6361\u4e86\u4e00\u767e\u5757\u94b1\", \"cn2an\")\n# output:\n# \u5c0f\u738b\u6361\u4e86100\u5757\u94b1\n\n# \u5728 an2cn \u65b9\u6cd5\u4e0b\uff0c\u53ef\u4ee5\u5c06\u53e5\u5b50\u4e2d\u7684\u4e2d\u6587\u6570\u5b57\u8f6c\u6210\u963f\u62c9\u4f2f\u6570\u5b57\noutput = cn2an.transform(\"\u5c0f\u738b\u6361\u4e86100\u5757\u94b1\", \"an2cn\")\n# output:\n# \u5c0f\u738b\u6361\u4e86\u4e00\u767e\u5757\u94b1\n\n\n## \u652f\u6301\u65e5\u671f\noutput = cn2an.transform(\"\u5c0f\u738b\u7684\u751f\u65e5\u662f\u4e8c\u96f6\u96f6\u4e00\u5e74\u4e09\u6708\u56db\u65e5\", \"cn2an\")\n# output:\n# \u5c0f\u738b\u7684\u751f\u65e5\u662f2001\u5e743\u67084\u65e5\n\noutput = cn2an.transform(\"\u5c0f\u738b\u7684\u751f\u65e5\u662f2001\u5e743\u67084\u65e5\", \"an2cn\")\n# output:\n# \u5c0f\u738b\u7684\u751f\u65e5\u662f\u4e8c\u96f6\u96f6\u4e00\u5e74\u4e09\u6708\u56db\u65e5\n\n\n## \u652f\u6301\u5206\u6570\noutput = cn2an.transform(\"\u629b\u51fa\u53bb\u7684\u786c\u5e01\u4e3a\u6b63\u9762\u7684\u6982\u7387\u662f\u4e8c\u5206\u4e4b\u4e00\", \"cn2an\")\n# output:\n# \u629b\u51fa\u53bb\u7684\u786c\u5e01\u4e3a\u6b63\u9762\u7684\u6982\u7387\u662f1/2\n\noutput = cn2an.transform(\"\u629b\u51fa\u53bb\u7684\u786c\u5e01\u4e3a\u6b63\u9762\u7684\u6982\u7387\u662f1/2\", \"an2cn\")\n# output:\n# \u629b\u51fa\u53bb\u7684\u786c\u5e01\u4e3a\u6b63\u9762\u7684\u6982\u7387\u662f\u4e8c\u5206\u4e4b\u4e00\n\n## \u652f\u6301\u767e\u5206\u6bd4\n## \u652f\u6301\u6444\u6c0f\u5ea6\n```\n\n### 3.4 HTTP API\n\n\u4e3b\u8981\u4e3a\u5176\u4ed6\u8bed\u8a00\uff08Java\u3001Javascript\u3001Go\u7b49\uff09\u7528\u6237\u63d0\u4f9b\u65b9\u4fbf\uff0c\u5f53\u7136 Python \u7528\u6237\u4e5f\u53ef\u4ee5\u4f7f\u7528\uff0c\u70b9\u51fb\u67e5\u770b[\u8be6\u7ec6\u7528\u6cd5](https://github.com/Ailln/cn2an/wiki/API#http-api)\u3002\n\n## 4 \u7248\u672c\u652f\u6301\n\n- \u7406\u8bba\u4e0a\u652f\u6301 `Windows`\u3001`MacOS`\u3001`Ubuntu` \u4e0b\u7684\u6240\u6709 `Python 3.6+` \u7684\u7248\u672c\u3002\n- \u5b9e\u9645\u4e0a\u4ec5\u5728 `ubuntu-latest`\u3001`windows-latest`\u3001`macOS-latest` \u7684 `Python 3.6, 3.7, 3.8` \u4e0a\u505a\u8fc7\u5b8c\u6574\u6d4b\u8bd5\u3002\n- \u6b22\u8fce\u63d0\u4ea4\u5176\u4ed6\u7248\u672c\u4f7f\u7528\u60c5\u51b5\u5230 [Issues](https://github.com/Ailln/cn2an/issues) \u4e2d\uff0c\u671f\u5f85\u4f60\u7684\u53cd\u9988\u3002\n- \u5982\u679c\u4f60\u6709 `Python 2` \u7684\u4f7f\u7528\u9700\u6c42\uff0c\u53ef Fork \u4ee3\u7801\u81ea\u884c\u4fee\u6539\u3002\u5f53\u7136\u4e5f\u6b22\u8fce\u63d0 PR\uff0c\u8d21\u732e\u81ea\u5df1\u4ee3\u7801\u7ed9\u5176\u4ed6\u4eba\u3002\n\n## 5 \u95ee\u9898\u53cd\u9988\n\n1. \u5148\u641c\u7d22 [Issues](https://github.com/Ailln/cn2an/issues) \u4e2d\u6709\u6ca1\u6709\u4eba\u5df2\u7ecf\u95ee\u8fc7\u7c7b\u4f3c\u7684\u95ee\u9898\uff1b\n2. \u5982\u679c\u6ca1\u6709\u627e\u5230\u89e3\u7b54\uff0c\u8bf7\u65b0\u5f00\u4e00\u4e2a issue\uff1a\n    1. \u9996\u5148\uff0c\u5728\u300cissue \u6807\u9898\u300d\u4e2d\u586b\u5199\u4f60\u9047\u5230\u7684\u95ee\u9898\u7684\u7b80\u4ecb\uff1b\n    2. \u7136\u540e\uff0c\u5728\u300cissue \u8be6\u60c5\u300d\u4e2d\u586b\u5199\u4f60\u9047\u5230\u7684\u95ee\u9898\u7684\u8be6\u60c5\uff1b\n    3. \u6700\u540e\uff0c\u4e0d\u8981\u5fd8\u8bb0\u6ce8\u660e\u4f60\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\uff08\u6bd4\u5982 Windows 10\uff09\u548c Python \u7248\u672c\uff08\u6bd4\u5982 Python 3.6.3\uff09\u3002\n3. \u8fd8\u53ef\u4ee5\u53c2\u8003 [Issue Template](https://github.com/Ailln/cn2an/tree/master/.github/ISSUE_TEMPLATE) \u3002\n\n## 6 \u5f00\u53d1\u76f8\u5173\n\n### 6.1 \u5f00\u53d1\u8fdb\u5ea6\n\n\u672c\u9879\u76ee\u662f\u7528\u770b\u677f\u7ba1\u7406\u5f00\u53d1\u8fdb\u5ea6\uff0c\u8bf7\u70b9\u51fb [v0.5](https://github.com/Ailln/cn2an/projects/4) \u67e5\u770b\u5f00\u53d1\u8fdb\u5ea6\u548c\u8ba1\u5212\u4e8b\u9879\u3002\n\n### 6.2 \u4ee3\u7801\u6d4b\u8bd5\n\n\u672c\u5730\u6d4b\u8bd5\u4f7f\u7528 [Anaconda](https://www.anaconda.com/) \u7684\u865a\u62df\u73af\u5883\uff0c\u6d4b\u8bd5\u65b9\u6cd5\u5982\u4e0b\uff1a\n\n```bash\n# \u6267\u884c\u6d4b\u8bd5\nbash scripts/local_test.sh\n```\n\n\u7ebf\u4e0a\u6d4b\u8bd5\u4f7f\u7528 [GitHub Actions](https://github.com/Ailln/cn2an/actions) \u3002\n\n### 6.3 \u6027\u80fd\u6d4b\u8bd5\n\n- \u6d4b\u8bd5\u7248\u672c\uff1a`v0.5.1`\n- \u6d4b\u8bd5\u8bbe\u5907\uff1a`2.3 GHz \u53cc\u6838Intel Core i5 MacBook Pro`\n- \u6d4b\u8bd5\u4ee3\u7801\uff1a[performance.py](https://github.com/Ailln/cn2an/tree/master/cn2an/performance.py)\n- \u6d4b\u8bd5\u65b9\u6cd5\uff1a\n\n    ```bash\n    pip install -r requirements_test.txt\n\n    python -m cn2an.performance\n    ```\n\n- \u6d4b\u8bd5\u7ed3\u679c\uff1a\n\n    | \u5e8f\u53f7 |  \u529f\u80fd   | \u6267\u884c\u6b21\u6570  | \u6267\u884c\u65f6\u95f4(\u4e07\u6b21\u5e73\u5747) | \u6027\u80fd(\u6b21/\u79d2) |\n    |:--:|:-----:|:-----:|:----------:|:-------:|\n    | 1  | an2cn | 10000 |    0.15    | **67k** |\n    | 2  | cn2an | 10000 |    0.35    | **29k** |\n\n\u6d4b\u8bd5\u65f6\uff0c\u6211\u4f7f\u7528\u7684\u662f\u6700\u5927\u957f\u5ea6\u7684\u6d4b\u8bd5\u6570\u636e\uff01\u56e0\u6b64\uff0c\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u8be5\u5e93\u7684\u6027\u80fd\u4f1a\u66f4\u597d\uff5e\n\n## 7 \u8bb8\u53ef\u8bc1\n\n[![](https://award.dovolopor.com?lt=License&rt=MIT&rbc=green)](./LICENSE)\n[![](https://award.dovolopor.com?lt=Ailln's&rt=idea&lbc=lightgray&rbc=red&ltc=red)](https://github.com/Ailln/award)\n\n## 8 \u4ea4\u6d41\n\n\u6b22\u8fce\u6dfb\u52a0\u5fae\u4fe1\u53f7\uff1a`Ailln_`\uff0c\u5907\u6ce8\u300ccn2an\u300d\uff0c\u9080\u8bf7\u4f60\u8fdb\u5165 Python \u4ea4\u6d41\u7fa4\u3002\n\n## 9 \u81f4\u8c22\n\n- [Thunder Bouble](https://github.com/sfyc23): \u63d0\u51fa\u5f88\u591a\u6709\u6548\u7684\u53cd\u9988\uff0c\u5305\u62ec\u4e00\u4e9b bug \u548c\u65b0\u529f\u80fd\uff1b\n- [Damon Yu](https://github.com/20071313): \u589e\u52a0\u5bf9\u5168\u89d2\u6570\u5b57\u548c\u5168\u89d2\u7b26\u53f7\u7684\u652f\u6301\uff1b\n- [Beants](https://github.com/Beants): \u4fee\u590d\u4e86\u53e3\u8bed\u683c\u5f0f\u7684 bug\uff1b\n- Ray: \u63d0\u51fa\u4fee\u6539\u8f93\u51fa warn \u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u5efa\u8bae\u3002\n\n## 10 \u53c2\u8003\n\n- [\ud83c\udf88 cn2an \u6838\u5fc3\u4ee3\u7801\u89e3\u6790](https://www.v2ai.cn/2020/06/30/python/8-cn2an/)\n- [\u5982\u4f55\u53d1\u5e03\u81ea\u5df1\u7684\u5305\u5230 pypi](https://www.v2ai.cn/2018/07/30/python/1-pypi/)\n- [Python \u4e2d\u7684\u5c0f\u9677\u9631](https://www.v2ai.cn/2019/01/01/python/4-python-trap/)\n- [\u6c49\u5b57\u6570\u5b57\u8f6c\u963f\u62c9\u4f2f\u6570\u5b57](https://www.zouyesheng.com/han-number-convert.html)\n- [Chinese Text Normalization for Speech Processing](https://github.com/speechio/chinese_text_normalization)\n- [The Best Tool of Chinese Number to Digits](https://github.com/Wall-ee/chinese2digits)\n- [Microsoft Recognizers Text Overview](https://github.com/microsoft/Recognizers-Text)\n- [process: \u6570\u636e\u9884\u5904\u7406\u7ba1\u9053](https://github.com/Ailln/proces)\n- [wikipedia: \u4e2d\u6587\u6570\u5b57](https://zh.wikipedia.org/zh-sg/%E4%B8%AD%E6%96%87%E6%95%B0%E5%AD%97)\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Convert Chinese numerals and Arabic numerals.",
    "version": "0.5.22",
    "project_urls": {
        "Homepage": "https://github.com/Ailln/cn2an"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1c3d3e04a822b8615904269f7126d8b019ae5c3b5c3c78397ec8bab056b02099",
                "md5": "5fe463a53c0dc07ed16feb9f854d0089",
                "sha256": "cba4c8f305b43da01f50696047cca3116c727424ac62338da6a3426e01454f3e"
            },
            "downloads": -1,
            "filename": "cn2an-0.5.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5fe463a53c0dc07ed16feb9f854d0089",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 224956,
            "upload_time": "2023-08-21T11:13:14",
            "upload_time_iso_8601": "2023-08-21T11:13:14.369239Z",
            "url": "https://files.pythonhosted.org/packages/1c/3d/3e04a822b8615904269f7126d8b019ae5c3b5c3c78397ec8bab056b02099/cn2an-0.5.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a15cf565259e568316e5fde4dba292e2ca9cff0619657e4ec9f254f415543f59",
                "md5": "d0c862db2e2afcac978d836daa212c86",
                "sha256": "27ae5b56441d7329ed2ececffa026bfa8fc353dcf1fb0d9146b303b9cce3ac37"
            },
            "downloads": -1,
            "filename": "cn2an-0.5.22.tar.gz",
            "has_sig": false,
            "md5_digest": "d0c862db2e2afcac978d836daa212c86",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 21399,
            "upload_time": "2023-08-21T11:13:16",
            "upload_time_iso_8601": "2023-08-21T11:13:16.535469Z",
            "url": "https://files.pythonhosted.org/packages/a1/5c/f565259e568316e5fde4dba292e2ca9cff0619657e4ec9f254f415543f59/cn2an-0.5.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-21 11:13:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Ailln",
    "github_project": "cn2an",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "cn2an"
}
        
Elapsed time: 0.09927s