Spaces:
Running
Running
Download src/text_preprocess.py from ngocdang83/HachimiMT-demo: direct link, hf CLI and curl.
- Browser
- Download file 1.13 kB
-
https://huggingface.co/spaces/ngocdang83/HachimiMT-demo/resolve/e692cf18e09f792ef1b89e3986e006251a1c7b0b/src/text_preprocess.py
- Command line
-
hf download hf://spaces/ngocdang83/HachimiMT-demo@e692cf18e09f792ef1b89e3986e006251a1c7b0b/src/text_preprocess.py
-
curl -L -o text_preprocess.py https://huggingface.co/spaces/ngocdang83/HachimiMT-demo/resolve/e692cf18e09f792ef1b89e3986e006251a1c7b0b/src/text_preprocess.py
1.13 kB
| """Chinese text normalization before translation.""" | |
| from __future__ import annotations | |
| from functools import lru_cache | |
| NORMALIZE_AUTO = "auto" | |
| NORMALIZE_T2S = "t2s" | |
| NORMALIZE_NONE = "none" | |
| NORMALIZE_MODES = {NORMALIZE_AUTO, NORMALIZE_T2S, NORMALIZE_NONE} | |
| def _t2s_converter(): | |
| from opencc import OpenCC | |
| return OpenCC("t2s") | |
| def normalize_mode(mode: str | None) -> str: | |
| mode = (mode or NORMALIZE_AUTO).strip().lower() | |
| return mode if mode in NORMALIZE_MODES else NORMALIZE_AUTO | |
| def normalize_chinese_text(text: str, mode: str | None = NORMALIZE_AUTO) -> str: | |
| mode = normalize_mode(mode) | |
| if mode == NORMALIZE_NONE or not text: | |
| return text | |
| return _t2s_converter().convert(text) | |
| def normalization_message(original: str, normalized: str, mode: str | None) -> str: | |
| mode = normalize_mode(mode) | |
| if mode == NORMALIZE_NONE: | |
| return "Giữ nguyên chữ Hán gốc." | |
| if original == normalized: | |
| return "Đã kiểm tra chữ Hán: không cần chuyển phồn thể." | |
| return "Đã chuyển phồn thể sang giản thể trước khi dịch." | |