📦 cn2an
— это инструментарий для быстрого преобразования китайских чисел в арабские числа!
🎈
v0.5.5 update
: Добавлена поддержка древнекитайского слова廿
.🎈
en2an
: Требования для перевода английских чисел в арабские числа и обратно! Подробнее🎈
Cn2An.jl
: Версия для языка Julia уже доступна, функционал продолжает развиваться. Подробнее
Китайские числа
=> Арабские числа
китайских чисел
в арабские числа
;китайских чисел в верхнем регистре
в арабские числа
;китайских чисел и арабских чисел
в арабские числа
;Арабские числа
=> Китайские числа
- Поддерживает преобразование арабских чисел
в китайские числа
;Поддерживает преобразование арабских чисел
в китайские числа в верхнем регистре
;
Поддерживает преобразование арабских чисел
в китайские числа в формате юаней
;### 1.3 Преобразование предложений
Поддерживает преобразование китайских чисел
в арабские числа
;
дат
;дробей
;процентов
;градусов Цельсия
;Поддерживает преобразование арабских чисел
в китайские числа
;
дат
;дробей
;процентов
;градусов Цельсия
;десятичные числа
;отрицательные числа
;HTTP API
.⚠️ Внимание:
- Локальная установка поддерживает только версии Python 3.6 и выше;
- Пользователям других языков программирования рекомендуется использовать HTTP API;
- Всегда используйте последнюю версию
cn2an
.
pip install cn2an -U
git clone https://github.com/Ailln/cn2an.git
cd cn2an && python setup.py install
Вопрос: При установке PyYAML возникает ошибка, ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Решение: Сначала обновите PyYAML до последней версии, а затем установите cn2an.```bash pip install PyYAML -U --ignore-installed
## 3 Использование
```python
# Импортируем пакет в начале файла
import cn2an
# Просмотр текущей версии
print(cn2an.__version__)
# 0.5.5
Китайские цифры
=> Арабские цифры
Поддерживает до
10**16
, то естьтысячи миллиардов
, и до10**-16
.
import cn2an
# В режиме strict (по умолчанию), только строго соответствующие числительные преобразуются
output = cn2an.cn2an("сто двадцать три")
# или
output = cn2an.cn2an("сто двадцать три", "strict")
# output:
# 123
# В режиме normal, можно преобразовать `один два три`
output = cn2an.cn2an("один два три", "normal")
# output:
# 123
# В режиме smart, можно преобразовать смешанные числительные `1 сто двадцать три`
output = cn2an.cn2an("1 сто двадцать три", "smart")
# output:
# 123
# Все три режима поддерживают отрицательные числа
output = cn2an.cn2an("минус сто двадцать три", "strict")
# output:
# -123
# Все три режима поддерживают дробные числа
output = cn2an.cn2an("одна точка двадцать три", "strict")
# output:
# 1.23
Арабские цифры
=> Китайские цифры
Поддерживает до
10**16
, то естьтысячи миллиардов
, и до10**-16
.
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:
# 抛出去的硬币为正面的概率是二分之一
## Поддержка процентов
## Поддержка градусов Цельсия
Для получения более подробной информации ознакомьтесь с API.
Основная цель — предоставить удобство для пользователей на других языках программирования, хотя Python-разработчики также могут использовать этот API.
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
```public class HttpGetExample {
public static void main(String[] args) throws Exception {
HttpGetExample http = new HttpGetExample();
String url = "https://api.dovolopor.com/v1/cn2an";
String params = "?text=123&function=an2cn&method=low";
http.get(url + params);
}
private void get(String url) throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
``` System.out.println(response.toString());
}
}
// { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
const axios = require("axios")
axios.get("https://api.dovolopor.com/v1/cn2an", {
params: {
text: "123",
function: "an2cn",
method: "low"
}
}).then(
function (res) {
console.log(res.data);
}
)
// { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main(){
params := url.Values{}
Url, err := url.Parse("https://api.dovolopor.com/v1/cn2an")
if err != nil {
return
}
params.Set("text", "123")
params.Set("function", "an2cn")
params.Set("method", "low")
Url.RawQuery = params.Encode()
urlPath := Url.String()
resp,err := http.Get(urlPath)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
// { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
using Pkg
Pkg.add("HTTP")
url = "https://api.dovolopor.com/v1/cn2an"
params = HTTP.URIs.escapeuri(["text"=>"123","function"=>"an2cn","method"=>"low"])
r = HTTP.get(url * "?" * params, ["Content-Type"=>"application/json"])
print(String(r.body))
# { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
```#### Python
```python
import requests
response = requests.get("https://api.dovolopor.com/v1/cn2an",
params={
"text": "1234567890",
"function": "an2cn",
"method": "low"
}
)
print(response.json())
# { output: "одинсотдвадцатьтри", msg: "преобразование успешно" }
Python 3.6+
на Windows
, MacOS
, Ubuntu
.ubuntu-latest
, windows-latest
, macOS-latest
для Python 3.6, 3.7, 3.8
.Python 2
, вы можете форкнуть код и внести необходимые изменения самостоятельно. Мы также рады принять ваши вклады в виде PR.Для управления прогрессом разработки используется доска Kanban. Для просмотра прогресса и плановых задач нажмите на v0.5.### 6.2 Тестирование кода
Локальное тестирование выполняется с помощью виртуальной среды Anaconda. Методы тестирования следующие:
# Выполнение тестов
bash scripts/local_test.sh
Онлайн тестирование выполняется с помощью GitHub Actions.
Версия теста: v0.5.1
Устройство тестирования: 2.3 ГГц двухъядерный Intel Core i5 MacBook Pro
Тестовый код: performance.py
Методы тестирования:
pip install -r requirements_test.txt
python -m cn2an.performance
Результаты тестирования:
Номер | Функция | Количество выполнений | Время выполнения (среднее) | Производительность (выполнений/сек) |
---|---|---|---|---|
1 | an2cn | 10000 | 0.15 | 67к |
2 | cn2an | 10000 | 0.35 | 29к |
Тестирование проводилось с использованием максимальной длины тестовых данных. Поэтому, в большинстве случаев производительность библиотеки будет выше!
Приглашаем вас добавить WeChat ID: Ailln_
, укажите в примечании «cn2an», и я приглашу вас в общение.
Thunder Bouble: Предложил много полезных отзывов, включая некоторые ошибки и новые функции;
Damon Yu: Добавил поддержку полноконечных цифр и полноконечных символов.## 10 Ссылки
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )