From 1966c29e0e89beb4f0d27a2f736da219ecafbd4b Mon Sep 17 00:00:00 2001 From: Hui Zhang Date: Fri, 14 May 2021 07:48:07 +0000 Subject: [PATCH] add chinese_text_normalization repo --- third_party/README.md | 18 +- .../chinese_text_normalization/.gitignore | 2 + .../chinese_text_normalization/LICENSE | 21 + .../chinese_text_normalization/README.md | 112 + .../python/cn_tn.py | 794 ++ .../python/example_kaldi.txt | 7 + .../python/example_plain.txt | 7 + .../chinese_text_normalization/python/run.sh | 8 + .../thrax/INSTALL.txt | 24 + .../thrax/install_thrax.sh | 12 + .../thrax/papers/gorman-sproat-2016.pdf | Bin 0 -> 538184 bytes .../thrax/papers/wu-etal-2016.pdf | Bin 0 -> 150576 bytes .../thrax/run_cn.sh | 6 + .../thrax/run_en.sh | 6 + .../thrax/src/LICENSE | 202 + .../thrax/src/Makefile | 65 + .../thrax/src/README.md | 24 + .../thrax/src/cn/Makefile | 23 + .../thrax/src/cn/amount.grm | 24 + .../thrax/src/cn/byte.grm | 76 + .../thrax/src/cn/date.grm | 10 + .../thrax/src/cn/hotfix.grm | 5 + .../thrax/src/cn/hotfix.list | 18 + .../thrax/src/cn/itn.grm | 9 + .../thrax/src/cn/number.grm | 61 + .../thrax/src/cn/percentage.grm | 8 + .../thrax/src/en/README.md | 6 + .../thrax/src/en/verbalizer/Makefile | 3 + .../thrax/src/en/verbalizer/cardinals.tsv | 32 + .../thrax/src/en/verbalizer/extra_numbers.grm | 35 + .../thrax/src/en/verbalizer/factorization.grm | 40 + .../thrax/src/en/verbalizer/float.grm | 30 + .../thrax/src/en/verbalizer/g.fst | Bin 0 -> 2558 bytes .../thrax/src/en/verbalizer/lexical_map.grm | 25 + .../thrax/src/en/verbalizer/lexical_map.tsv | 74 + .../thrax/src/en/verbalizer/math.grm | 34 + .../thrax/src/en/verbalizer/miscellaneous.grm | 78 + .../thrax/src/en/verbalizer/money.grm | 44 + .../thrax/src/en/verbalizer/money.tsv | 4 + .../thrax/src/en/verbalizer/number_names.grm | 54 + .../thrax/src/en/verbalizer/numbers.grm | 57 + .../thrax/src/en/verbalizer/numbers_plus.grm | 133 + .../thrax/src/en/verbalizer/ordinals.tsv | 32 + .../thrax/src/en/verbalizer/params.tsv | 7 + .../thrax/src/en/verbalizer/podspeech.grm | 46 + .../thrax/src/en/verbalizer/spelled.grm | 77 + .../thrax/src/en/verbalizer/spoken_punct.grm | 24 + .../thrax/src/en/verbalizer/time.grm | 108 + .../thrax/src/en/verbalizer/urls.grm | 68 + .../thrax/src/en/verbalizer/verbalizer.grm | 42 + .../thrax/src/number_data/README.md | 17 + .../thrax/src/number_data/minimal.txt | 300 + .../thrax/src/number_data/random-trn.txt | 9000 +++++++++++++++++ .../thrax/src/number_data/random-tst.txt | 1000 ++ .../thrax/src/ru/README.md | 6 + .../thrax/src/ru/classifier/cyrillic.grm | 58 + .../thrax/src/ru/verbalizer/cardinals-lex.grm | 338 + .../thrax/src/ru/verbalizer/cardinals.tsv | 177 + .../thrax/src/ru/verbalizer/extra_numbers.grm | 35 + .../thrax/src/ru/verbalizer/factorization.grm | 40 + .../thrax/src/ru/verbalizer/float.grm | 30 + .../thrax/src/ru/verbalizer/g.fst | Bin 0 -> 3206 bytes .../thrax/src/ru/verbalizer/lexical_map.grm | 25 + .../thrax/src/ru/verbalizer/lexical_map.tsv | 221 + .../thrax/src/ru/verbalizer/math.grm | 34 + .../thrax/src/ru/verbalizer/miscellaneous.grm | 78 + .../thrax/src/ru/verbalizer/money.grm | 44 + .../thrax/src/ru/verbalizer/money.tsv | 24 + .../thrax/src/ru/verbalizer/nominatives.tsv | 166 + .../thrax/src/ru/verbalizer/number_names.grm | 48 + .../thrax/src/ru/verbalizer/numbers.grm | 68 + .../thrax/src/ru/verbalizer/numbers_plus.grm | 133 + .../src/ru/verbalizer/ordinal_endings.tsv | 39 + .../thrax/src/ru/verbalizer/ordinals-lex.grm | 804 ++ .../thrax/src/ru/verbalizer/ordinals.tsv | 527 + .../thrax/src/ru/verbalizer/spelled.grm | 77 + .../thrax/src/ru/verbalizer/spoken_punct.grm | 24 + .../thrax/src/ru/verbalizer/time.grm | 108 + .../thrax/src/ru/verbalizer/urls.grm | 68 + .../thrax/src/ru/verbalizer/verbalizer.grm | 42 + .../thrax/src/universal/README.md | 3 + .../thrax/src/universal/roman_numerals.tsv | 91 + .../thrax/src/universal/thousands_punct.grm | 126 + .../thrax/src/util/README.md | 3 + .../thrax/src/util/arithmetic.grm | 326 + .../thrax/src/util/byte.grm | 75 + .../thrax/src/util/case.grm | 3383 +++++++ .../thrax/src/util/germanic.tsv | 81 + .../thrax/src/util/util.grm | 528 + .../thrax/testcase_cn.txt | 54 + .../thrax/testcase_en.txt | 14 + 91 files changed, 20807 insertions(+), 3 deletions(-) create mode 100644 third_party/chinese_text_normalization/.gitignore create mode 100644 third_party/chinese_text_normalization/LICENSE create mode 100644 third_party/chinese_text_normalization/README.md create mode 100755 third_party/chinese_text_normalization/python/cn_tn.py create mode 100644 third_party/chinese_text_normalization/python/example_kaldi.txt create mode 100644 third_party/chinese_text_normalization/python/example_plain.txt create mode 100644 third_party/chinese_text_normalization/python/run.sh create mode 100644 third_party/chinese_text_normalization/thrax/INSTALL.txt create mode 100755 third_party/chinese_text_normalization/thrax/install_thrax.sh create mode 100644 third_party/chinese_text_normalization/thrax/papers/gorman-sproat-2016.pdf create mode 100644 third_party/chinese_text_normalization/thrax/papers/wu-etal-2016.pdf create mode 100644 third_party/chinese_text_normalization/thrax/run_cn.sh create mode 100644 third_party/chinese_text_normalization/thrax/run_en.sh create mode 100644 third_party/chinese_text_normalization/thrax/src/LICENSE create mode 100644 third_party/chinese_text_normalization/thrax/src/Makefile create mode 100644 third_party/chinese_text_normalization/thrax/src/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/Makefile create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/amount.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/byte.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/date.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/hotfix.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/hotfix.list create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/itn.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/number.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/cn/percentage.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/Makefile create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/cardinals.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/extra_numbers.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/factorization.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/float.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/g.fst create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/math.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/miscellaneous.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/number_names.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers_plus.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/ordinals.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/params.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/podspeech.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/spelled.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/spoken_punct.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/time.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/urls.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/en/verbalizer/verbalizer.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/number_data/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/number_data/minimal.txt create mode 100644 third_party/chinese_text_normalization/thrax/src/number_data/random-trn.txt create mode 100644 third_party/chinese_text_normalization/thrax/src/number_data/random-tst.txt create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/classifier/cyrillic.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals-lex.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/extra_numbers.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/factorization.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/float.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/g.fst create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/math.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/miscellaneous.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/nominatives.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/number_names.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers_plus.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinal_endings.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals-lex.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spelled.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spoken_punct.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/time.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/urls.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/ru/verbalizer/verbalizer.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/universal/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/universal/roman_numerals.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/universal/thousands_punct.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/util/README.md create mode 100644 third_party/chinese_text_normalization/thrax/src/util/arithmetic.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/util/byte.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/util/case.grm create mode 100644 third_party/chinese_text_normalization/thrax/src/util/germanic.tsv create mode 100644 third_party/chinese_text_normalization/thrax/src/util/util.grm create mode 100644 third_party/chinese_text_normalization/thrax/testcase_cn.txt create mode 100644 third_party/chinese_text_normalization/thrax/testcase_en.txt diff --git a/third_party/README.md b/third_party/README.md index e17040ef0..655c826e8 100644 --- a/third_party/README.md +++ b/third_party/README.md @@ -1,8 +1,20 @@ - * [python_kaldi_features](https://github.com/ZitengWang/python_kaldi_features) commit: fc1bd6240c2008412ab64dc25045cd872f5e126c ref: https://zhuanlan.zhihu.com/p/55371926 +licence: MIT * [python-pinyin](https://github.com/mozillazg/python-pinyin.git) - commit: 55e524aa1b7b8eec3d15c5306043c6cdd5938b03 - licence: MIT +commit: 55e524aa1b7b8eec3d15c5306043c6cdd5938b03 +licence: MIT + +* [zhon](https://github.com/tsroten/zhon) +commit: 09bf543696277f71de502506984661a60d24494c +licence: MIT + +* [pymmseg-cpp](https://github.com/pluskid/pymmseg-cpp.git) +commit: b76465045717fbb4f118c4fbdd24ce93bab10a6d +licence: MIT + +* [chinese_text_normalization](https://github.com/speechio/chinese_text_normalization.git) +commit: 9e92c7bf2d6b5a7974305406d8e240045beac51c +licence: MIT diff --git a/third_party/chinese_text_normalization/.gitignore b/third_party/chinese_text_normalization/.gitignore new file mode 100644 index 000000000..f50f06f32 --- /dev/null +++ b/third_party/chinese_text_normalization/.gitignore @@ -0,0 +1,2 @@ +*~ +*.far diff --git a/third_party/chinese_text_normalization/LICENSE b/third_party/chinese_text_normalization/LICENSE new file mode 100644 index 000000000..c6be42fba --- /dev/null +++ b/third_party/chinese_text_normalization/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 SpeechIO + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/chinese_text_normalization/README.md b/third_party/chinese_text_normalization/README.md new file mode 100644 index 000000000..fd5182594 --- /dev/null +++ b/third_party/chinese_text_normalization/README.md @@ -0,0 +1,112 @@ +# Chinese Text Normalization for Speech Processing + +## Problem + +Search for "Text Normalization"(TN) on Google and Github, you can hardly find open-source projects that are "read-to-use" for text normalization tasks. Instead, you find a bunch of NLP toolkits or frameworks that *supports* TN functionality. There is quite some work between "support text normalization" and "do text normalization". + +## Reason + +* TN is language-dependent, more or less. + + Some of TN processing methods are shared across languages, but a good TN module always involves language-specific knowledge and treatments, more or less. + +* TN is task-specific. + + Even for the same language, different applications require quite different TN. + +* TN is "dirty" + + Constructing and maintaining a set of TN rewrite-rules is painful, whatever toolkits and frameworks you choose. Subtle and intrinsic complexities hide inside TN task itself, not in tools or frameworks. + +* mature TN module is an asset + + Since constructing and maintaining TN is hard, it is actually an asset for commercial companies, hence it is unlikely to find a product-level TN in open-source community (correct me if you find any) + +* TN is a less important topic for either academic or commercials. + +## Goal + +This project sets up a ready-to-use TN module for **Chinese**. Since my background is **speech processing**, this project should be able to handle most common TN tasks, in **Chinese ASR** text processing pipelines. + +## Normalizers + +1. supported NSW (Non-Standard-Word) Normalization + + |NSW type|raw|normalized| + |-|-|-| + |cardinal|这块黄金重达324.75克|这块黄金重达三百二十四点七五克| + |date|她出生于86年8月18日,她弟弟出生于1995年3月1日|她出生于八六年八月十八日 她弟弟出生于一九九五年三月一日| + |digit|电影中梁朝伟扮演的陈永仁的编号27149|电影中梁朝伟扮演的陈永仁的编号二七一四九| + |fraction|现场有7/12的观众投出了赞成票|现场有十二分之七的观众投出了赞成票| + |money|随便来几个价格12块5,34.5元,20.1万|随便来几个价格十二块五 三十四点五元 二十点一万| + |percentage|明天有62%的概率降雨|明天有百分之六十二的概率降雨| + |telephone|这是固话0421-33441122
这是手机+86 18544139121|这是固话零四二一三三四四一一二二
这是手机八六一八五四四一三九一二一| + + acknowledgement: the NSW normalization codes are based on [Zhiyang Zhou's work here](https://github.com/Joee1995/chn_text_norm.git) + +1. punctuation removal + + For Chinese, it removes punctuation list collected in [Zhon](https://github.com/tsroten/zhon) project, containing + * non-stop puncs + ``` + '"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏' + ``` + * stop puncs + ``` + '!?。。' + ``` + + For English, it removes Python's `string.punctuation` + +1. multilingual English word upper/lower case conversion + since ASR/TTS lexicons usually unify English entries to uppercase or lowercase, the TN module should adapt with lexicon accordingly. + +## Supported text format + +1. plain text, preferably one sentence per line(most common case in ASR processing). + ``` + 今天早饭吃了没 + 没吃回家吃去吧 + ... + ``` + plain text is default format. + +2. Kaldi's transcription format + ``` + KALDI_KEY_UTT001 今天早饭吃了没 + KALDI_KEY_UTT002 没吃回家吃去吧 + ... + ``` + TN will skip first column key section, normalize latter transcription text + + pass `--has_key` option to switch to kaldi format. + +_note: All input text should be UTF-8 encoded._ + +## Run examples + +* TN (python) + +make sure you have **python3**, python2.X won't work correctly. + +`sh run.sh` in `TN` dir, and compare raw text and normalized text. + +* ITN (thrax) + +make sure you have **thrax** installed, and your PATH should be able to find thrax binaries. + +`sh run.sh` in `ITN` dir. check Makefile for grammar dependency. + +## possible future work + +Since TN is a typical "done is better than perfect" module in context of ASR, and the current state is sufficient for my purpose, I probably won't update this repo frequently. + +there are indeed something that needs to be improved: + +* For TN, NSW normalizers in TN dir are based on regular expression, I've found some unintended matches, those pattern regexps need to be refined for more precise TN coverage. + +* For ITN, extend those thrax rewriting grammars to cover more scenarios. + +* Further more, nowadays commercial systems start to introduce RNN-like models into TN, and a mix of (rule-based & model-based) system is state-of-the-art. More readings about this, look for Richard Sproat and KyleGorman's work at Google. + +END diff --git a/third_party/chinese_text_normalization/python/cn_tn.py b/third_party/chinese_text_normalization/python/cn_tn.py new file mode 100755 index 000000000..bac1c19ea --- /dev/null +++ b/third_party/chinese_text_normalization/python/cn_tn.py @@ -0,0 +1,794 @@ +#!/usr/bin/env python3 +# coding=utf-8 +# Authors: +# 2019.5 Zhiyang Zhou (https://github.com/Joee1995/chn_text_norm.git) +# 2019.9 Jiayu DU +# +# requirements: +# - python 3.X +# notes: python 2.X WILL fail or produce misleading results + +import sys, os, argparse, codecs, string, re + +# ================================================================================ # +# basic constant +# ================================================================================ # +CHINESE_DIGIS = u'零一二三四五六七八九' +BIG_CHINESE_DIGIS_SIMPLIFIED = u'零壹贰叁肆伍陆柒捌玖' +BIG_CHINESE_DIGIS_TRADITIONAL = u'零壹貳參肆伍陸柒捌玖' +SMALLER_BIG_CHINESE_UNITS_SIMPLIFIED = u'十百千万' +SMALLER_BIG_CHINESE_UNITS_TRADITIONAL = u'拾佰仟萬' +LARGER_CHINESE_NUMERING_UNITS_SIMPLIFIED = u'亿兆京垓秭穰沟涧正载' +LARGER_CHINESE_NUMERING_UNITS_TRADITIONAL = u'億兆京垓秭穰溝澗正載' +SMALLER_CHINESE_NUMERING_UNITS_SIMPLIFIED = u'十百千万' +SMALLER_CHINESE_NUMERING_UNITS_TRADITIONAL = u'拾佰仟萬' + +ZERO_ALT = u'〇' +ONE_ALT = u'幺' +TWO_ALTS = [u'两', u'兩'] + +POSITIVE = [u'正', u'正'] +NEGATIVE = [u'负', u'負'] +POINT = [u'点', u'點'] +# PLUS = [u'加', u'加'] +# SIL = [u'杠', u'槓'] + +# 中文数字系统类型 +NUMBERING_TYPES = ['low', 'mid', 'high'] + +CURRENCY_NAMES = '(人民币|美元|日元|英镑|欧元|马克|法郎|加拿大元|澳元|港币|先令|芬兰马克|爱尔兰镑|' \ + '里拉|荷兰盾|埃斯库多|比塞塔|印尼盾|林吉特|新西兰元|比索|卢布|新加坡元|韩元|泰铢)' +CURRENCY_UNITS = '((亿|千万|百万|万|千|百)|(亿|千万|百万|万|千|百|)元|(亿|千万|百万|万|千|百|)块|角|毛|分)' +COM_QUANTIFIERS = '(匹|张|座|回|场|尾|条|个|首|阙|阵|网|炮|顶|丘|棵|只|支|袭|辆|挑|担|颗|壳|窠|曲|墙|群|腔|' \ + '砣|座|客|贯|扎|捆|刀|令|打|手|罗|坡|山|岭|江|溪|钟|队|单|双|对|出|口|头|脚|板|跳|枝|件|贴|' \ + '针|线|管|名|位|身|堂|课|本|页|家|户|层|丝|毫|厘|分|钱|两|斤|担|铢|石|钧|锱|忽|(千|毫|微)克|' \ + '毫|厘|分|寸|尺|丈|里|寻|常|铺|程|(千|分|厘|毫|微)米|撮|勺|合|升|斗|石|盘|碗|碟|叠|桶|笼|盆|' \ + '盒|杯|钟|斛|锅|簋|篮|盘|桶|罐|瓶|壶|卮|盏|箩|箱|煲|啖|袋|钵|年|月|日|季|刻|时|周|天|秒|分|旬|' \ + '纪|岁|世|更|夜|春|夏|秋|冬|代|伏|辈|丸|泡|粒|颗|幢|堆|条|根|支|道|面|片|张|颗|块)' + +# punctuation information are based on Zhon project (https://github.com/tsroten/zhon.git) +CHINESE_PUNC_STOP = '!?。。' +CHINESE_PUNC_NON_STOP = '"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏' +CHINESE_PUNC_OTHER = '·〈〉-' +CHINESE_PUNC_LIST = CHINESE_PUNC_STOP + CHINESE_PUNC_NON_STOP + CHINESE_PUNC_OTHER + +# ================================================================================ # +# basic class +# ================================================================================ # +class ChineseChar(object): + """ + 中文字符 + 每个字符对应简体和繁体, + e.g. 简体 = '负', 繁体 = '負' + 转换时可转换为简体或繁体 + """ + + def __init__(self, simplified, traditional): + self.simplified = simplified + self.traditional = traditional + #self.__repr__ = self.__str__ + + def __str__(self): + return self.simplified or self.traditional or None + + def __repr__(self): + return self.__str__() + + +class ChineseNumberUnit(ChineseChar): + """ + 中文数字/数位字符 + 每个字符除繁简体外还有一个额外的大写字符 + e.g. '陆' 和 '陸' + """ + + def __init__(self, power, simplified, traditional, big_s, big_t): + super(ChineseNumberUnit, self).__init__(simplified, traditional) + self.power = power + self.big_s = big_s + self.big_t = big_t + + def __str__(self): + return '10^{}'.format(self.power) + + @classmethod + def create(cls, index, value, numbering_type=NUMBERING_TYPES[1], small_unit=False): + + if small_unit: + return ChineseNumberUnit(power=index + 1, + simplified=value[0], traditional=value[1], big_s=value[1], big_t=value[1]) + elif numbering_type == NUMBERING_TYPES[0]: + return ChineseNumberUnit(power=index + 8, + simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1]) + elif numbering_type == NUMBERING_TYPES[1]: + return ChineseNumberUnit(power=(index + 2) * 4, + simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1]) + elif numbering_type == NUMBERING_TYPES[2]: + return ChineseNumberUnit(power=pow(2, index + 3), + simplified=value[0], traditional=value[1], big_s=value[0], big_t=value[1]) + else: + raise ValueError( + 'Counting type should be in {0} ({1} provided).'.format(NUMBERING_TYPES, numbering_type)) + + +class ChineseNumberDigit(ChineseChar): + """ + 中文数字字符 + """ + + def __init__(self, value, simplified, traditional, big_s, big_t, alt_s=None, alt_t=None): + super(ChineseNumberDigit, self).__init__(simplified, traditional) + self.value = value + self.big_s = big_s + self.big_t = big_t + self.alt_s = alt_s + self.alt_t = alt_t + + def __str__(self): + return str(self.value) + + @classmethod + def create(cls, i, v): + return ChineseNumberDigit(i, v[0], v[1], v[2], v[3]) + + +class ChineseMath(ChineseChar): + """ + 中文数位字符 + """ + + def __init__(self, simplified, traditional, symbol, expression=None): + super(ChineseMath, self).__init__(simplified, traditional) + self.symbol = symbol + self.expression = expression + self.big_s = simplified + self.big_t = traditional + + +CC, CNU, CND, CM = ChineseChar, ChineseNumberUnit, ChineseNumberDigit, ChineseMath + + +class NumberSystem(object): + """ + 中文数字系统 + """ + pass + + +class MathSymbol(object): + """ + 用于中文数字系统的数学符号 (繁/简体), e.g. + positive = ['正', '正'] + negative = ['负', '負'] + point = ['点', '點'] + """ + + def __init__(self, positive, negative, point): + self.positive = positive + self.negative = negative + self.point = point + + def __iter__(self): + for v in self.__dict__.values(): + yield v + + +# class OtherSymbol(object): +# """ +# 其他符号 +# """ +# +# def __init__(self, sil): +# self.sil = sil +# +# def __iter__(self): +# for v in self.__dict__.values(): +# yield v + + +# ================================================================================ # +# basic utils +# ================================================================================ # +def create_system(numbering_type=NUMBERING_TYPES[1]): + """ + 根据数字系统类型返回创建相应的数字系统,默认为 mid + NUMBERING_TYPES = ['low', 'mid', 'high']: 中文数字系统类型 + low: '兆' = '亿' * '十' = $10^{9}$, '京' = '兆' * '十', etc. + mid: '兆' = '亿' * '万' = $10^{12}$, '京' = '兆' * '万', etc. + high: '兆' = '亿' * '亿' = $10^{16}$, '京' = '兆' * '兆', etc. + 返回对应的数字系统 + """ + + # chinese number units of '亿' and larger + all_larger_units = zip( + LARGER_CHINESE_NUMERING_UNITS_SIMPLIFIED, LARGER_CHINESE_NUMERING_UNITS_TRADITIONAL) + larger_units = [CNU.create(i, v, numbering_type, False) + for i, v in enumerate(all_larger_units)] + # chinese number units of '十, 百, 千, 万' + all_smaller_units = zip( + SMALLER_CHINESE_NUMERING_UNITS_SIMPLIFIED, SMALLER_CHINESE_NUMERING_UNITS_TRADITIONAL) + smaller_units = [CNU.create(i, v, small_unit=True) + for i, v in enumerate(all_smaller_units)] + # digis + chinese_digis = zip(CHINESE_DIGIS, CHINESE_DIGIS, + BIG_CHINESE_DIGIS_SIMPLIFIED, BIG_CHINESE_DIGIS_TRADITIONAL) + digits = [CND.create(i, v) for i, v in enumerate(chinese_digis)] + digits[0].alt_s, digits[0].alt_t = ZERO_ALT, ZERO_ALT + digits[1].alt_s, digits[1].alt_t = ONE_ALT, ONE_ALT + digits[2].alt_s, digits[2].alt_t = TWO_ALTS[0], TWO_ALTS[1] + + # symbols + positive_cn = CM(POSITIVE[0], POSITIVE[1], '+', lambda x: x) + negative_cn = CM(NEGATIVE[0], NEGATIVE[1], '-', lambda x: -x) + point_cn = CM(POINT[0], POINT[1], '.', lambda x, + y: float(str(x) + '.' + str(y))) + # sil_cn = CM(SIL[0], SIL[1], '-', lambda x, y: float(str(x) + '-' + str(y))) + system = NumberSystem() + system.units = smaller_units + larger_units + system.digits = digits + system.math = MathSymbol(positive_cn, negative_cn, point_cn) + # system.symbols = OtherSymbol(sil_cn) + return system + + +def chn2num(chinese_string, numbering_type=NUMBERING_TYPES[1]): + + def get_symbol(char, system): + for u in system.units: + if char in [u.traditional, u.simplified, u.big_s, u.big_t]: + return u + for d in system.digits: + if char in [d.traditional, d.simplified, d.big_s, d.big_t, d.alt_s, d.alt_t]: + return d + for m in system.math: + if char in [m.traditional, m.simplified]: + return m + + def string2symbols(chinese_string, system): + int_string, dec_string = chinese_string, '' + for p in [system.math.point.simplified, system.math.point.traditional]: + if p in chinese_string: + int_string, dec_string = chinese_string.split(p) + break + return [get_symbol(c, system) for c in int_string], \ + [get_symbol(c, system) for c in dec_string] + + def correct_symbols(integer_symbols, system): + """ + 一百八 to 一百八十 + 一亿一千三百万 to 一亿 一千万 三百万 + """ + + if integer_symbols and isinstance(integer_symbols[0], CNU): + if integer_symbols[0].power == 1: + integer_symbols = [system.digits[1]] + integer_symbols + + if len(integer_symbols) > 1: + if isinstance(integer_symbols[-1], CND) and isinstance(integer_symbols[-2], CNU): + integer_symbols.append( + CNU(integer_symbols[-2].power - 1, None, None, None, None)) + + result = [] + unit_count = 0 + for s in integer_symbols: + if isinstance(s, CND): + result.append(s) + unit_count = 0 + elif isinstance(s, CNU): + current_unit = CNU(s.power, None, None, None, None) + unit_count += 1 + + if unit_count == 1: + result.append(current_unit) + elif unit_count > 1: + for i in range(len(result)): + if isinstance(result[-i - 1], CNU) and result[-i - 1].power < current_unit.power: + result[-i - 1] = CNU(result[-i - 1].power + + current_unit.power, None, None, None, None) + return result + + def compute_value(integer_symbols): + """ + Compute the value. + When current unit is larger than previous unit, current unit * all previous units will be used as all previous units. + e.g. '两千万' = 2000 * 10000 not 2000 + 10000 + """ + value = [0] + last_power = 0 + for s in integer_symbols: + if isinstance(s, CND): + value[-1] = s.value + elif isinstance(s, CNU): + value[-1] *= pow(10, s.power) + if s.power > last_power: + value[:-1] = list(map(lambda v: v * + pow(10, s.power), value[:-1])) + last_power = s.power + value.append(0) + return sum(value) + + system = create_system(numbering_type) + int_part, dec_part = string2symbols(chinese_string, system) + int_part = correct_symbols(int_part, system) + int_str = str(compute_value(int_part)) + dec_str = ''.join([str(d.value) for d in dec_part]) + if dec_part: + return '{0}.{1}'.format(int_str, dec_str) + else: + return int_str + + +def num2chn(number_string, numbering_type=NUMBERING_TYPES[1], big=False, + traditional=False, alt_zero=False, alt_one=False, alt_two=True, + use_zeros=True, use_units=True): + + def get_value(value_string, use_zeros=True): + + striped_string = value_string.lstrip('0') + + # record nothing if all zeros + if not striped_string: + return [] + + # record one digits + elif len(striped_string) == 1: + if use_zeros and len(value_string) != len(striped_string): + return [system.digits[0], system.digits[int(striped_string)]] + else: + return [system.digits[int(striped_string)]] + + # recursively record multiple digits + else: + result_unit = next(u for u in reversed( + system.units) if u.power < len(striped_string)) + result_string = value_string[:-result_unit.power] + return get_value(result_string) + [result_unit] + get_value(striped_string[-result_unit.power:]) + + system = create_system(numbering_type) + + int_dec = number_string.split('.') + if len(int_dec) == 1: + int_string = int_dec[0] + dec_string = "" + elif len(int_dec) == 2: + int_string = int_dec[0] + dec_string = int_dec[1] + else: + raise ValueError( + "invalid input num string with more than one dot: {}".format(number_string)) + + if use_units and len(int_string) > 1: + result_symbols = get_value(int_string) + else: + result_symbols = [system.digits[int(c)] for c in int_string] + dec_symbols = [system.digits[int(c)] for c in dec_string] + if dec_string: + result_symbols += [system.math.point] + dec_symbols + + if alt_two: + liang = CND(2, system.digits[2].alt_s, system.digits[2].alt_t, + system.digits[2].big_s, system.digits[2].big_t) + for i, v in enumerate(result_symbols): + if isinstance(v, CND) and v.value == 2: + next_symbol = result_symbols[i + + 1] if i < len(result_symbols) - 1 else None + previous_symbol = result_symbols[i - 1] if i > 0 else None + if isinstance(next_symbol, CNU) and isinstance(previous_symbol, (CNU, type(None))): + if next_symbol.power != 1 and ((previous_symbol is None) or (previous_symbol.power != 1)): + result_symbols[i] = liang + + # if big is True, '两' will not be used and `alt_two` has no impact on output + if big: + attr_name = 'big_' + if traditional: + attr_name += 't' + else: + attr_name += 's' + else: + if traditional: + attr_name = 'traditional' + else: + attr_name = 'simplified' + + result = ''.join([getattr(s, attr_name) for s in result_symbols]) + + # if not use_zeros: + # result = result.strip(getattr(system.digits[0], attr_name)) + + if alt_zero: + result = result.replace( + getattr(system.digits[0], attr_name), system.digits[0].alt_s) + + if alt_one: + result = result.replace( + getattr(system.digits[1], attr_name), system.digits[1].alt_s) + + for i, p in enumerate(POINT): + if result.startswith(p): + return CHINESE_DIGIS[0] + result + + # ^10, 11, .., 19 + if len(result) >= 2 and result[1] in [SMALLER_CHINESE_NUMERING_UNITS_SIMPLIFIED[0], + SMALLER_CHINESE_NUMERING_UNITS_TRADITIONAL[0]] and \ + result[0] in [CHINESE_DIGIS[1], BIG_CHINESE_DIGIS_SIMPLIFIED[1], BIG_CHINESE_DIGIS_TRADITIONAL[1]]: + result = result[1:] + + return result + + +# ================================================================================ # +# different types of rewriters +# ================================================================================ # +class Cardinal: + """ + CARDINAL类 + """ + + def __init__(self, cardinal=None, chntext=None): + self.cardinal = cardinal + self.chntext = chntext + + def chntext2cardinal(self): + return chn2num(self.chntext) + + def cardinal2chntext(self): + return num2chn(self.cardinal) + +class Digit: + """ + DIGIT类 + """ + + def __init__(self, digit=None, chntext=None): + self.digit = digit + self.chntext = chntext + + # def chntext2digit(self): + # return chn2num(self.chntext) + + def digit2chntext(self): + return num2chn(self.digit, alt_two=False, use_units=False) + + +class TelePhone: + """ + TELEPHONE类 + """ + + def __init__(self, telephone=None, raw_chntext=None, chntext=None): + self.telephone = telephone + self.raw_chntext = raw_chntext + self.chntext = chntext + + # def chntext2telephone(self): + # sil_parts = self.raw_chntext.split('') + # self.telephone = '-'.join([ + # str(chn2num(p)) for p in sil_parts + # ]) + # return self.telephone + + def telephone2chntext(self, fixed=False): + + if fixed: + sil_parts = self.telephone.split('-') + self.raw_chntext = ''.join([ + num2chn(part, alt_two=False, use_units=False) for part in sil_parts + ]) + self.chntext = self.raw_chntext.replace('', '') + else: + sp_parts = self.telephone.strip('+').split() + self.raw_chntext = ''.join([ + num2chn(part, alt_two=False, use_units=False) for part in sp_parts + ]) + self.chntext = self.raw_chntext.replace('', '') + return self.chntext + + +class Fraction: + """ + FRACTION类 + """ + + def __init__(self, fraction=None, chntext=None): + self.fraction = fraction + self.chntext = chntext + + def chntext2fraction(self): + denominator, numerator = self.chntext.split('分之') + return chn2num(numerator) + '/' + chn2num(denominator) + + def fraction2chntext(self): + numerator, denominator = self.fraction.split('/') + return num2chn(denominator) + '分之' + num2chn(numerator) + + +class Date: + """ + DATE类 + """ + + def __init__(self, date=None, chntext=None): + self.date = date + self.chntext = chntext + + # def chntext2date(self): + # chntext = self.chntext + # try: + # year, other = chntext.strip().split('年', maxsplit=1) + # year = Digit(chntext=year).digit2chntext() + '年' + # except ValueError: + # other = chntext + # year = '' + # if other: + # try: + # month, day = other.strip().split('月', maxsplit=1) + # month = Cardinal(chntext=month).chntext2cardinal() + '月' + # except ValueError: + # day = chntext + # month = '' + # if day: + # day = Cardinal(chntext=day[:-1]).chntext2cardinal() + day[-1] + # else: + # month = '' + # day = '' + # date = year + month + day + # self.date = date + # return self.date + + def date2chntext(self): + date = self.date + try: + year, other = date.strip().split('年', 1) + year = Digit(digit=year).digit2chntext() + '年' + except ValueError: + other = date + year = '' + if other: + try: + month, day = other.strip().split('月', 1) + month = Cardinal(cardinal=month).cardinal2chntext() + '月' + except ValueError: + day = date + month = '' + if day: + day = Cardinal(cardinal=day[:-1]).cardinal2chntext() + day[-1] + else: + month = '' + day = '' + chntext = year + month + day + self.chntext = chntext + return self.chntext + + +class Money: + """ + MONEY类 + """ + + def __init__(self, money=None, chntext=None): + self.money = money + self.chntext = chntext + + # def chntext2money(self): + # return self.money + + def money2chntext(self): + money = self.money + pattern = re.compile(r'(\d+(\.\d+)?)') + matchers = pattern.findall(money) + if matchers: + for matcher in matchers: + money = money.replace(matcher[0], Cardinal(cardinal=matcher[0]).cardinal2chntext()) + self.chntext = money + return self.chntext + + +class Percentage: + """ + PERCENTAGE类 + """ + + def __init__(self, percentage=None, chntext=None): + self.percentage = percentage + self.chntext = chntext + + def chntext2percentage(self): + return chn2num(self.chntext.strip().strip('百分之')) + '%' + + def percentage2chntext(self): + return '百分之' + num2chn(self.percentage.strip().strip('%')) + + +# ================================================================================ # +# NSW Normalizer +# ================================================================================ # +class NSWNormalizer: + def __init__(self, raw_text): + self.raw_text = '^' + raw_text + '$' + self.norm_text = '' + + def _particular(self): + text = self.norm_text + pattern = re.compile(r"(([a-zA-Z]+)二([a-zA-Z]+))") + matchers = pattern.findall(text) + if matchers: + # print('particular') + for matcher in matchers: + text = text.replace(matcher[0], matcher[1]+'2'+matcher[2], 1) + self.norm_text = text + return self.norm_text + + def normalize(self): + text = self.raw_text + + # 规范化日期 + pattern = re.compile(r"\D+((([089]\d|(19|20)\d{2})年)?(\d{1,2}月(\d{1,2}[日号])?)?)") + matchers = pattern.findall(text) + if matchers: + #print('date') + for matcher in matchers: + text = text.replace(matcher[0], Date(date=matcher[0]).date2chntext(), 1) + + # 规范化金钱 + pattern = re.compile(r"\D+((\d+(\.\d+)?)[多余几]?" + CURRENCY_UNITS + r"(\d" + CURRENCY_UNITS + r"?)?)") + matchers = pattern.findall(text) + if matchers: + #print('money') + for matcher in matchers: + text = text.replace(matcher[0], Money(money=matcher[0]).money2chntext(), 1) + + # 规范化固话/手机号码 + # 手机 + # http://www.jihaoba.com/news/show/13680 + # 移动:139、138、137、136、135、134、159、158、157、150、151、152、188、187、182、183、184、178、198 + # 联通:130、131、132、156、155、186、185、176 + # 电信:133、153、189、180、181、177 + pattern = re.compile(r"\D((\+?86 ?)?1([38]\d|5[0-35-9]|7[678]|9[89])\d{8})\D") + matchers = pattern.findall(text) + if matchers: + #print('telephone') + for matcher in matchers: + text = text.replace(matcher[0], TelePhone(telephone=matcher[0]).telephone2chntext(), 1) + # 固话 + pattern = re.compile(r"\D((0(10|2[1-3]|[3-9]\d{2})-?)?[1-9]\d{6,7})\D") + matchers = pattern.findall(text) + if matchers: + # print('fixed telephone') + for matcher in matchers: + text = text.replace(matcher[0], TelePhone(telephone=matcher[0]).telephone2chntext(fixed=True), 1) + + # 规范化分数 + pattern = re.compile(r"(\d+/\d+)") + matchers = pattern.findall(text) + if matchers: + #print('fraction') + for matcher in matchers: + text = text.replace(matcher, Fraction(fraction=matcher).fraction2chntext(), 1) + + # 规范化百分数 + text = text.replace('%', '%') + pattern = re.compile(r"(\d+(\.\d+)?%)") + matchers = pattern.findall(text) + if matchers: + #print('percentage') + for matcher in matchers: + text = text.replace(matcher[0], Percentage(percentage=matcher[0]).percentage2chntext(), 1) + + # 规范化纯数+量词 + pattern = re.compile(r"(\d+(\.\d+)?)[多余几]?" + COM_QUANTIFIERS) + matchers = pattern.findall(text) + if matchers: + #print('cardinal+quantifier') + for matcher in matchers: + text = text.replace(matcher[0], Cardinal(cardinal=matcher[0]).cardinal2chntext(), 1) + + # 规范化数字编号 + pattern = re.compile(r"(\d{4,32})") + matchers = pattern.findall(text) + if matchers: + #print('digit') + for matcher in matchers: + text = text.replace(matcher, Digit(digit=matcher).digit2chntext(), 1) + + # 规范化纯数 + pattern = re.compile(r"(\d+(\.\d+)?)") + matchers = pattern.findall(text) + if matchers: + #print('cardinal') + for matcher in matchers: + text = text.replace(matcher[0], Cardinal(cardinal=matcher[0]).cardinal2chntext(), 1) + + self.norm_text = text + self._particular() + + return self.norm_text.lstrip('^').rstrip('$') + + +def nsw_test_case(raw_text): + print('I:' + raw_text) + print('O:' + NSWNormalizer(raw_text).normalize()) + print('') + + +def nsw_test(): + nsw_test_case('固话:0595-23865596或23880880。') + nsw_test_case('固话:0595-23865596或23880880。') + nsw_test_case('手机:+86 19859213959或15659451527。') + nsw_test_case('分数:32477/76391。') + nsw_test_case('百分数:80.03%。') + nsw_test_case('编号:31520181154418。') + nsw_test_case('纯数:2983.07克或12345.60米。') + nsw_test_case('日期:1999年2月20日或09年3月15号。') + nsw_test_case('金钱:12块5,34.5元,20.1万') + nsw_test_case('特殊:O2O或B2C。') + nsw_test_case('3456万吨') + nsw_test_case('2938个') + nsw_test_case('938') + nsw_test_case('今天吃了115个小笼包231个馒头') + nsw_test_case('有62%的概率') + + +if __name__ == '__main__': + #nsw_test() + + p = argparse.ArgumentParser() + p.add_argument('ifile', help='input filename, assume utf-8 encoding') + p.add_argument('ofile', help='output filename') + p.add_argument('--to_upper', action='store_true', help='convert to upper case') + p.add_argument('--to_lower', action='store_true', help='convert to lower case') + p.add_argument('--has_key', action='store_true', help="input text has Kaldi's key as first field.") + p.add_argument('--log_interval', type=int, default=100000, help='log interval in number of processed lines') + args = p.parse_args() + + ifile = codecs.open(args.ifile, 'r', 'utf8') + ofile = codecs.open(args.ofile, 'w+', 'utf8') + + n = 0 + for l in ifile: + key = '' + text = '' + if args.has_key: + cols = l.split(maxsplit=1) + key = cols[0] + if len(cols) == 2: + text = cols[1].strip() + else: + text = '' + else: + text = l.strip() + + # cases + if args.to_upper and args.to_lower: + sys.stderr.write('cn_tn.py: to_upper OR to_lower?') + exit(1) + if args.to_upper: + text = text.upper() + if args.to_lower: + text = text.lower() + + # NSW(Non-Standard-Word) normalization + text = NSWNormalizer(text).normalize() + + # Punctuations removal + old_chars = CHINESE_PUNC_LIST + string.punctuation # includes all CN and EN punctuations + new_chars = ' ' * len(old_chars) + del_chars = '' + text = text.translate(str.maketrans(old_chars, new_chars, del_chars)) + + # + if args.has_key: + ofile.write(key + '\t' + text + '\n') + else: + if text.strip() != '': # skip empty line in pure text format(without Kaldi's utt key) + ofile.write(text + '\n') + + n += 1 + if n % args.log_interval == 0: + sys.stderr.write("cn_tn.py: {} lines done.\n".format(n)) + sys.stderr.flush() + + sys.stderr.write("cn_tn.py: {} lines done in total.\n".format(n)) + sys.stderr.flush() + + ifile.close() + ofile.close() diff --git a/third_party/chinese_text_normalization/python/example_kaldi.txt b/third_party/chinese_text_normalization/python/example_kaldi.txt new file mode 100644 index 000000000..07af5674b --- /dev/null +++ b/third_party/chinese_text_normalization/python/example_kaldi.txt @@ -0,0 +1,7 @@ +UTT000 这块黄金重达324.75克 +UTT001 她出生于86年8月18日,她弟弟出生于1995年3月1日 +UTT002 电影中梁朝伟扮演的陈永仁的编号27149 +UTT003 现场有7/12的观众投出了赞成票 +UTT004 随便来几个价格12块5,34.5元,20.1万 +UTT005 明天有62%的概率降雨 +UTT006 这是固话0421-33441122或这是手机+86 18544139121 diff --git a/third_party/chinese_text_normalization/python/example_plain.txt b/third_party/chinese_text_normalization/python/example_plain.txt new file mode 100644 index 000000000..14e5a09fe --- /dev/null +++ b/third_party/chinese_text_normalization/python/example_plain.txt @@ -0,0 +1,7 @@ +这块黄金重达324.75克 +她出生于86年8月18日,她弟弟出生于1995年3月1日 +电影中梁朝伟扮演的陈永仁的编号27149 +现场有7/12的观众投出了赞成票 +随便来几个价格12块5,34.5元,20.1万 +明天有62%的概率降雨 +这是固话0421-33441122或这是手机+86 18544139121 diff --git a/third_party/chinese_text_normalization/python/run.sh b/third_party/chinese_text_normalization/python/run.sh new file mode 100644 index 000000000..0866d72f0 --- /dev/null +++ b/third_party/chinese_text_normalization/python/run.sh @@ -0,0 +1,8 @@ +# for plain text +python3 cn_tn.py example_plain.txt output_plain.txt +diff example_plain.txt output_plain.txt + +# for Kaldi's trans format +python3 cn_tn.py --has_key example_kaldi.txt output_kaldi.txt +diff example_kaldi.txt output_kaldi.txt + diff --git a/third_party/chinese_text_normalization/thrax/INSTALL.txt b/third_party/chinese_text_normalization/thrax/INSTALL.txt new file mode 100644 index 000000000..dcbd58c50 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/INSTALL.txt @@ -0,0 +1,24 @@ +0. place install_thrax.sh into $KALDI/tools/extras/ + +1. recompile openfst with necessary option "--enable-grm" to support thrax: +* cd $KALDI_ROOT/tools +* make clean +* edit $KALDI_ROOT/tools/Makefile, append "--enable-grm" option to OPENFST_CONFIGURE: +OPENFST_CONFIGURE ?= --enable-static --enable-shared --enable-far --enable-ngram-fsts --enable-lookahead-fsts --with-pic --enable-grm +* make -j 10 + +2. install thrax +cd $KALDI_ROOT/tools +sh extras/install_thrax.sh + +3. add thrax binary path into $KALDI_ROOT/tools/env.sh: +export PATH=/path/to/your/kaldi_root/tools/thrax-1.2.9/src/bin:${PATH} + +usage: +before you run anything related to thrax, use: +. $KALDI_ROOT/tools/env.sh +to enable binary finding, like what we always do in kaldi. + +sample usage: +sh run_en.sh +sh run_cn.sh diff --git a/third_party/chinese_text_normalization/thrax/install_thrax.sh b/third_party/chinese_text_normalization/thrax/install_thrax.sh new file mode 100755 index 000000000..20d2757b9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/install_thrax.sh @@ -0,0 +1,12 @@ +#!/bin/bash +## This script should be placed under $KALDI_ROOT/tools/extras/, and see INSTALL.txt for installation guide +if [ ! -f thrax-1.2.9.tar.gz ]; then + wget http://www.openfst.org/twiki/pub/GRM/ThraxDownload/thrax-1.2.9.tar.gz + tar -zxf thrax-1.2.9.tar.gz +fi +cd thrax-1.2.9 +OPENFSTPREFIX=`pwd`/../openfst +LDFLAGS="-L${OPENFSTPREFIX}/lib" CXXFLAGS="-I${OPENFSTPREFIX}/include" ./configure --prefix ${OPENFSTPREFIX} +make -j 10; make install +cd .. + diff --git a/third_party/chinese_text_normalization/thrax/papers/gorman-sproat-2016.pdf b/third_party/chinese_text_normalization/thrax/papers/gorman-sproat-2016.pdf new file mode 100644 index 0000000000000000000000000000000000000000..14a438c7f5e05bbe52231ac51c5645ba3e4cc933 GIT binary patch literal 538184 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

;@r|$1VBtRrFkXQwep+ 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" | "?" | "@" | "\[" | "\\" | + "\]" | "^" | "_" | "`" | "{" | "|" | "}" | "~" +]; + +export kGraph = Optimize[kAlnum | kPunct]; diff --git a/third_party/chinese_text_normalization/thrax/src/cn/date.grm b/third_party/chinese_text_normalization/thrax/src/cn/date.grm new file mode 100644 index 000000000..546937383 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/date.grm @@ -0,0 +1,10 @@ +import 'byte.grm' as b; +import 'number.grm' as n; + +date_day = n.number_1_to_99 ("日"|"号"); +date_month_day = n.number_1_to_99 "月" date_day; +date_year_month_day = ((n.number_0_to_9){2,4} | n.number) "年" date_month_day; + +date = date_year_month_day | date_month_day | date_day; + +export DATE = CDRewrite[date, "", "", b.kBytes*]; diff --git a/third_party/chinese_text_normalization/thrax/src/cn/hotfix.grm b/third_party/chinese_text_normalization/thrax/src/cn/hotfix.grm new file mode 100644 index 000000000..f1a43cdf2 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/hotfix.grm @@ -0,0 +1,5 @@ +import 'byte.grm' as b; +hotfix = StringFile['hotfix.list']; + +export HOTFIX = CDRewrite[hotfix, "", "", b.kBytes*]; + diff --git a/third_party/chinese_text_normalization/thrax/src/cn/hotfix.list b/third_party/chinese_text_normalization/thrax/src/cn/hotfix.list new file mode 100644 index 000000000..7234996e9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/hotfix.list @@ -0,0 +1,18 @@ +0头 零头 +10字 十字 +东4环 东4环 -1.0 +东4 东四 -0.5 +4惠 四惠 +3元桥 三元桥 +4平市 四平市 +5台山 五台山 +西2旗 西二旗 +西3旗 西三旗 +4道口 四道口 -1.0 +5道口 五道口 -1.0 +6道口 六道口 -1.0 +6里桥 六里桥 +7里庄 七里庄 +8宝山 八宝山 +9颗松 九棵松 +10里堡 十里堡 diff --git a/third_party/chinese_text_normalization/thrax/src/cn/itn.grm b/third_party/chinese_text_normalization/thrax/src/cn/itn.grm new file mode 100644 index 000000000..709ce6c66 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/itn.grm @@ -0,0 +1,9 @@ +import 'byte.grm' as b; +import 'number.grm' as number; +import 'hotfix.grm' as hotfix; +import 'percentage.grm' as percentage; +import 'date.grm' as date; +import 'amount.grm' as amount; # seems not useful for now + +export ITN = Optimize[percentage.PERCENTAGE @ (date.DATE <-1>) @ number.NUMBER @ hotfix.HOTFIX]; + diff --git a/third_party/chinese_text_normalization/thrax/src/cn/number.grm b/third_party/chinese_text_normalization/thrax/src/cn/number.grm new file mode 100644 index 000000000..1e9a86545 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/number.grm @@ -0,0 +1,61 @@ +import 'byte.grm' as b; + +number_1_to_9 = ( + ("一":"1") | ("幺":"1") | + ("二":"2") | ("两":"2") | + ("三":"3") | + ("四":"4") | + ("五":"5") | + ("六":"6") | + ("七":"7") | + ("八":"8") | + ("九":"9") +); + +export number_0_to_9 = (("零":"0") | number_1_to_9); + +number_10_to_19 = ( + ("十":"10") | + ("十一":"11") | + ("十二":"12") | + ("十三":"13") | + ("十四":"14") | + ("十五":"15") | + ("十六":"16") | + ("十七":"17") | + ("十八":"18") | + ("十九":"19") +); + +number_10s = (number_1_to_9 ("十":"")); +number_100s = (number_1_to_9 ("百":"")); +number_1000s = (number_1_to_9 ("千":"")); +number_10000s = (number_1_to_9 ("万":"")); + +number_10_to_99 = ( + ((number_10s number_1_to_9)<-0.3>) | + ((number_10s ("":"0"))<-0.2>) | + (number_10_to_19 <-0.1>) +); + +export number_1_to_99 = (number_1_to_9 | number_10_to_99); + +number_100_to_999 = ( + ((number_100s ("零":"0") number_1_to_9)<0.0>)| + ((number_100s number_10_to_99)<0.0>) | + ((number_100s number_1_to_9 ("":"0"))<0.0>) | + ((number_100s ("":"00"))<0.1>) +); + +number_1000_to_9999 = ( + ((number_1000s number_100_to_999)<0.0>) | + ((number_1000s ("零":"0") number_10_to_99)<0.0>)| + ((number_1000s ("零":"00") number_1_to_9)<0.0>)| + ((number_1000s ("":"000"))<1>) | + ((number_1000s number_1_to_9 ("":"00"))<0.0>) +); + +export number = number_1_to_99 | (number_100_to_999 <-1>) | (number_1000_to_9999 <-2>); + +export NUMBER = CDRewrite[number, "", "", b.kBytes*]; + diff --git a/third_party/chinese_text_normalization/thrax/src/cn/percentage.grm b/third_party/chinese_text_normalization/thrax/src/cn/percentage.grm new file mode 100644 index 000000000..d9f92a36e --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/cn/percentage.grm @@ -0,0 +1,8 @@ +import 'byte.grm' as b; +import 'number.grm' as n; + +percentage = ( + ("百分之":"") n.number_1_to_99 ("":"%") +); + +export PERCENTAGE = CDRewrite[percentage, "", "", b.kBytes*]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/README.md b/third_party/chinese_text_normalization/thrax/src/en/README.md new file mode 100644 index 000000000..8157e807c --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/README.md @@ -0,0 +1,6 @@ +# English covering grammar definitions + +This directory defines a English text normalization covering grammar. The +primary entry-point is the FST `VERBALIZER`, defined in +`verbalizer/verbalizer.grm` and compiled in the FST archive +`verbalizer/verbalizer.far`. diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/Makefile b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/Makefile new file mode 100644 index 000000000..6318dc546 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/Makefile @@ -0,0 +1,3 @@ +verbalizer.far: verbalizer.grm util/util.far en/verbalizer/extra_numbers.far en/verbalizer/float.far en/verbalizer/math.far en/verbalizer/miscellaneous.far en/verbalizer/money.far en/verbalizer/numbers.far en/verbalizer/numbers_plus.far en/verbalizer/spelled.far en/verbalizer/spoken_punct.far en/verbalizer/time.far en/verbalizer/urls.far + thraxcompiler --input_grammar=$< --output_far=$@ + diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/cardinals.tsv b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/cardinals.tsv new file mode 100644 index 000000000..b4704ff3e --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/cardinals.tsv @@ -0,0 +1,32 @@ +0 zero +1 one +2 two +3 three +4 four +5 five +6 six +7 seven +8 eight +9 nine +10 ten +11 eleven +12 twelve +13 thirteen +14 fourteen +15 fifteen +16 sixteen +17 seventeen +18 eighteen +19 nineteen +20 twenty +30 thirty +40 forty +50 fifty +60 sixty +70 seventy +80 eighty +90 ninety +100 hundred +1000 thousand +1000000 million +1000000000 billion diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/extra_numbers.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/extra_numbers.grm new file mode 100644 index 000000000..a1fb370c4 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/extra_numbers.grm @@ -0,0 +1,35 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'en/verbalizer/numbers.grm' as n; + +digit = b.kDigit @ n.CARDINAL_NUMBERS | ("0" : "@@OTHER_ZERO_VERBALIZATIONS@@"); + +export DIGITS = digit (n.I[" "] digit)*; + +# Various common factorizations + +two_digits = b.kDigit{2} @ n.CARDINAL_NUMBERS; + +three_digits = b.kDigit{3} @ n.CARDINAL_NUMBERS; + +mixed = + (digit n.I[" "] two_digits) + | (two_digits n.I[" "] two_digits) + | (two_digits n.I[" "] three_digits) + | (two_digits n.I[" "] two_digits n.I[" "] two_digits) +; + +export MIXED_NUMBERS = Optimize[mixed]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/factorization.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/factorization.grm new file mode 100644 index 000000000..22ecfa9f4 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/factorization.grm @@ -0,0 +1,40 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'util/util.grm' as u; +import 'en/verbalizer/numbers.grm' as n; + +func ToNumberName[expr] { + number_name_seq = n.CARDINAL_NUMBERS (" " n.CARDINAL_NUMBERS)*; + return Optimize[expr @ number_name_seq]; +} + +d = b.kDigit; + +leading_zero = CDRewrite[n.I[" "], ("[BOS]" | " ") "0", "", b.kBytes*]; + +by_ones = d n.I[" "]; +by_twos = (d{2} @ leading_zero) n.I[" "]; +by_threes = (d{3} @ leading_zero) n.I[" "]; + +groupings = by_twos* (by_threes | by_twos | by_ones); + +export FRACTIONAL_PART_UNGROUPED = + Optimize[ToNumberName[by_ones+ @ u.CLEAN_SPACES]] +; +export FRACTIONAL_PART_GROUPED = + Optimize[ToNumberName[groupings @ u.CLEAN_SPACES]] +; +export FRACTIONAL_PART_UNPARSED = Optimize[ToNumberName[d*]]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/float.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/float.grm new file mode 100644 index 000000000..00b7ea376 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/float.grm @@ -0,0 +1,30 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'en/verbalizer/factorization.grm' as f; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +fractional_part_ungrouped = f.FRACTIONAL_PART_UNGROUPED; +fractional_part_grouped = f.FRACTIONAL_PART_GROUPED; +fractional_part_unparsed = f.FRACTIONAL_PART_UNPARSED; + +__fractional_part__ = fractional_part_ungrouped | fractional_part_unparsed; +__decimal_marker__ = "."; + +export FLOAT = Optimize[ + (n.CARDINAL_NUMBERS + (__decimal_marker__ : " @@DECIMAL_DOT_EXPRESSION@@ ") + __fractional_part__) @ l.LEXICAL_MAP] +; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/g.fst b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/g.fst new file mode 100644 index 0000000000000000000000000000000000000000..135da015c7aeaa3e281eb2490ee24c2e604eb741 GIT binary patch literal 2558 zcmdUwNlwHt5Jkg0&+}~NX~W#G;w%W*f&_>q&6zk1w?U#_Qto`21oaM4(ogDlIkxM& z%KiEE@z$GV+3Wr7%i~kOdCxC54|g|Dcb(>AUB#>Q+;4f&d2bH6yJv5Jbr_BuaOOL9 zz?t{N0q-`PIwC(a2Vlg{9g$y{12EzZN93300F3yRBl0YJZ^k?i>_>p1$e{z?!y~al z=fCARXJa%+xaJ7g9O0THTyums9QMlKnj>6ugk$jxgZTjCtb@aJxE?THbLlgVKAa;K z9QZ}<)v;I$QP=XjVvUk#*$9)#8d@KtNledU%wy~s)4Cfsu9{C6SIyz7Ib1b|tLAXk z9Il$fRdYBw#rn{_q2;lIQIiJU>tFRiJY(J46dSZWqQ)AVPWC-xTs4NP#&Fdbt{THt zW4LMzSB>FXH(Ix|NsRjnU`0QabxXekjGnKXGxkEP?O-DTMjz?=^Tt&x*3>hGt5$H; z3V!aeSH5S}ig?2j7z<{}@M)vXyU2C(7$ zS)Nxg4zM()dtJ&$ly`eD4s1`?EB4f}%f;`ld#);0wbyi>)np#6t+gbkYlI}G^}3$K z^t+8b)}D@=K2JM&Z28!B?yqedtF`^t_m}Fk<9Yn-*`NP)yEgW}^eq1;^j6hba#yPc Ou@5@(Z?tENKKKSGa%&3! literal 0 HcmV?d00001 diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.grm new file mode 100644 index 000000000..a9b4ea490 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.grm @@ -0,0 +1,25 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; + +lexical_map = StringFile['en/verbalizer/lexical_map.tsv']; + +sigma_star = b.kBytes*; + +del_null = CDRewrite["__NULL__" : "", "", "", sigma_star]; + +export LEXICAL_MAP = Optimize[ + CDRewrite[lexical_map, "", "", sigma_star] @ del_null] +; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.tsv b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.tsv new file mode 100644 index 000000000..1e17034d8 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/lexical_map.tsv @@ -0,0 +1,74 @@ +@@CONNECTOR_RANGE@@ to +@@CONNECTOR_RATIO@@ to +@@CONNECTOR_BY@@ by +@@CONNECTOR_CONSECUTIVE_YEAR@@ to +@@JANUARY@@ january +@@FEBRUARY@@ february +@@MARCH@@ march +@@APRIL@@ april +@@MAY@@ may +@@JUNE@@ june +@@JULY@@ july +@@AUGUST@@ august +@@SEPTEMBER@@ september +@@OCTOBER@@ october +@@NOVEMBER@@ november +@@DECEMBER@@ december +@@MINUS@@ minus +@@DECIMAL_DOT_EXPRESSION@@ point +@@URL_DOT_EXPRESSION@@ dot +@@DECIMAL_EXPONENT@@ to the +@@DECIMAL_EXPONENT@@ to the power of +@@COLON@@ colon +@@SLASH@@ slash +@@SLASH@@ forward slash +@@DASH@@ dash +@@PASSWORD@@ password +@@AT@@ at +@@PORT@@ port +@@QUESTION_MARK@@ question mark +@@HASH@@ hash +@@HASH@@ hash tag +@@FRACTION_OVER@@ over +@@MONEY_AND@@ and +@@AND@@ and +@@PHONE_PLUS@@ plus +@@PHONE_EXTENSION@@ extension +@@TIME_AM@@ a m +@@TIME_PM@@ p m +@@HOUR@@ o'clock +@@MINUTE@@ minute +@@MINUTE@@ minutes +@@TIME_AFTER@@ after +@@TIME_AFTER@@ past +@@TIME_BEFORE@@ to +@@TIME_BEFORE@@ till +@@TIME_QUARTER@@ quarter +@@TIME_HALF@@ half +@@TIME_ZERO@@ oh +@@TIME_THREE_QUARTER@@ three quarters +@@ARITHMETIC_PLUS@@ plus +@@ARITHMETIC_TIMES@@ times +@@ARITHMETIC_TIMES@@ multiplied by +@@ARITHMETIC_MINUS@@ minus +@@ARITHMETIC_DIVISION@@ divided by +@@ARITHMETIC_DIVISION@@ over +@@ARITHMETIC_EQUALS@@ equals +@@PERCENT@@ percent +@@DEGREE@@ degree +@@DEGREE@@ degrees +@@SQUARE_ROOT@@ square root of +@@SQUARE_ROOT@@ the square root of +@@STAR@@ star +@@HYPHEN@@ hyphen +@@AT@@ at +@@PER@@ per +@@PERIOD@@ period +@@PERIOD@@ full stop +@@PERIOD@@ dot +@@EXCLAMATION_MARK@@ exclamation mark +@@EXCLAMATION_MARK@@ exclamation point +@@COMMA@@ comma +@@POSITIVE@@ positive +@@NEGATIVE@@ negative +@@OTHER_ZERO_VERBALIZATIONS@@ oh diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/math.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/math.grm new file mode 100644 index 000000000..764e6e02e --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/math.grm @@ -0,0 +1,34 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'en/verbalizer/float.grm' as f; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +float = f.FLOAT; +card = n.CARDINAL_NUMBERS; +number = card | float; + +plus = "+" : " @@ARITHMETIC_PLUS@@ "; +times = "*" : " @@ARITHMETIC_TIMES@@ "; +minus = "-" : " @@ARITHMETIC_MINUS@@ "; +division = "/" : " @@ARITHMETIC_DIVISION@@ "; + +operator = plus | times | minus | division; + +percent = "%" : " @@PERCENT@@"; + +export ARITHMETIC = + Optimize[((number operator number) | (number percent)) @ l.LEXICAL_MAP] +; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/miscellaneous.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/miscellaneous.grm new file mode 100644 index 000000000..3a087d95c --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/miscellaneous.grm @@ -0,0 +1,78 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'ru/classifier/cyrillic.grm' as c; +import 'en/verbalizer/extra_numbers.grm' as e; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; +import 'en/verbalizer/spelled.grm' as s; + +letter = b.kAlpha | c.kCyrillicAlpha; +dash = "-"; +word = letter+; +possibly_split_word = word (((dash | ".") : " ") word)* n.D["."]?; + +post_word_symbol = + ("+" : ("@@ARITHMETIC_PLUS@@" | "@@POSITIVE@@")) | + ("-" : ("@@ARITHMETIC_MINUS@@" | "@@NEGATIVE@@")) | + ("*" : "@@STAR@@") +; + +pre_word_symbol = + ("@" : "@@AT@@") | + ("/" : "@@SLASH@@") | + ("#" : "@@HASH@@") +; + +post_word = possibly_split_word n.I[" "] post_word_symbol; + +pre_word = pre_word_symbol n.I[" "] possibly_split_word; + +## Number/digit sequence combos, maybe with a dash + +spelled_word = word @ s.SPELLED_NO_LETTER; + +word_number = + (word | spelled_word) + (n.I[" "] | (dash : " ")) + (e.DIGITS | n.CARDINAL_NUMBERS | e.MIXED_NUMBERS) +; + +number_word = + (e.DIGITS | n.CARDINAL_NUMBERS | e.MIXED_NUMBERS) + (n.I[" "] | (dash : " ")) + (word | spelled_word) +; + +## Two-digit year. + +# Note that in this case to be fair we really have to allow ordinals too since +# in some languages that's what you would have. + +two_digit_year = n.D["'"] (b.kDigit{2} @ (n.CARDINAL_NUMBERS | e.DIGITS)); + +dot_com = ("." : "@@URL_DOT_EXPRESSION@@") n.I[" "] "com"; + +miscellaneous = Optimize[ + possibly_split_word + | post_word + | pre_word + | word_number + | number_word + | two_digit_year + | dot_com +]; + +export MISCELLANEOUS = Optimize[miscellaneous @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.grm new file mode 100644 index 000000000..e37a7f7b3 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.grm @@ -0,0 +1,44 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +card = n.CARDINAL_NUMBERS; + +__currency__ = StringFile['en/verbalizer/money.tsv']; + +d = b.kDigit; +D = d - "0"; + +cents = ((n.D["0"] | D) d) @ card; + +# Only dollar for the verbalizer tests for English. Will need to add other +# currencies. +usd_maj = Project["usd_maj" @ __currency__, 'output']; +usd_min = Project["usd_min" @ __currency__, 'output']; +and = " @@MONEY_AND@@ " | " "; + +dollar1 = + n.D["$"] card n.I[" " usd_maj] n.I[and] n.D["."] cents n.I[" " usd_min] +; + +dollar2 = n.D["$"] card n.I[" " usd_maj] n.D["."] n.D["00"]; + +dollar3 = n.D["$"] card n.I[" " usd_maj]; + +dollar = Optimize[dollar1 | dollar2 | dollar3]; + +export MONEY = Optimize[dollar @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.tsv b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.tsv new file mode 100644 index 000000000..f3965cf41 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/money.tsv @@ -0,0 +1,4 @@ +usd_maj dollar +usd_maj dollars +usd_min cent +usd_min cents diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/number_names.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/number_names.grm new file mode 100644 index 000000000..3e07532fe --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/number_names.grm @@ -0,0 +1,54 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# English minimally supervised number grammar. +# +# Supports both cardinals and ordinals without overt marking. +# +# The language-specific acceptor G was compiled with digit, teen, and decade +# preterminals. The lexicon transducer L is unambiguous so no LM is used. + +import 'util/arithmetic.grm' as a; + +# Intersects the universal factorization transducer (F) with the +# language-specific acceptor (G). + +d = a.DELTA_STAR; +f = a.IARITHMETIC_RESTRICTED; +g = LoadFst['en/verbalizer/g.fst']; +fg = Optimize[d @ Optimize[f @ Optimize[f @ Optimize[f @ g]]]]; +test1 = AssertEqual["230" @ fg, "(+ (* 2 100 *) 30 +)"]; + +# Compiles lexicon transducer (L). + +cardinal_name = StringFile['en/verbalizer/cardinals.tsv']; +cardinal_l = Optimize[(cardinal_name " ")* cardinal_name]; +test2 = AssertEqual["2 100 30" @ cardinal_l, "two hundred thirty"]; + +ordinal_name = StringFile['en/verbalizer/ordinals.tsv']; +# In English, ordinals have the same syntax as cardinals and all but the final +# element is verbalized using a cardinal number word; e.g., "two hundred +# thirtieth". +ordinal_l = Optimize[(cardinal_name " ")* ordinal_name]; +test3 = AssertEqual["2 100 30" @ ordinal_l, "two hundred thirtieth"]; + +# Composes L with the leaf transducer (P), then composes that with FG. + +p = a.LEAVES; + +export CARDINAL_NUMBER_NAME = Optimize[fg @ (p @ cardinal_l)]; +test4 = AssertEqual["230" @ CARDINAL_NUMBER_NAME, "two hundred thirty"]; + +export ORDINAL_NUMBER_NAME = Optimize[fg @ (p @ ordinal_l)]; +test5 = AssertEqual["230" @ ORDINAL_NUMBER_NAME, "two hundred thirtieth"]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers.grm new file mode 100644 index 000000000..e158b7a02 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers.grm @@ -0,0 +1,57 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'en/verbalizer/number_names.grm' as n; +import 'util/byte.grm' as bytelib; +import 'universal/thousands_punct.grm' as t; + +cardinal = n.CARDINAL_NUMBER_NAME; +ordinal = n.ORDINAL_NUMBER_NAME; + +# Putting these here since this grammar gets incorporated by all the others. + +func I[expr] { + return "" : expr; +} + +func D[expr] { + return expr : ""; +} + +separators = t.comma_thousands | t.no_delimiter; + +# Language specific endings for ordinals. +d = bytelib.kDigit; +endings = "st" | "nd" | "rd" | "th"; + +st = (d* "1") - (d* "11"); +nd = (d* "2") - (d* "12"); +rd = (d* "3") - (d* "13"); +th = Optimize[d* - st - nd - rd]; +first = st ("st" : ""); +second = nd ("nd" : ""); +third = rd ("rd" : ""); +other = th ("th" : ""); +marked_ordinal = Optimize[first | second | third | other]; + +# The separator is a no-op here but will be needed once we replace +# the above targets. + +export CARDINAL_NUMBERS = Optimize[separators @ cardinal]; + +export ORDINAL_NUMBERS = + Optimize[(separators endings) @ marked_ordinal @ ordinal] +; + +export ORDINAL_NUMBERS_UNMARKED = Optimize[separators @ ordinal]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers_plus.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers_plus.grm new file mode 100644 index 000000000..a152e8133 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/numbers_plus.grm @@ -0,0 +1,133 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Grammar for things built mostly on numbers. + +import 'en/verbalizer/factorization.grm' as f; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +num = n.CARDINAL_NUMBERS; +ord = n.ORDINAL_NUMBERS_UNMARKED; +digits = f.FRACTIONAL_PART_UNGROUPED; + +# Various symbols. + +plus = "+" : "@@ARITHMETIC_PLUS@@"; +minus = "-" : "@@ARITHMETIC_MINUS@@"; +slash = "/" : "@@SLASH@@"; +dot = "." : "@@URL_DOT_EXPRESSION@@"; +dash = "-" : "@@DASH@@"; +equals = "=" : "@@ARITHMETIC_EQUALS@@"; + +degree = "°" : "@@DEGREE@@"; + +division = ("/" | "÷") : "@@ARITHMETIC_DIVISION@@"; + +times = ("x" | "*") : "@@ARITHMETIC_TIMES@@"; + +power = "^" : "@@DECIMAL_EXPONENT@@"; + +square_root = "√" : "@@SQUARE_ROOT@@"; + +percent = "%" : "@@PERCENT@@"; + +# Safe roman numbers. + +# NB: Do not change the formatting here. NO_EDIT must be on the same +# line as the path. +rfile = + 'universal/roman_numerals.tsv' # NO_EDIT +; + +roman = StringFile[rfile]; + +## Main categories. + +cat_dot_number = + num + n.I[" "] dot n.I[" "] num + (n.I[" "] dot n.I[" "] num)+ +; + +cat_slash_number = + num + n.I[" "] slash n.I[" "] num + (n.I[" "] slash n.I[" "] num)* +; + +cat_dash_number = + num + n.I[" "] dash n.I[" "] num + (n.I[" "] dash n.I[" "] num)* +; + +cat_signed_number = ((plus | minus) n.I[" "])? num; + +cat_degree = cat_signed_number n.I[" "] degree; + +cat_country_code = plus n.I[" "] (num | digits); + +cat_math_operations = + plus + | minus + | division + | times + | equals + | percent + | power + | square_root +; + +# Roman numbers are often either cardinals or ordinals in various languages. +cat_roman = roman @ (num | ord); + +# Allow +# +# number:number +# number-number +# +# to just be +# +# number number. + +cat_number_number = + num ((":" | "-") : " ") num +; + +# Some additional readings for these symbols. + +cat_additional_readings = + ("/" : "@@PER@@") | + ("+" : "@@AND@@") | + ("-" : ("@@HYPHEN@@" | "@@CONNECTOR_TO@@")) | + ("*" : "@@STAR@@") | + ("x" : ("x" | "@@CONNECTOR_BY@@")) | + ("@" : "@@AT@@") +; + +numbers_plus = Optimize[ + cat_dot_number + | cat_slash_number + | cat_dash_number + | cat_signed_number + | cat_degree + | cat_country_code + | cat_math_operations + | cat_roman + | cat_number_number + | cat_additional_readings +]; + +export NUMBERS_PLUS = Optimize[numbers_plus @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/ordinals.tsv b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/ordinals.tsv new file mode 100644 index 000000000..f4d3d37e0 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/ordinals.tsv @@ -0,0 +1,32 @@ +0 zeroth +1 first +2 second +3 third +4 fourth +5 fifth +6 sixth +7 seventh +8 eighth +9 ninth +10 tenth +11 eleventh +12 twelfth +13 thirteenth +14 fourteenth +15 fifteenth +16 sixteenth +17 seventeenth +18 eighteenth +19 nineteenth +20 twentieth +30 thirtieth +40 fortieth +50 fiftieth +60 sixtieth +70 seventieth +80 eightieth +90 ninetieth +100 hundredth +1000 thousandth +1000000 millionth +1000000000 billionth diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/params.tsv b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/params.tsv new file mode 100644 index 000000000..d31a8a4ae --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/params.tsv @@ -0,0 +1,7 @@ +float.grm __fractional_part__ = fractional_part_ungrouped | fractional_part_unparsed; +telephone.grm __grouping__ = f.UNGROUPED; +measure.grm __measure__ = StringFile['en/verbalizer/measures.tsv']; +money.grm __currency__ = StringFile['en/verbalizer/money.tsv']; +time.grm __sep__ = ":"; +time.grm __am__ = "a.m." | "am" | "AM"; +time.grm __pm__ = "p.m." | "pm" | "PM"; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/podspeech.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/podspeech.grm new file mode 100644 index 000000000..1c67c2e3f --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/podspeech.grm @@ -0,0 +1,46 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/util.grm' as util; +import 'util/case.grm' as case; +import 'en/verbalizer/extra_numbers.grm' as e; +import 'en/verbalizer/float.grm' as f; +import 'en/verbalizer/math.grm' as ma; +import 'en/verbalizer/miscellaneous.grm' as mi; +import 'en/verbalizer/money.grm' as mo; +import 'en/verbalizer/numbers.grm' as n; +import 'en/verbalizer/numbers_plus.grm' as np; +import 'en/verbalizer/spelled.grm' as s; +import 'en/verbalizer/spoken_punct.grm' as sp; +import 'en/verbalizer/time.grm' as t; +import 'en/verbalizer/urls.grm' as u; + +export POD_SPEECH_TN = Optimize[RmWeight[ + (u.URL + | e.MIXED_NUMBERS + | e.DIGITS + | f.FLOAT + | ma.ARITHMETIC + | mo.MONEY + | n.CARDINAL_NUMBERS + | n.ORDINAL_NUMBERS + | np.NUMBERS_PLUS + | s.SPELLED + | sp.SPOKEN_PUNCT + | t.TIME + | u.URL + | u.EMAILS) @ util.CLEAN_SPACES @ case.TOUPPER +]]; + +#export POD_SPEECH_TN = Optimize[RmWeight[(mi.MISCELLANEOUS) @ util.CLEAN_SPACES @ case.TOUPPER]]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spelled.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spelled.grm new file mode 100644 index 000000000..b04974d2a --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spelled.grm @@ -0,0 +1,77 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This verbalizer is used whenever there is an LM symbol that consists of +# letters immediately followed by "{spelled}".l This strips the "{spelled}" +# suffix. + +import 'util/byte.grm' as b; +import 'ru/classifier/cyrillic.grm' as c; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +digit = b.kDigit @ n.CARDINAL_NUMBERS; + +char_set = (("a" | "A") : "letter-a") + | (("b" | "B") : "letter-b") + | (("c" | "C") : "letter-c") + | (("d" | "D") : "letter-d") + | (("e" | "E") : "letter-e") + | (("f" | "F") : "letter-f") + | (("g" | "G") : "letter-g") + | (("h" | "H") : "letter-h") + | (("i" | "I") : "letter-i") + | (("j" | "J") : "letter-j") + | (("k" | "K") : "letter-k") + | (("l" | "L") : "letter-l") + | (("m" | "M") : "letter-m") + | (("n" | "N") : "letter-n") + | (("o" | "O") : "letter-o") + | (("p" | "P") : "letter-p") + | (("q" | "Q") : "letter-q") + | (("r" | "R") : "letter-r") + | (("s" | "S") : "letter-s") + | (("t" | "T") : "letter-t") + | (("u" | "U") : "letter-u") + | (("v" | "V") : "letter-v") + | (("w" | "W") : "letter-w") + | (("x" | "X") : "letter-x") + | (("y" | "Y") : "letter-y") + | (("z" | "Z") : "letter-z") + | (digit) + | ("&" : "@@AND@@") + | ("." : "") + | ("-" : "") + | ("_" : "") + | ("/" : "") + | (n.I["letter-"] c.kCyrillicAlpha) + ; + +ins_space = "" : " "; + +suffix = "{spelled}" : ""; + +spelled = Optimize[char_set (ins_space char_set)* suffix]; + +export SPELLED = Optimize[spelled @ l.LEXICAL_MAP]; + +sigma_star = b.kBytes*; + +# Gets rid of the letter- prefix since in some cases we don't want it. + +del_letter = CDRewrite[n.D["letter-"], "", "", sigma_star]; + +spelled_no_tag = Optimize[char_set (ins_space char_set)*]; + +export SPELLED_NO_LETTER = Optimize[spelled_no_tag @ del_letter]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spoken_punct.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spoken_punct.grm new file mode 100644 index 000000000..b0db6535b --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/spoken_punct.grm @@ -0,0 +1,24 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'en/verbalizer/lexical_map.grm' as l; + +punct = + ("." : "@@PERIOD@@") + | ("," : "@@COMMA@@") + | ("!" : "@@EXCLAMATION_MARK@@") + | ("?" : "@@QUESTION_MARK@@") +; + +export SPOKEN_PUNCT = Optimize[punct @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/time.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/time.grm new file mode 100644 index 000000000..0bf92d0ab --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/time.grm @@ -0,0 +1,108 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'en/verbalizer/lexical_map.grm' as l; +import 'en/verbalizer/numbers.grm' as n; + +# Only handles 24-hour time with quarter-to, half-past and quarter-past. + +increment_hour = + ("0" : "1") + | ("1" : "2") + | ("2" : "3") + | ("3" : "4") + | ("4" : "5") + | ("5" : "6") + | ("6" : "7") + | ("7" : "8") + | ("8" : "9") + | ("9" : "10") + | ("10" : "11") + | ("11" : "12") + | ("12" : "1") # If someone uses 12, we assume 12-hour by default. + | ("13" : "14") + | ("14" : "15") + | ("15" : "16") + | ("16" : "17") + | ("17" : "18") + | ("18" : "19") + | ("19" : "20") + | ("20" : "21") + | ("21" : "22") + | ("22" : "23") + | ("23" : "12") +; + +hours = Project[increment_hour, 'input']; + +d = b.kDigit; +D = d - "0"; + +minutes09 = "0" D; + +minutes = ("1" | "2" | "3" | "4" | "5") d; + +__sep__ = ":"; +sep_space = __sep__ : " "; + +verbalize_hours = hours @ n.CARDINAL_NUMBERS; + +verbalize_minutes = + ("00" : "@@HOUR@@") + | (minutes09 @ (("0" : "@@TIME_ZERO@@") n.I[" "] n.CARDINAL_NUMBERS)) + | (minutes @ n.CARDINAL_NUMBERS) +; + +time_basic = Optimize[verbalize_hours sep_space verbalize_minutes]; + +# Special cases we handle right now. +# TODO: Need to allow for cases like +# +# half twelve (in the UK English sense) +# half twaalf (in the Dutch sense) + +time_quarter_past = + n.I["@@TIME_QUARTER@@ @@TIME_AFTER@@ "] + verbalize_hours + n.D[__sep__ "15"]; + +time_half_past = + n.I["@@TIME_HALF@@ @@TIME_AFTER@@ "] + verbalize_hours + n.D[__sep__ "30"]; + +time_quarter_to = + n.I["@@TIME_QUARTER@@ @@TIME_BEFORE@@ "] + (increment_hour @ verbalize_hours) + n.D[__sep__ "45"]; + +time_extra = Optimize[ + time_quarter_past | time_half_past | time_quarter_to] +; + +# Basic time periods which most languages can be expected to have. +__am__ = "a.m." | "am" | "AM"; +__pm__ = "p.m." | "pm" | "PM"; + +period = (__am__ : "@@TIME_AM@@") | (__pm__ : "@@TIME_PM@@"); + +time_variants = time_basic | time_extra; + +time = Optimize[ + (period (" " | n.I[" "]))? time_variants + | time_variants ((" " | n.I[" "]) period)?] +; + +export TIME = Optimize[time @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/urls.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/urls.grm new file mode 100644 index 000000000..a2232f9bc --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/urls.grm @@ -0,0 +1,68 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Rules for URLs and email addresses. + +import 'util/byte.grm' as bytelib; +import 'en/verbalizer/lexical_map.grm' as l; + +ins_space = "" : " "; +dot = "." : "@@URL_DOT_EXPRESSION@@"; +at = "@" : "@@AT@@"; + +url_suffix = + (".com" : dot ins_space "com") | + (".gov" : dot ins_space "gov") | + (".edu" : dot ins_space "e d u") | + (".org" : dot ins_space "org") | + (".net" : dot ins_space "net") +; + +letter_string = (bytelib.kAlnum)* bytelib.kAlnum; + +letter_string_dot = + ((letter_string ins_space dot ins_space)* letter_string) +; + +# Rules for URLs. +export URL = Optimize[ + ((letter_string_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +# Rules for email addresses. +letter_by_letter = ((bytelib.kAlnum ins_space)* bytelib.kAlnum); + +letter_by_letter_dot = + ((letter_by_letter ins_space dot ins_space)* + letter_by_letter) +; + +export EMAIL1 = Optimize[ + ((letter_by_letter) (ins_space) + (at) (ins_space) + (letter_by_letter_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +export EMAIL2 = Optimize[ + ((letter_by_letter) (ins_space) + (at) (ins_space) + (letter_string_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +export EMAILS = Optimize[ + EMAIL1 | EMAIL2 +]; diff --git a/third_party/chinese_text_normalization/thrax/src/en/verbalizer/verbalizer.grm b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/verbalizer.grm new file mode 100644 index 000000000..fe6f4e42c --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/en/verbalizer/verbalizer.grm @@ -0,0 +1,42 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/util.grm' as util; +import 'en/verbalizer/extra_numbers.grm' as e; +import 'en/verbalizer/float.grm' as f; +import 'en/verbalizer/math.grm' as ma; +import 'en/verbalizer/miscellaneous.grm' as mi; +import 'en/verbalizer/money.grm' as mo; +import 'en/verbalizer/numbers.grm' as n; +import 'en/verbalizer/numbers_plus.grm' as np; +import 'en/verbalizer/spelled.grm' as s; +import 'en/verbalizer/spoken_punct.grm' as sp; +import 'en/verbalizer/time.grm' as t; +import 'en/verbalizer/urls.grm' as u; + +export VERBALIZER = Optimize[RmWeight[ + ( e.MIXED_NUMBERS + | e.DIGITS + | f.FLOAT + | ma.ARITHMETIC + | mi.MISCELLANEOUS + | mo.MONEY + | n.CARDINAL_NUMBERS + | n.ORDINAL_NUMBERS + | np.NUMBERS_PLUS + | s.SPELLED + | sp.SPOKEN_PUNCT + | t.TIME + | u.URL) @ util.CLEAN_SPACES +]]; diff --git a/third_party/chinese_text_normalization/thrax/src/number_data/README.md b/third_party/chinese_text_normalization/thrax/src/number_data/README.md new file mode 100644 index 000000000..dd76ad16c --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/number_data/README.md @@ -0,0 +1,17 @@ +This directory contains data used in: + + Gorman, K., and Sproat, R. 2016. Minimally supervised number normalization. + Transactions of the Association for Computational Linguistics 4: 507-519. + +* `minimal.txt`: A list of 30 curated numbers used as the "minimal" training + set. +* `random-trn.txt`: A list of 9000 randomly-generated numbers used as the + "medium" training set. +* `random-tst.txt`: A list of 1000 randomly-generated numbers used as the test + set. + +Note that `random-trn.txt` and `random-tst.txt` are totally disjoint, but that +a small number of examples occur both in `minimal.txt` and `random-tst.txt`. + +For information about the sampling procedure used to generate the random data +sets, see appendix A of the aforementioned paper. diff --git a/third_party/chinese_text_normalization/thrax/src/number_data/minimal.txt b/third_party/chinese_text_normalization/thrax/src/number_data/minimal.txt new file mode 100644 index 000000000..dd0704fd9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/number_data/minimal.txt @@ -0,0 +1,300 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +220 +221 +230 +300 +400 +500 +600 +700 +800 +900 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1020 +1021 +1030 +1200 +2000 +2001 +2002 +2003 +2004 +2005 +2006 +2007 +2008 +2009 +2010 +2011 +2012 +2020 +2021 +2030 +2100 +2200 +5001 +10000 +12000 +20000 +21000 +50001 +100000 +120000 +200000 +210000 +500001 +1000000 +1001000 +1200000 +2000000 +2100000 +5000001 +10000000 +10001000 +12000000 +20000000 +50000001 +100000000 +100001000 +120000000 +200000000 +500000001 +1000000000 +1000001000 +1200000000 +2000000000 +5000000001 +10000000000 +10000001000 +12000000000 +20000000000 +50000000001 +100000000000 +100000001000 +120000000000 +200000000000 +500000000001 diff --git a/third_party/chinese_text_normalization/thrax/src/number_data/random-trn.txt b/third_party/chinese_text_normalization/thrax/src/number_data/random-trn.txt new file mode 100644 index 000000000..103a7063d --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/number_data/random-trn.txt @@ -0,0 +1,9000 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +206 +208 +210 +212 +213 +214 +215 +217 +218 +219 +221 +223 +224 +226 +228 +229 +231 +232 +234 +235 +238 +240 +242 +247 +249 +251 +253 +256 +259 +260 +261 +267 +268 +272 +278 +279 +280 +283 +284 +286 +287 +288 +289 +292 +296 +297 +299 +300 +305 +306 +307 +309 +311 +312 +314 +315 +316 +318 +319 +320 +321 +325 +326 +327 +328 +329 +330 +331 +333 +334 +335 +336 +339 +340 +341 +343 +345 +350 +351 +352 +353 +354 +355 +356 +360 +361 +362 +369 +372 +373 +374 +375 +378 +380 +382 +383 +384 +385 +387 +388 +389 +391 +393 +394 +400 +403 +404 +406 +407 +409 +411 +412 +413 +415 +416 +419 +420 +421 +423 +426 +427 +430 +432 +433 +435 +437 +438 +439 +440 +441 +442 +444 +445 +447 +448 +449 +453 +454 +456 +457 +460 +461 +463 +464 +465 +467 +468 +470 +474 +475 +476 +477 +478 +479 +480 +481 +483 +485 +486 +487 +488 +490 +491 +492 +493 +496 +497 +498 +499 +500 +501 +502 +504 +506 +508 +509 +511 +512 +514 +515 +517 +518 +521 +522 +529 +532 +533 +534 +536 +539 +542 +543 +544 +545 +546 +549 +550 +551 +552 +553 +557 +559 +560 +561 +562 +564 +565 +567 +568 +570 +571 +572 +575 +576 +577 +579 +581 +582 +583 +584 +586 +588 +590 +591 +592 +597 +598 +600 +602 +603 +606 +608 +609 +610 +611 +613 +616 +617 +618 +623 +626 +628 +630 +631 +632 +634 +635 +637 +638 +639 +641 +643 +644 +645 +647 +649 +651 +659 +660 +661 +663 +669 +670 +672 +673 +674 +676 +683 +684 +686 +687 +690 +691 +695 +696 +697 +698 +699 +700 +702 +703 +705 +706 +707 +709 +712 +714 +717 +718 +719 +720 +721 +722 +724 +727 +728 +731 +733 +734 +735 +736 +739 +743 +744 +745 +746 +748 +749 +752 +753 +754 +755 +756 +758 +759 +762 +764 +765 +767 +769 +771 +772 +773 +774 +777 +778 +779 +780 +782 +783 +784 +785 +786 +787 +789 +791 +794 +795 +796 +798 +799 +800 +801 +802 +805 +806 +807 +808 +809 +811 +812 +813 +816 +817 +819 +820 +822 +823 +824 +825 +826 +827 +828 +830 +832 +833 +834 +835 +841 +842 +844 +846 +848 +850 +852 +853 +855 +856 +857 +858 +859 +861 +862 +863 +864 +866 +867 +869 +870 +871 +874 +876 +877 +880 +882 +885 +886 +887 +888 +891 +894 +895 +896 +897 +901 +905 +906 +907 +908 +913 +914 +915 +916 +919 +920 +923 +925 +926 +929 +931 +933 +935 +936 +937 +938 +939 +941 +942 +946 +951 +952 +953 +954 +955 +957 +958 +961 +962 +967 +971 +976 +977 +978 +979 +980 +981 +982 +983 +988 +990 +991 +992 +993 +996 +997 +998 +1001 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1015 +1019 +1020 +1021 +1024 +1026 +1028 +1030 +1031 +1033 +1034 +1036 +1037 +1039 +1040 +1041 +1042 +1043 +1045 +1046 +1048 +1049 +1051 +1053 +1054 +1056 +1058 +1060 +1061 +1064 +1065 +1067 +1069 +1072 +1073 +1074 +1075 +1078 +1080 +1082 +1084 +1086 +1088 +1089 +1091 +1092 +1093 +1095 +1096 +1099 +1100 +1102 +1103 +1105 +1106 +1109 +1110 +1111 +1112 +1114 +1116 +1117 +1118 +1119 +1120 +1122 +1125 +1126 +1127 +1128 +1130 +1135 +1136 +1138 +1142 +1143 +1145 +1146 +1147 +1148 +1149 +1150 +1153 +1154 +1157 +1158 +1162 +1163 +1164 +1165 +1166 +1169 +1170 +1171 +1174 +1175 +1178 +1180 +1181 +1183 +1185 +1187 +1188 +1190 +1191 +1193 +1195 +1198 +1200 +1201 +1204 +1206 +1207 +1208 +1209 +1212 +1215 +1216 +1217 +1219 +1220 +1221 +1223 +1224 +1225 +1227 +1228 +1230 +1232 +1233 +1236 +1238 +1239 +1243 +1244 +1245 +1246 +1249 +1250 +1251 +1254 +1256 +1261 +1263 +1264 +1268 +1269 +1270 +1271 +1272 +1274 +1276 +1277 +1283 +1284 +1287 +1288 +1289 +1291 +1292 +1294 +1296 +1298 +1300 +1303 +1304 +1305 +1306 +1309 +1313 +1316 +1317 +1319 +1320 +1321 +1322 +1323 +1324 +1328 +1330 +1331 +1333 +1335 +1336 +1337 +1338 +1341 +1346 +1348 +1349 +1350 +1351 +1353 +1354 +1355 +1356 +1357 +1359 +1360 +1361 +1362 +1363 +1365 +1366 +1367 +1370 +1371 +1373 +1374 +1376 +1377 +1380 +1381 +1382 +1384 +1386 +1387 +1388 +1390 +1392 +1394 +1395 +1396 +1400 +1403 +1405 +1406 +1407 +1408 +1409 +1410 +1412 +1413 +1414 +1415 +1416 +1419 +1421 +1422 +1423 +1424 +1425 +1427 +1429 +1433 +1434 +1435 +1436 +1437 +1438 +1440 +1443 +1445 +1446 +1448 +1454 +1457 +1460 +1461 +1465 +1468 +1469 +1470 +1474 +1475 +1477 +1483 +1485 +1487 +1488 +1489 +1490 +1491 +1493 +1494 +1496 +1497 +1498 +1501 +1502 +1503 +1505 +1506 +1507 +1508 +1510 +1511 +1512 +1513 +1514 +1515 +1518 +1519 +1520 +1522 +1523 +1525 +1526 +1529 +1530 +1531 +1532 +1534 +1536 +1537 +1539 +1540 +1541 +1542 +1543 +1544 +1545 +1546 +1554 +1555 +1556 +1560 +1561 +1562 +1563 +1564 +1565 +1567 +1568 +1569 +1570 +1572 +1573 +1575 +1576 +1577 +1578 +1579 +1580 +1584 +1586 +1588 +1590 +1591 +1595 +1596 +1598 +1600 +1601 +1602 +1603 +1609 +1610 +1611 +1614 +1616 +1617 +1620 +1621 +1622 +1625 +1627 +1631 +1632 +1633 +1636 +1637 +1641 +1644 +1645 +1650 +1652 +1658 +1659 +1663 +1664 +1665 +1666 +1667 +1669 +1670 +1671 +1673 +1677 +1678 +1679 +1680 +1681 +1682 +1683 +1691 +1694 +1697 +1699 +1700 +1701 +1702 +1703 +1704 +1706 +1708 +1712 +1713 +1715 +1718 +1721 +1723 +1724 +1725 +1726 +1727 +1728 +1730 +1731 +1736 +1740 +1741 +1742 +1744 +1746 +1749 +1750 +1751 +1752 +1753 +1754 +1755 +1756 +1763 +1766 +1767 +1768 +1769 +1772 +1775 +1777 +1778 +1780 +1783 +1784 +1785 +1791 +1793 +1795 +1796 +1798 +1800 +1801 +1803 +1804 +1805 +1810 +1812 +1814 +1816 +1818 +1820 +1822 +1823 +1825 +1826 +1828 +1829 +1830 +1833 +1836 +1837 +1839 +1842 +1844 +1845 +1846 +1848 +1852 +1853 +1854 +1855 +1857 +1858 +1859 +1860 +1861 +1862 +1863 +1864 +1865 +1866 +1868 +1869 +1874 +1876 +1879 +1882 +1884 +1885 +1886 +1887 +1888 +1890 +1892 +1893 +1894 +1895 +1896 +1898 +1899 +1900 +1901 +1902 +1903 +1906 +1907 +1908 +1909 +1910 +1911 +1912 +1913 +1914 +1916 +1917 +1918 +1919 +1920 +1921 +1925 +1927 +1929 +1935 +1936 +1938 +1939 +1940 +1941 +1943 +1946 +1947 +1948 +1953 +1954 +1956 +1957 +1958 +1959 +1960 +1961 +1962 +1963 +1968 +1971 +1973 +1978 +1979 +1980 +1981 +1985 +1988 +1989 +1991 +1993 +1994 +1997 +1998 +1999 +2000 +2003 +2004 +2005 +2007 +2008 +2009 +2011 +2014 +2015 +2016 +2017 +2021 +2022 +2023 +2027 +2028 +2030 +2031 +2032 +2033 +2034 +2036 +2037 +2039 +2042 +2043 +2044 +2045 +2046 +2050 +2051 +2053 +2054 +2057 +2060 +2061 +2063 +2065 +2066 +2068 +2069 +2071 +2074 +2076 +2077 +2078 +2079 +2080 +2081 +2084 +2085 +2086 +2088 +2089 +2090 +2091 +2092 +2093 +2094 +2095 +2096 +2097 +2098 +2100 +2101 +2102 +2105 +2106 +2109 +2111 +2112 +2113 +2114 +2115 +2117 +2118 +2121 +2122 +2125 +2127 +2128 +2131 +2134 +2136 +2137 +2138 +2141 +2144 +2145 +2147 +2148 +2149 +2150 +2153 +2154 +2156 +2157 +2158 +2159 +2160 +2161 +2162 +2163 +2164 +2165 +2169 +2170 +2172 +2173 +2175 +2177 +2178 +2183 +2185 +2189 +2190 +2192 +2195 +2196 +2198 +2199 +2202 +2204 +2207 +2208 +2210 +2211 +2212 +2213 +2214 +2216 +2217 +2218 +2219 +2221 +2222 +2224 +2225 +2227 +2229 +2230 +2231 +2232 +2233 +2235 +2236 +2239 +2240 +2241 +2242 +2243 +2244 +2245 +2247 +2249 +2252 +2253 +2254 +2255 +2257 +2260 +2261 +2263 +2264 +2266 +2267 +2269 +2271 +2272 +2273 +2274 +2278 +2281 +2282 +2284 +2288 +2289 +2291 +2293 +2296 +2297 +2298 +2299 +2301 +2302 +2304 +2305 +2308 +2310 +2312 +2314 +2316 +2317 +2319 +2320 +2322 +2324 +2325 +2328 +2330 +2331 +2332 +2333 +2335 +2336 +2337 +2338 +2339 +2340 +2343 +2344 +2345 +2346 +2348 +2350 +2351 +2352 +2353 +2354 +2356 +2358 +2359 +2360 +2365 +2366 +2368 +2369 +2370 +2371 +2373 +2374 +2375 +2376 +2377 +2381 +2382 +2383 +2385 +2386 +2387 +2388 +2393 +2394 +2395 +2397 +2398 +2401 +2403 +2404 +2406 +2407 +2408 +2409 +2411 +2412 +2415 +2421 +2422 +2423 +2424 +2425 +2431 +2432 +2434 +2440 +2442 +2443 +2446 +2447 +2453 +2454 +2455 +2457 +2458 +2459 +2460 +2461 +2462 +2465 +2469 +2470 +2471 +2473 +2477 +2478 +2479 +2480 +2481 +2485 +2486 +2487 +2489 +2495 +2501 +2503 +2504 +2506 +2509 +2510 +2512 +2515 +2516 +2517 +2518 +2522 +2525 +2526 +2527 +2528 +2529 +2530 +2533 +2534 +2536 +2538 +2539 +2540 +2543 +2546 +2548 +2551 +2552 +2553 +2555 +2556 +2559 +2561 +2564 +2565 +2566 +2567 +2570 +2572 +2573 +2574 +2575 +2577 +2580 +2581 +2583 +2584 +2585 +2589 +2591 +2592 +2594 +2595 +2596 +2597 +2600 +2603 +2604 +2607 +2608 +2610 +2613 +2614 +2615 +2618 +2621 +2622 +2624 +2625 +2626 +2627 +2630 +2631 +2632 +2634 +2638 +2640 +2641 +2642 +2643 +2644 +2645 +2646 +2648 +2649 +2650 +2653 +2655 +2656 +2657 +2658 +2661 +2662 +2665 +2666 +2667 +2668 +2671 +2672 +2674 +2675 +2676 +2677 +2679 +2681 +2683 +2684 +2686 +2688 +2691 +2694 +2695 +2696 +2701 +2703 +2704 +2705 +2706 +2707 +2708 +2709 +2710 +2711 +2712 +2713 +2714 +2719 +2720 +2721 +2725 +2726 +2728 +2731 +2732 +2735 +2736 +2737 +2738 +2740 +2741 +2743 +2744 +2745 +2748 +2749 +2750 +2751 +2754 +2756 +2758 +2759 +2764 +2767 +2769 +2770 +2771 +2772 +2773 +2775 +2776 +2780 +2781 +2783 +2784 +2786 +2787 +2788 +2789 +2790 +2794 +2798 +2799 +2800 +2802 +2803 +2804 +2806 +2808 +2810 +2811 +2813 +2814 +2815 +2820 +2822 +2824 +2826 +2827 +2829 +2830 +2831 +2832 +2833 +2834 +2835 +2837 +2840 +2841 +2845 +2846 +2847 +2848 +2851 +2852 +2854 +2855 +2856 +2858 +2860 +2861 +2862 +2863 +2867 +2868 +2869 +2870 +2871 +2872 +2874 +2876 +2877 +2878 +2881 +2882 +2883 +2884 +2886 +2887 +2889 +2890 +2891 +2892 +2893 +2894 +2895 +2897 +2898 +2900 +2903 +2906 +2907 +2911 +2912 +2914 +2915 +2917 +2920 +2924 +2925 +2930 +2931 +2932 +2933 +2934 +2936 +2938 +2939 +2940 +2941 +2942 +2943 +2944 +2945 +2947 +2948 +2949 +2951 +2952 +2953 +2955 +2956 +2957 +2958 +2959 +2962 +2964 +2965 +2966 +2967 +2968 +2972 +2973 +2979 +2981 +2982 +2983 +2985 +2986 +2988 +2990 +2992 +2993 +2996 +2999 +3000 +3001 +3002 +3005 +3006 +3007 +3009 +3012 +3013 +3015 +3016 +3017 +3018 +3019 +3020 +3022 +3023 +3024 +3027 +3028 +3029 +3031 +3033 +3035 +3036 +3037 +3038 +3041 +3044 +3045 +3046 +3048 +3050 +3051 +3052 +3053 +3055 +3056 +3058 +3059 +3062 +3064 +3065 +3067 +3068 +3069 +3071 +3072 +3073 +3074 +3075 +3079 +3083 +3085 +3087 +3088 +3089 +3090 +3092 +3094 +3099 +3100 +3101 +3102 +3105 +3106 +3107 +3109 +3110 +3116 +3117 +3122 +3124 +3125 +3126 +3127 +3129 +3131 +3132 +3133 +3134 +3135 +3138 +3139 +3140 +3143 +3144 +3146 +3148 +3151 +3153 +3154 +3158 +3159 +3160 +3161 +3162 +3163 +3165 +3166 +3167 +3168 +3169 +3170 +3172 +3181 +3184 +3186 +3187 +3188 +3189 +3191 +3192 +3193 +3194 +3195 +3198 +3199 +3201 +3202 +3203 +3204 +3206 +3209 +3211 +3216 +3221 +3224 +3225 +3226 +3228 +3229 +3231 +3232 +3236 +3238 +3239 +3241 +3242 +3246 +3249 +3251 +3252 +3253 +3254 +3256 +3261 +3263 +3264 +3266 +3268 +3269 +3272 +3274 +3275 +3277 +3278 +3281 +3282 +3284 +3285 +3287 +3288 +3289 +3290 +3291 +3292 +3293 +3294 +3295 +3297 +3299 +3300 +3301 +3302 +3306 +3307 +3308 +3309 +3310 +3311 +3313 +3319 +3320 +3321 +3322 +3323 +3325 +3326 +3327 +3328 +3329 +3331 +3332 +3334 +3335 +3336 +3337 +3338 +3340 +3342 +3343 +3345 +3346 +3348 +3351 +3352 +3354 +3358 +3359 +3360 +3362 +3363 +3366 +3369 +3371 +3374 +3375 +3376 +3380 +3381 +3382 +3386 +3389 +3390 +3391 +3395 +3397 +3399 +3402 +3404 +3406 +3407 +3411 +3413 +3414 +3415 +3417 +3418 +3419 +3420 +3421 +3422 +3426 +3428 +3429 +3430 +3431 +3434 +3443 +3444 +3445 +3446 +3447 +3448 +3450 +3451 +3452 +3455 +3456 +3457 +3458 +3460 +3461 +3462 +3464 +3465 +3466 +3467 +3468 +3469 +3470 +3471 +3472 +3473 +3476 +3478 +3480 +3481 +3483 +3484 +3485 +3487 +3488 +3489 +3491 +3492 +3494 +3496 +3498 +3499 +3503 +3504 +3506 +3507 +3509 +3511 +3512 +3515 +3520 +3521 +3523 +3524 +3527 +3529 +3530 +3532 +3533 +3534 +3536 +3538 +3539 +3540 +3541 +3542 +3544 +3546 +3547 +3554 +3555 +3556 +3560 +3561 +3562 +3563 +3565 +3566 +3567 +3571 +3574 +3575 +3578 +3579 +3580 +3581 +3582 +3583 +3584 +3585 +3587 +3589 +3590 +3591 +3592 +3593 +3594 +3595 +3596 +3599 +3600 +3601 +3604 +3605 +3609 +3610 +3611 +3613 +3614 +3615 +3616 +3619 +3621 +3622 +3623 +3624 +3627 +3628 +3631 +3632 +3633 +3635 +3637 +3640 +3641 +3643 +3644 +3646 +3648 +3650 +3654 +3655 +3656 +3657 +3658 +3660 +3661 +3662 +3663 +3669 +3670 +3671 +3672 +3673 +3677 +3678 +3679 +3682 +3686 +3687 +3688 +3689 +3690 +3693 +3694 +3698 +3699 +3700 +3703 +3704 +3705 +3707 +3709 +3710 +3711 +3714 +3715 +3718 +3723 +3724 +3725 +3726 +3727 +3729 +3730 +3731 +3733 +3734 +3735 +3736 +3737 +3738 +3743 +3744 +3745 +3748 +3749 +3751 +3752 +3753 +3757 +3760 +3762 +3764 +3766 +3767 +3768 +3769 +3770 +3772 +3774 +3775 +3778 +3779 +3780 +3782 +3784 +3786 +3789 +3791 +3792 +3793 +3794 +3795 +3796 +3799 +3800 +3801 +3802 +3805 +3806 +3810 +3812 +3814 +3815 +3817 +3818 +3819 +3820 +3823 +3824 +3830 +3833 +3835 +3837 +3838 +3839 +3842 +3843 +3849 +3851 +3853 +3855 +3856 +3857 +3858 +3859 +3861 +3862 +3863 +3865 +3866 +3867 +3868 +3869 +3872 +3874 +3876 +3877 +3878 +3880 +3884 +3886 +3888 +3891 +3892 +3895 +3898 +3903 +3904 +3905 +3906 +3908 +3909 +3914 +3915 +3916 +3917 +3918 +3919 +3920 +3922 +3923 +3924 +3925 +3930 +3932 +3934 +3936 +3938 +3939 +3940 +3946 +3947 +3948 +3949 +3952 +3954 +3955 +3958 +3959 +3960 +3962 +3965 +3967 +3970 +3974 +3975 +3976 +3977 +3978 +3980 +3981 +3985 +3987 +3988 +3991 +3997 +3998 +3999 +4001 +4002 +4003 +4004 +4005 +4006 +4008 +4009 +4015 +4017 +4021 +4022 +4023 +4026 +4027 +4028 +4029 +4030 +4033 +4035 +4036 +4037 +4039 +4041 +4044 +4050 +4051 +4053 +4056 +4057 +4060 +4067 +4068 +4073 +4075 +4076 +4077 +4078 +4080 +4081 +4082 +4085 +4090 +4091 +4092 +4094 +4096 +4098 +4101 +4102 +4104 +4107 +4111 +4112 +4113 +4115 +4117 +4118 +4120 +4122 +4124 +4130 +4134 +4136 +4137 +4141 +4142 +4144 +4147 +4150 +4152 +4153 +4154 +4157 +4158 +4159 +4161 +4163 +4164 +4165 +4168 +4169 +4170 +4171 +4174 +4175 +4176 +4181 +4182 +4184 +4188 +4189 +4190 +4191 +4193 +4194 +4195 +4196 +4197 +4198 +4200 +4203 +4204 +4207 +4208 +4209 +4210 +4211 +4212 +4214 +4215 +4216 +4218 +4221 +4222 +4223 +4224 +4225 +4226 +4227 +4228 +4230 +4231 +4233 +4235 +4236 +4237 +4239 +4242 +4244 +4245 +4247 +4250 +4251 +4252 +4253 +4255 +4257 +4258 +4262 +4263 +4264 +4265 +4266 +4268 +4271 +4272 +4273 +4276 +4277 +4278 +4279 +4282 +4283 +4285 +4286 +4289 +4292 +4294 +4295 +4297 +4299 +4301 +4304 +4306 +4308 +4310 +4313 +4319 +4321 +4323 +4324 +4328 +4329 +4330 +4332 +4335 +4336 +4340 +4342 +4355 +4356 +4357 +4360 +4363 +4364 +4365 +4366 +4368 +4370 +4371 +4372 +4373 +4374 +4376 +4377 +4378 +4379 +4380 +4382 +4383 +4384 +4385 +4387 +4390 +4392 +4393 +4395 +4396 +4398 +4399 +4400 +4401 +4402 +4403 +4405 +4406 +4407 +4408 +4411 +4412 +4414 +4415 +4420 +4422 +4426 +4429 +4430 +4431 +4436 +4439 +4440 +4441 +4442 +4443 +4444 +4448 +4449 +4452 +4453 +4455 +4456 +4457 +4458 +4462 +4463 +4465 +4466 +4467 +4468 +4473 +4475 +4476 +4477 +4479 +4480 +4481 +4482 +4483 +4484 +4488 +4491 +4492 +4493 +4495 +4496 +4499 +4500 +4501 +4504 +4505 +4509 +4510 +4512 +4513 +4514 +4516 +4517 +4518 +4519 +4528 +4529 +4530 +4532 +4533 +4534 +4535 +4537 +4541 +4542 +4547 +4549 +4550 +4552 +4555 +4556 +4559 +4561 +4562 +4563 +4564 +4565 +4566 +4568 +4571 +4573 +4574 +4575 +4576 +4578 +4579 +4581 +4582 +4584 +4587 +4589 +4592 +4593 +4594 +4595 +4596 +4597 +4599 +4600 +4604 +4606 +4610 +4612 +4615 +4617 +4618 +4620 +4622 +4623 +4625 +4626 +4627 +4628 +4631 +4635 +4637 +4640 +4641 +4643 +4644 +4646 +4649 +4651 +4653 +4657 +4659 +4660 +4661 +4662 +4663 +4664 +4667 +4670 +4675 +4678 +4681 +4684 +4688 +4691 +4692 +4696 +4697 +4698 +4700 +4703 +4704 +4705 +4707 +4709 +4710 +4711 +4715 +4719 +4720 +4722 +4725 +4728 +4729 +4732 +4733 +4735 +4739 +4742 +4746 +4749 +4750 +4751 +4752 +4753 +4754 +4755 +4756 +4758 +4760 +4761 +4762 +4763 +4765 +4766 +4767 +4768 +4769 +4770 +4775 +4776 +4777 +4778 +4779 +4780 +4781 +4782 +4784 +4787 +4788 +4789 +4790 +4794 +4799 +4800 +4801 +4804 +4805 +4806 +4808 +4810 +4811 +4812 +4813 +4815 +4816 +4817 +4818 +4819 +4822 +4823 +4825 +4827 +4829 +4831 +4833 +4834 +4837 +4838 +4839 +4840 +4844 +4847 +4848 +4851 +4853 +4855 +4856 +4859 +4860 +4861 +4866 +4867 +4868 +4869 +4871 +4872 +4873 +4875 +4876 +4877 +4880 +4881 +4883 +4885 +4886 +4887 +4888 +4889 +4890 +4891 +4893 +4898 +4904 +4905 +4909 +4910 +4913 +4914 +4915 +4916 +4917 +4920 +4922 +4923 +4924 +4925 +4930 +4931 +4932 +4933 +4935 +4936 +4937 +4938 +4939 +4942 +4944 +4947 +4952 +4955 +4956 +4957 +4958 +4959 +4961 +4963 +4967 +4969 +4970 +4971 +4972 +4973 +4974 +4977 +4981 +4985 +4986 +4989 +4990 +4992 +4993 +4996 +4999 +5000 +5001 +5003 +5012 +5015 +5018 +5019 +5021 +5022 +5023 +5025 +5028 +5029 +5035 +5036 +5041 +5042 +5043 +5046 +5047 +5049 +5050 +5058 +5059 +5063 +5065 +5068 +5069 +5070 +5071 +5072 +5073 +5074 +5077 +5078 +5082 +5083 +5084 +5086 +5087 +5090 +5092 +5093 +5094 +5096 +5097 +5100 +5103 +5104 +5105 +5106 +5110 +5113 +5117 +5118 +5119 +5120 +5122 +5123 +5124 +5125 +5126 +5130 +5131 +5132 +5135 +5138 +5139 +5146 +5147 +5149 +5151 +5152 +5153 +5154 +5155 +5157 +5160 +5161 +5165 +5167 +5170 +5172 +5173 +5174 +5177 +5178 +5179 +5182 +5183 +5185 +5187 +5188 +5189 +5191 +5194 +5195 +5196 +5197 +5199 +5201 +5202 +5203 +5208 +5209 +5211 +5214 +5218 +5219 +5220 +5221 +5222 +5224 +5226 +5227 +5229 +5230 +5232 +5234 +5235 +5238 +5243 +5245 +5246 +5248 +5249 +5250 +5251 +5252 +5253 +5256 +5260 +5261 +5267 +5268 +5269 +5271 +5278 +5279 +5285 +5289 +5291 +5292 +5294 +5296 +5297 +5299 +5300 +5303 +5304 +5309 +5311 +5312 +5315 +5320 +5321 +5322 +5324 +5326 +5328 +5329 +5332 +5333 +5334 +5337 +5339 +5340 +5341 +5343 +5344 +5347 +5348 +5349 +5350 +5352 +5353 +5355 +5359 +5360 +5361 +5363 +5366 +5367 +5368 +5369 +5371 +5372 +5374 +5375 +5376 +5377 +5385 +5386 +5388 +5392 +5393 +5394 +5395 +5398 +5399 +5400 +5401 +5402 +5404 +5406 +5408 +5409 +5410 +5412 +5413 +5414 +5416 +5417 +5419 +5420 +5421 +5425 +5426 +5427 +5431 +5432 +5433 +5435 +5437 +5440 +5441 +5443 +5448 +5449 +5452 +5453 +5456 +5457 +5459 +5460 +5462 +5463 +5466 +5468 +5470 +5471 +5474 +5475 +5478 +5480 +5485 +5487 +5488 +5490 +5491 +5494 +5496 +5500 +5509 +5510 +5512 +5514 +5517 +5518 +5519 +5520 +5521 +5527 +5530 +5533 +5537 +5538 +5540 +5541 +5544 +5546 +5548 +5549 +5551 +5554 +5557 +5559 +5560 +5562 +5563 +5564 +5573 +5574 +5575 +5576 +5580 +5581 +5583 +5584 +5586 +5589 +5591 +5592 +5598 +5600 +5601 +5605 +5608 +5610 +5615 +5618 +5620 +5621 +5624 +5625 +5626 +5628 +5630 +5632 +5633 +5638 +5640 +5641 +5643 +5645 +5647 +5652 +5655 +5658 +5660 +5661 +5662 +5663 +5664 +5667 +5668 +5669 +5670 +5672 +5673 +5674 +5679 +5681 +5682 +5690 +5693 +5697 +5698 +5702 +5703 +5705 +5712 +5715 +5718 +5719 +5721 +5722 +5726 +5728 +5737 +5739 +5743 +5744 +5745 +5747 +5748 +5750 +5752 +5755 +5756 +5757 +5759 +5760 +5764 +5767 +5768 +5770 +5772 +5773 +5775 +5776 +5781 +5782 +5783 +5785 +5787 +5788 +5790 +5792 +5793 +5795 +5796 +5797 +5799 +5800 +5801 +5802 +5803 +5805 +5806 +5807 +5808 +5810 +5815 +5818 +5821 +5822 +5823 +5827 +5829 +5830 +5835 +5836 +5840 +5842 +5844 +5846 +5849 +5853 +5854 +5857 +5859 +5860 +5866 +5869 +5870 +5872 +5873 +5875 +5876 +5878 +5881 +5882 +5883 +5884 +5886 +5888 +5893 +5894 +5900 +5901 +5902 +5903 +5904 +5906 +5908 +5910 +5911 +5914 +5918 +5920 +5922 +5925 +5926 +5927 +5928 +5932 +5933 +5934 +5935 +5938 +5940 +5942 +5944 +5945 +5947 +5950 +5952 +5954 +5956 +5960 +5961 +5963 +5966 +5970 +5974 +5975 +5983 +5985 +5986 +5990 +5995 +5996 +5997 +5999 +6000 +6003 +6006 +6010 +6011 +6012 +6013 +6015 +6016 +6020 +6025 +6026 +6028 +6030 +6031 +6033 +6035 +6037 +6038 +6041 +6042 +6044 +6045 +6046 +6048 +6056 +6057 +6058 +6061 +6062 +6064 +6065 +6071 +6074 +6078 +6088 +6095 +6098 +6099 +6100 +6102 +6103 +6105 +6106 +6110 +6112 +6116 +6119 +6120 +6122 +6123 +6125 +6126 +6133 +6136 +6137 +6140 +6142 +6147 +6148 +6149 +6151 +6152 +6154 +6155 +6163 +6166 +6168 +6171 +6172 +6173 +6174 +6175 +6177 +6178 +6179 +6180 +6182 +6183 +6185 +6186 +6188 +6189 +6190 +6193 +6194 +6195 +6197 +6199 +6200 +6204 +6205 +6207 +6208 +6209 +6212 +6216 +6218 +6219 +6222 +6223 +6225 +6226 +6230 +6232 +6235 +6237 +6240 +6241 +6242 +6247 +6251 +6252 +6256 +6260 +6262 +6263 +6264 +6267 +6269 +6270 +6271 +6272 +6275 +6276 +6278 +6280 +6282 +6286 +6290 +6293 +6298 +6299 +6302 +6304 +6306 +6310 +6315 +6316 +6317 +6319 +6321 +6323 +6326 +6327 +6329 +6333 +6334 +6344 +6345 +6346 +6348 +6349 +6350 +6353 +6354 +6355 +6356 +6363 +6366 +6369 +6370 +6374 +6376 +6378 +6383 +6385 +6390 +6392 +6396 +6399 +6400 +6402 +6403 +6404 +6405 +6406 +6408 +6410 +6411 +6412 +6415 +6416 +6418 +6419 +6420 +6421 +6423 +6424 +6425 +6426 +6427 +6428 +6429 +6431 +6433 +6438 +6439 +6440 +6441 +6442 +6443 +6444 +6448 +6450 +6454 +6457 +6460 +6461 +6462 +6467 +6468 +6476 +6479 +6480 +6483 +6484 +6485 +6488 +6495 +6503 +6507 +6515 +6516 +6517 +6518 +6520 +6521 +6530 +6531 +6532 +6537 +6538 +6539 +6546 +6550 +6554 +6557 +6561 +6562 +6563 +6565 +6566 +6570 +6572 +6574 +6578 +6583 +6585 +6586 +6593 +6595 +6596 +6597 +6598 +6600 +6601 +6607 +6608 +6609 +6611 +6613 +6620 +6627 +6630 +6633 +6635 +6636 +6637 +6639 +6640 +6641 +6642 +6644 +6645 +6650 +6651 +6653 +6654 +6657 +6662 +6663 +6664 +6665 +6667 +6671 +6673 +6674 +6678 +6679 +6681 +6684 +6686 +6689 +6690 +6692 +6693 +6694 +6696 +6698 +6701 +6703 +6705 +6707 +6712 +6713 +6714 +6716 +6717 +6718 +6720 +6726 +6728 +6730 +6731 +6732 +6733 +6735 +6742 +6743 +6745 +6746 +6747 +6752 +6755 +6759 +6760 +6761 +6762 +6764 +6768 +6772 +6773 +6774 +6775 +6781 +6784 +6787 +6791 +6792 +6795 +6798 +6800 +6803 +6806 +6807 +6810 +6811 +6814 +6816 +6817 +6821 +6824 +6828 +6829 +6830 +6832 +6838 +6842 +6843 +6847 +6850 +6853 +6854 +6857 +6858 +6859 +6860 +6862 +6863 +6864 +6866 +6867 +6870 +6871 +6874 +6875 +6876 +6878 +6880 +6883 +6884 +6885 +6888 +6891 +6896 +6900 +6905 +6906 +6907 +6908 +6909 +6910 +6912 +6913 +6914 +6917 +6919 +6923 +6930 +6932 +6934 +6935 +6939 +6940 +6941 +6942 +6944 +6945 +6946 +6948 +6950 +6951 +6953 +6957 +6961 +6962 +6963 +6972 +6974 +6976 +6977 +6978 +6979 +6980 +6981 +6983 +6986 +6990 +6993 +6995 +6997 +7000 +7006 +7011 +7013 +7015 +7018 +7019 +7024 +7025 +7026 +7028 +7031 +7032 +7035 +7038 +7042 +7043 +7044 +7049 +7051 +7054 +7055 +7057 +7058 +7059 +7060 +7061 +7062 +7064 +7068 +7070 +7072 +7073 +7078 +7081 +7084 +7085 +7087 +7090 +7092 +7095 +7096 +7100 +7107 +7108 +7110 +7111 +7114 +7118 +7120 +7122 +7124 +7125 +7132 +7134 +7138 +7139 +7144 +7147 +7148 +7150 +7151 +7153 +7160 +7161 +7162 +7168 +7169 +7170 +7177 +7179 +7182 +7183 +7184 +7186 +7187 +7188 +7190 +7200 +7202 +7203 +7208 +7211 +7212 +7215 +7216 +7217 +7218 +7221 +7224 +7225 +7227 +7229 +7232 +7233 +7235 +7237 +7238 +7247 +7248 +7249 +7250 +7252 +7254 +7258 +7261 +7265 +7268 +7269 +7271 +7272 +7274 +7276 +7278 +7280 +7281 +7284 +7286 +7288 +7293 +7295 +7300 +7301 +7302 +7304 +7308 +7310 +7311 +7319 +7320 +7321 +7323 +7328 +7331 +7332 +7335 +7336 +7339 +7340 +7342 +7347 +7348 +7349 +7350 +7353 +7355 +7356 +7362 +7365 +7369 +7373 +7374 +7377 +7380 +7382 +7385 +7387 +7390 +7395 +7398 +7399 +7402 +7405 +7415 +7417 +7418 +7419 +7420 +7422 +7424 +7432 +7434 +7437 +7438 +7440 +7441 +7445 +7450 +7452 +7454 +7455 +7457 +7460 +7461 +7466 +7467 +7469 +7470 +7471 +7474 +7475 +7478 +7480 +7485 +7488 +7490 +7491 +7492 +7493 +7494 +7495 +7496 +7497 +7498 +7500 +7502 +7508 +7510 +7516 +7518 +7520 +7521 +7522 +7523 +7525 +7533 +7536 +7539 +7540 +7543 +7547 +7548 +7549 +7550 +7553 +7554 +7556 +7559 +7560 +7562 +7564 +7567 +7570 +7574 +7575 +7579 +7580 +7585 +7586 +7587 +7589 +7591 +7594 +7596 +7598 +7602 +7603 +7607 +7608 +7610 +7611 +7615 +7620 +7621 +7627 +7630 +7632 +7634 +7637 +7639 +7642 +7644 +7646 +7650 +7651 +7660 +7661 +7666 +7668 +7679 +7680 +7683 +7685 +7686 +7690 +7691 +7692 +7696 +7698 +7700 +7702 +7703 +7704 +7705 +7710 +7711 +7712 +7715 +7716 +7718 +7720 +7726 +7727 +7731 +7733 +7735 +7739 +7740 +7741 +7742 +7747 +7750 +7755 +7757 +7758 +7759 +7760 +7763 +7764 +7765 +7766 +7768 +7769 +7771 +7779 +7784 +7786 +7789 +7790 +7793 +7797 +7800 +7801 +7802 +7805 +7808 +7810 +7814 +7816 +7817 +7820 +7821 +7823 +7824 +7827 +7828 +7829 +7834 +7835 +7839 +7840 +7842 +7844 +7846 +7849 +7850 +7856 +7859 +7864 +7865 +7866 +7868 +7870 +7877 +7879 +7880 +7881 +7891 +7895 +7900 +7905 +7907 +7910 +7913 +7915 +7916 +7918 +7919 +7920 +7922 +7924 +7925 +7932 +7934 +7936 +7940 +7942 +7943 +7946 +7950 +7951 +7952 +7959 +7964 +7968 +7971 +7978 +7980 +7983 +7984 +7986 +7988 +7989 +7990 +7993 +8000 +8002 +8004 +8005 +8010 +8015 +8017 +8028 +8030 +8032 +8038 +8040 +8043 +8046 +8047 +8050 +8052 +8053 +8054 +8057 +8058 +8059 +8060 +8061 +8062 +8064 +8070 +8071 +8072 +8076 +8077 +8081 +8082 +8086 +8087 +8090 +8093 +8107 +8108 +8109 +8110 +8111 +8113 +8117 +8118 +8120 +8121 +8124 +8126 +8128 +8130 +8131 +8132 +8134 +8136 +8139 +8140 +8141 +8142 +8143 +8144 +8146 +8149 +8150 +8152 +8155 +8156 +8157 +8166 +8170 +8173 +8174 +8178 +8180 +8182 +8188 +8189 +8190 +8191 +8199 +8201 +8204 +8210 +8213 +8217 +8220 +8224 +8227 +8230 +8234 +8235 +8237 +8242 +8243 +8245 +8246 +8250 +8251 +8253 +8254 +8255 +8260 +8263 +8265 +8266 +8267 +8275 +8279 +8281 +8282 +8283 +8284 +8285 +8286 +8292 +8293 +8294 +8296 +8300 +8302 +8305 +8307 +8310 +8317 +8318 +8324 +8325 +8326 +8332 +8336 +8341 +8344 +8345 +8346 +8349 +8352 +8355 +8360 +8361 +8362 +8364 +8365 +8370 +8372 +8374 +8376 +8377 +8380 +8383 +8388 +8390 +8395 +8399 +8401 +8404 +8406 +8407 +8410 +8411 +8420 +8421 +8423 +8427 +8430 +8432 +8435 +8437 +8441 +8442 +8450 +8451 +8459 +8460 +8461 +8463 +8468 +8471 +8480 +8481 +8483 +8489 +8495 +8496 +8499 +8500 +8501 +8512 +8516 +8520 +8521 +8522 +8528 +8529 +8530 +8535 +8536 +8542 +8548 +8549 +8553 +8555 +8557 +8563 +8566 +8570 +8573 +8576 +8580 +8584 +8586 +8587 +8588 +8590 +8592 +8596 +8597 +8598 +8600 +8601 +8603 +8608 +8610 +8613 +8620 +8621 +8622 +8624 +8625 +8630 +8633 +8635 +8640 +8643 +8644 +8646 +8653 +8659 +8661 +8662 +8665 +8666 +8670 +8673 +8678 +8681 +8683 +8685 +8694 +8705 +8706 +8709 +8724 +8725 +8730 +8732 +8734 +8741 +8745 +8748 +8749 +8750 +8753 +8754 +8756 +8757 +8758 +8761 +8762 +8764 +8777 +8780 +8781 +8782 +8787 +8788 +8791 +8795 +8796 +8798 +8800 +8810 +8812 +8815 +8818 +8820 +8821 +8822 +8825 +8827 +8828 +8830 +8832 +8835 +8838 +8840 +8841 +8845 +8846 +8849 +8850 +8851 +8855 +8859 +8860 +8866 +8869 +8870 +8871 +8874 +8877 +8878 +8879 +8883 +8887 +8888 +8889 +8890 +8891 +8892 +8893 +8898 +8904 +8906 +8907 +8910 +8911 +8916 +8919 +8920 +8921 +8922 +8924 +8926 +8930 +8933 +8936 +8940 +8947 +8954 +8960 +8963 +8964 +8968 +8969 +8970 +8974 +8977 +8978 +8979 +8980 +8985 +8989 +8995 +8996 +9000 +9001 +9010 +9014 +9015 +9027 +9028 +9030 +9031 +9044 +9049 +9051 +9054 +9060 +9064 +9066 +9069 +9070 +9071 +9072 +9073 +9075 +9079 +9080 +9085 +9090 +9091 +9092 +9097 +9098 +9105 +9107 +9110 +9112 +9117 +9125 +9126 +9129 +9130 +9137 +9140 +9142 +9150 +9155 +9158 +9160 +9161 +9163 +9167 +9169 +9170 +9176 +9178 +9180 +9190 +9193 +9198 +9200 +9206 +9207 +9209 +9212 +9215 +9217 +9226 +9227 +9228 +9229 +9230 +9233 +9234 +9236 +9242 +9248 +9249 +9252 +9260 +9269 +9273 +9275 +9279 +9280 +9281 +9282 +9284 +9285 +9290 +9299 +9300 +9305 +9314 +9323 +9324 +9325 +9329 +9335 +9336 +9340 +9342 +9343 +9347 +9348 +9350 +9352 +9353 +9356 +9360 +9362 +9363 +9367 +9370 +9380 +9383 +9384 +9391 +9395 +9396 +9398 +9400 +9403 +9405 +9406 +9409 +9410 +9414 +9419 +9420 +9428 +9437 +9438 +9440 +9452 +9453 +9456 +9457 +9459 +9461 +9470 +9477 +9480 +9481 +9485 +9487 +9491 +9496 +9499 +9500 +9501 +9504 +9508 +9510 +9519 +9520 +9527 +9536 +9539 +9543 +9546 +9547 +9550 +9555 +9556 +9565 +9566 +9570 +9572 +9575 +9577 +9578 +9579 +9581 +9586 +9587 +9591 +9600 +9605 +9607 +9610 +9611 +9614 +9619 +9620 +9625 +9628 +9630 +9635 +9644 +9646 +9647 +9650 +9652 +9656 +9666 +9670 +9673 +9676 +9680 +9683 +9684 +9686 +9688 +9692 +9694 +9696 +9697 +9700 +9701 +9702 +9704 +9706 +9709 +9710 +9717 +9718 +9719 +9720 +9730 +9734 +9744 +9748 +9750 +9767 +9769 +9777 +9778 +9790 +9810 +9820 +9822 +9824 +9827 +9830 +9832 +9834 +9840 +9844 +9850 +9851 +9852 +9860 +9864 +9865 +9870 +9873 +9882 +9886 +9890 +9896 +9900 +9903 +9904 +9914 +9917 +9918 +9919 +9930 +9932 +9934 +9938 +9939 +9940 +9943 +9950 +9952 +9956 +9960 +9972 +9977 +9980 +9993 +9995 +10000 +10004 +10005 +10007 +10020 +10021 +10023 +10030 +10031 +10032 +10033 +10034 +10038 +10040 +10049 +10051 +10058 +10075 +10080 +10081 +10085 +10103 +10106 +10111 +10112 +10113 +10115 +10116 +10120 +10122 +10128 +10140 +10145 +10148 +10150 +10151 +10155 +10156 +10166 +10167 +10169 +10170 +10174 +10188 +10193 +10200 +10203 +10208 +10210 +10211 +10217 +10220 +10223 +10230 +10233 +10240 +10243 +10245 +10246 +10250 +10255 +10260 +10269 +10270 +10272 +10279 +10280 +10282 +10284 +10285 +10289 +10291 +10299 +10300 +10302 +10303 +10323 +10324 +10325 +10326 +10327 +10333 +10338 +10340 +10344 +10349 +10350 +10352 +10360 +10370 +10373 +10374 +10376 +10388 +10393 +10396 +10398 +10400 +10407 +10411 +10420 +10428 +10435 +10447 +10450 +10461 +10465 +10468 +10473 +10474 +10478 +10480 +10485 +10490 +10492 +10498 +10502 +10503 +10504 +10507 +10510 +10514 +10527 +10528 +10540 +10550 +10558 +10560 +10562 +10564 +10570 +10572 +10580 +10585 +10600 +10604 +10608 +10610 +10616 +10619 +10644 +10660 +10670 +10672 +10674 +10690 +10692 +10695 +10699 +10700 +10701 +10707 +10710 +10712 +10718 +10719 +10722 +10730 +10732 +10738 +10740 +10741 +10743 +10744 +10746 +10752 +10770 +10771 +10777 +10780 +10788 +10790 +10794 +10810 +10811 +10814 +10823 +10829 +10833 +10835 +10848 +10852 +10860 +10865 +10867 +10870 +10875 +10877 +10878 +10882 +10888 +10906 +10908 +10909 +10910 +10915 +10922 +10930 +10933 +10950 +10958 +10960 +10964 +10974 +10980 +10984 +10989 +10990 +10992 +10993 +10996 +11005 +11017 +11018 +11023 +11025 +11027 +11029 +11030 +11039 +11040 +11048 +11049 +11050 +11063 +11073 +11076 +11079 +11080 +11091 +11094 +11102 +11106 +11108 +11109 +11110 +11115 +11121 +11124 +11128 +11146 +11147 +11160 +11170 +11177 +11180 +11181 +11185 +11187 +11190 +11195 +11200 +11205 +11219 +11220 +11229 +11250 +11253 +11256 +11258 +11260 +11270 +11277 +11279 +11280 +11283 +11286 +11289 +11296 +11297 +11299 +11301 +11309 +11312 +11328 +11330 +11339 +11340 +11342 +11346 +11350 +11356 +11358 +11359 +11360 +11366 +11370 +11372 +11378 +11382 +11383 +11390 +11400 +11403 +11404 +11410 +11419 +11428 +11430 +11439 +11441 +11446 +11447 +11450 +11458 +11463 +11464 +11470 +11475 +11487 +11489 +11490 +11499 +11500 +11515 +11518 +11520 +11524 +11537 +11540 +11546 +11550 +11553 +11555 +11560 +11570 +11571 +11572 +11577 +11580 +11583 +11589 +11590 +11595 +11600 +11601 +11610 +11611 +11620 +11622 +11630 +11631 +11640 +11643 +11644 +11645 +11650 +11660 +11664 +11669 +11670 +11681 +11683 +11686 +11687 +11690 +11694 +11696 +11700 +11710 +11719 +11720 +11723 +11730 +11742 +11744 +11750 +11760 +11770 +11772 +11773 +11780 +11781 +11784 +11791 +11800 +11801 +11802 +11813 +11815 +11816 +11820 +11839 +11840 +11849 +11855 +11856 +11857 +11858 +11860 +11862 +11869 +11880 +11890 +11899 +11900 +11905 +11910 +11920 +11930 +11932 +11939 +11940 +11946 +11959 +11960 +11980 +11987 +12000 +12006 +12009 +12027 +12030 +12035 +12040 +12047 +12050 +12070 +12080 +12087 +12088 +12091 +12093 +12115 +12120 +12125 +12130 +12139 +12140 +12146 +12148 +12160 +12162 +12166 +12168 +12170 +12172 +12177 +12180 +12186 +12188 +12189 +12192 +12194 +12200 +12201 +12204 +12218 +12219 +12220 +12221 +12225 +12228 +12230 +12237 +12239 +12240 +12242 +12244 +12250 +12256 +12260 +12261 +12266 +12270 +12282 +12294 +12295 +12296 +12300 +12301 +12306 +12317 +12320 +12321 +12322 +12323 +12326 +12327 +12330 +12340 +12343 +12371 +12380 +12385 +12390 +12391 +12392 +12400 +12408 +12412 +12419 +12422 +12423 +12427 +12430 +12440 +12441 +12446 +12450 +12452 +12455 +12468 +12477 +12480 +12486 +12497 +12499 +12500 +12503 +12510 +12526 +12528 +12530 +12540 +12550 +12559 +12560 +12570 +12578 +12592 +12601 +12608 +12610 +12616 +12619 +12620 +12640 +12644 +12650 +12660 +12663 +12670 +12677 +12680 +12681 +12684 +12691 +12695 +12701 +12720 +12721 +12730 +12740 +12744 +12750 +12760 +12762 +12767 +12769 +12770 +12773 +12779 +12780 +12784 +12797 +12801 +12803 +12819 +12820 +12830 +12840 +12849 +12850 +12860 +12879 +12882 +12885 +12896 +12903 +12916 +12918 +12925 +12930 +12934 +12940 +12942 +12943 +12950 +12953 +12960 +12966 +12971 +12990 +12997 +13000 +13020 +13025 +13026 +13030 +13040 +13041 +13043 +13049 +13053 +13059 +13060 +13061 +13067 +13070 +13072 +13100 +13111 +13120 +13124 +13126 +13139 +13140 +13160 +13171 +13178 +13179 +13180 +13191 +13198 +13200 +13215 +13226 +13230 +13231 +13244 +13246 +13260 +13269 +13270 +13272 +13274 +13276 +13280 +13288 +13300 +13305 +13309 +13312 +13324 +13330 +13333 +13340 +13350 +13351 +13360 +13361 +13367 +13368 +13370 +13372 +13380 +13382 +13388 +13410 +13422 +13427 +13430 +13440 +13450 +13466 +13470 +13475 +13480 +13490 +13491 +13495 +13504 +13508 +13509 +13517 +13520 +13539 +13540 +13546 +13548 +13559 +13560 +13562 +13570 +13574 +13580 +13587 +13590 +13591 +13592 +13594 +13596 +13598 +13599 +13610 +13620 +13622 +13626 +13632 +13635 +13639 +13641 +13650 +13660 +13674 +13680 +13683 +13688 +13690 +13700 +13704 +13709 +13710 +13720 +13722 +13730 +13733 +13740 +13744 +13750 +13758 +13760 +13782 +13786 +13792 +13800 +13813 +13820 +13821 +13832 +13833 +13841 +13849 +13860 +13866 +13870 +13873 +13877 +13880 +13882 +13890 +13900 +13905 +13907 +13929 +13936 +13954 +13970 +13980 +14010 +14038 +14040 +14041 +14043 +14050 +14056 +14060 +14068 +14080 +14087 +14090 +14091 +14092 +14100 +14106 +14110 +14114 +14120 +14130 +14132 +14146 +14154 +14157 +14168 +14172 +14173 +14177 +14190 +14193 +14205 +14215 +14223 +14230 +14234 +14238 +14250 +14253 +14255 +14260 +14278 +14285 +14300 +14311 +14318 +14320 +14321 +14324 +14331 +14342 +14343 +14358 +14364 +14369 +14370 +14382 +14390 +14396 +14400 +14402 +14410 +14420 +14430 +14440 +14442 +14444 +14460 +14480 +14491 +14499 +14504 +14510 +14513 +14520 +14530 +14540 +14545 +14550 +14560 +14570 +14578 +14580 +14591 +14597 +14600 +14605 +14607 +14610 +14618 +14622 +14625 +14629 +14630 +14650 +14654 +14675 +14679 +14689 +14690 +14698 +14700 +14705 +14710 +14717 +14720 +14729 +14746 +14750 +14757 +14759 +14760 +14773 +14780 +14789 +14790 +14795 +14800 +14803 +14811 +14819 +14820 +14821 +14823 +14828 +14850 +14860 +14894 +14895 +14898 +14900 +14901 +14905 +14910 +14916 +14938 +14940 +14960 +14970 +14997 +14998 +15007 +15025 +15030 +15038 +15040 +15052 +15053 +15060 +15070 +15074 +15077 +15080 +15090 +15110 +15133 +15136 +15137 +15144 +15147 +15150 +15157 +15160 +15170 +15175 +15178 +15190 +15200 +15201 +15210 +15213 +15220 +15249 +15250 +15260 +15261 +15267 +15278 +15283 +15289 +15292 +15296 +15300 +15311 +15321 +15331 +15340 +15355 +15365 +15375 +15380 +15381 +15400 +15408 +15409 +15418 +15424 +15425 +15430 +15434 +15440 +15445 +15460 +15470 +15479 +15480 +15484 +15490 +15492 +15502 +15505 +15507 +15520 +15527 +15530 +15549 +15554 +15563 +15567 +15570 +15579 +15582 +15584 +15600 +15610 +15630 +15645 +15649 +15650 +15652 +15655 +15665 +15670 +15684 +15685 +15688 +15690 +15695 +15730 +15734 +15747 +15756 +15765 +15779 +15782 +15792 +15817 +15823 +15828 +15830 +15836 +15840 +15845 +15849 +15860 +15870 +15871 +15876 +15877 +15880 +15892 +15901 +15907 +15930 +15954 +16000 +16003 +16004 +16010 +16040 +16050 +16054 +16072 +16080 +16090 +16100 +16109 +16110 +16119 +16125 +16150 +16162 +16184 +16190 +16198 +16210 +16214 +16230 +16234 +16240 +16245 +16246 +16258 +16273 +16280 +16282 +16290 +16300 +16310 +16311 +16321 +16329 +16330 +16332 +16343 +16362 +16369 +16377 +16379 +16382 +16383 +16386 +16387 +16390 +16399 +16400 +16432 +16433 +16440 +16450 +16453 +16463 +16470 +16490 +16493 +16495 +16500 +16506 +16510 +16511 +16520 +16540 +16543 +16557 +16560 +16570 +16573 +16579 +16599 +16610 +16617 +16628 +16645 +16647 +16648 +16660 +16661 +16664 +16668 +16670 +16678 +16680 +16683 +16687 +16718 +16720 +16723 +16737 +16762 +16772 +16777 +16780 +16783 +16784 +16792 +16797 +16800 +16805 +16814 +16820 +16831 +16837 +16840 +16853 +16857 +16858 +16860 +16865 +16867 +16869 +16892 +16894 +16900 +16916 +16920 +16923 +16925 +16927 +16930 +16948 +16950 +16980 +16990 +17000 +17010 +17020 +17035 +17045 +17071 +17080 +17085 +17087 +17090 +17091 +17100 +17129 +17130 +17139 +17142 +17148 +17160 +17166 +17196 +17200 +17203 +17218 +17220 +17230 +17232 +17240 +17248 +17260 +17267 +17271 +17303 +17310 +17317 +17319 +17330 +17346 +17350 +17360 +17370 +17380 +17390 +17402 +17406 +17410 +17411 +17412 +17440 +17449 +17464 +17465 +17466 +17470 +17480 +17490 +17500 +17520 +17525 +17536 +17540 +17542 +17550 +17570 +17579 +17580 +17585 +17600 +17610 +17615 +17617 +17620 +17626 +17629 +17640 +17644 +17650 +17666 +17673 +17680 +17690 +17700 +17722 +17740 +17750 +17760 +17770 +17780 +17790 +17798 +17800 +17825 +17867 +17880 +17900 +17928 +17930 +17932 +17940 +17950 +17955 +17957 +17960 +17977 +17987 +17990 +18000 +18012 +18022 +18030 +18050 +18054 +18060 +18080 +18081 +18086 +18090 +18099 +18110 +18130 +18134 +18144 +18150 +18151 +18157 +18162 +18170 +18171 +18204 +18220 +18223 +18242 +18252 +18260 +18283 +18286 +18288 +18289 +18300 +18302 +18320 +18330 +18336 +18337 +18339 +18356 +18360 +18380 +18390 +18400 +18420 +18427 +18428 +18430 +18451 +18456 +18468 +18469 +18487 +18490 +18510 +18513 +18515 +18517 +18522 +18530 +18546 +18582 +18591 +18599 +18600 +18616 +18620 +18627 +18643 +18650 +18670 +18672 +18720 +18731 +18732 +18740 +18770 +18774 +18778 +18780 +18782 +18790 +18797 +18810 +18828 +18839 +18850 +18860 +18891 +18900 +18908 +18910 +18919 +18920 +18921 +18924 +18930 +18939 +18960 +18975 +18980 +18990 +19000 +19004 +19016 +19028 +19029 +19030 +19032 +19040 +19050 +19062 +19090 +19095 +19100 +19110 +19139 +19149 +19167 +19170 +19176 +19180 +19182 +19189 +19191 +19200 +19208 +19220 +19230 +19260 +19261 +19270 +19290 +19295 +19300 +19306 +19308 +19310 +19312 +19317 +19318 +19340 +19341 +19346 +19360 +19370 +19371 +19400 +19405 +19410 +19413 +19420 +19442 +19446 +19450 +19465 +19470 +19480 +19490 +19494 +19500 +19510 +19520 +19525 +19542 +19554 +19570 +19595 +19609 +19610 +19612 +19620 +19622 +19644 +19658 +19667 +19680 +19696 +19709 +19720 +19740 +19743 +19770 +19782 +19795 +19798 +19807 +19830 +19836 +19840 +19841 +19850 +19883 +19885 +19896 +19900 +19910 +19913 +19920 +19971 +19989 +19990 +20000 +20008 +20042 +20050 +20065 +20090 +20105 +20110 +20114 +20117 +20119 +20130 +20167 +20180 +20184 +20190 +20195 +20198 +20200 +20210 +20233 +20244 +20250 +20251 +20285 +20299 +20305 +20320 +20328 +20330 +20360 +20381 +20422 +20428 +20442 +20448 +20450 +20453 +20460 +20470 +20480 +20490 +20504 +20520 +20561 +20571 +20580 +20610 +20620 +20627 +20633 +20634 +20640 +20670 +20683 +20687 +20690 +20730 +20731 +20750 +20760 +20763 +20778 +20800 +20820 +20830 +20840 +20841 +20850 +20851 +20853 +20870 +20883 +20906 +20927 +20931 +20935 +20940 +20958 +20970 +20980 +20987 +20993 +21005 +21017 +21039 +21040 +21043 +21062 +21064 +21066 +21070 +21100 +21108 +21118 +21119 +21120 +21130 +21133 +21142 +21155 +21168 +21170 +21180 +21188 +21200 +21221 +21245 +21248 +21270 +21280 +21287 +21297 +21305 +21309 +21312 +21320 +21330 +21369 +21372 +21376 +21380 +21390 +21415 +21440 +21455 +21468 +21470 +21480 +21513 +21530 +21550 +21560 +21599 +21600 +21621 +21638 +21672 +21687 +21688 +21690 +21702 +21710 +21726 +21767 +21800 +21803 +21815 +21820 +21824 +21827 +21830 +21837 +21846 +21870 +21883 +21904 +21909 +21936 +21940 +21972 +21991 +21995 +22000 +22001 +22010 +22038 +22050 +22054 +22080 +22098 +22100 +22105 +22108 +22130 +22136 +22160 +22180 +22192 +22212 +22215 +22240 +22250 +22260 +22262 +22267 +22269 +22274 +22277 +22280 +22290 +22293 +22317 +22320 +22337 +22341 +22420 +22421 +22500 +22510 +22516 +22530 +22532 +22571 +22580 +22600 +22608 +22648 +22654 +22657 +22659 +22660 +22690 +22700 +22710 +22716 +22720 +22730 +22758 +22760 +22764 +22765 +22766 +22770 +22780 +22789 +22800 +22801 +22820 +22830 +22844 +22848 +22875 +22881 +22888 +22890 +22900 +22903 +22920 +22927 +22960 +22970 +22989 +22990 +23000 +23045 +23050 +23100 +23118 +23119 +23120 +23121 +23123 +23124 +23133 +23180 +23200 +23220 +23221 +23238 +23240 +23246 +23260 +23280 +23320 +23330 +23334 +23350 +23395 +23398 +23410 +23427 +23450 +23480 +23500 +23501 +23505 +23510 +23517 +23540 +23545 +23556 +23561 +23579 +23600 +23602 +23606 +23620 +23630 +23694 +23696 +23699 +23710 +23740 +23742 +23750 +23760 +23767 +23779 +23804 +23822 +23837 +23841 +23862 +23870 +23878 +23880 +23900 +23906 +23920 +23930 +24000 +24016 +24020 +24047 +24079 +24093 +24120 +24139 +24140 +24141 +24145 +24160 +24161 +24175 +24180 +24200 +24210 +24220 +24227 +24250 +24278 +24280 +24298 +24300 +24306 +24317 +24353 +24356 +24386 +24400 +24410 +24420 +24457 +24461 +24465 +24500 +24501 +24510 +24528 +24583 +24610 +24637 +24657 +24690 +24740 +24761 +24770 +24796 +24798 +24800 +24809 +24826 +24830 +24840 +24841 +24843 +24855 +24869 +24880 +24890 +24893 +24900 +24906 +24911 +24915 +24958 +24960 +24990 +25038 +25040 +25057 +25060 +25090 +25092 +25160 +25168 +25180 +25187 +25200 +25233 +25250 +25260 +25286 +25300 +25306 +25310 +25320 +25330 +25343 +25380 +25430 +25432 +25440 +25460 +25470 +25486 +25500 +25517 +25519 +25533 +25540 +25544 +25560 +25575 +25580 +25584 +25590 +25596 +25630 +25640 +25650 +25690 +25700 +25710 +25720 +25740 +25746 +25770 +25780 +25800 +25806 +25810 +25834 +25840 +25858 +25860 +25863 +25868 +25877 +25878 +25880 +25910 +25930 +25931 +25950 +25962 +25964 +25980 +26034 +26078 +26110 +26120 +26127 +26134 +26140 +26166 +26167 +26188 +26190 +26210 +26251 +26302 +26330 +26338 +26350 +26421 +26453 +26469 +26470 +26490 +26500 +26528 +26546 +26550 +26554 +26600 +26637 +26638 +26650 +26660 +26664 +26670 +26680 +26690 +26700 +26770 +26772 +26782 +26790 +26800 +26808 +26820 +26822 +26840 +26860 +26861 +26870 +26940 +26980 +26989 +27008 +27030 +27071 +27080 +27081 +27091 +27100 +27106 +27110 +27143 +27152 +27159 +27176 +27180 +27188 +27200 +27212 +27226 +27251 +27269 +27280 +27290 +27307 +27317 +27330 +27350 +27360 +27381 +27386 +27389 +27390 +27391 +27410 +27432 +27440 +27442 +27450 +27463 +27500 +27520 +27527 +27548 +27557 +27590 +27624 +27627 +27647 +27658 +27667 +27670 +27680 +27700 +27730 +27780 +27796 +27800 +27804 +27809 +27840 +27850 +27852 +27861 +27894 +27920 +27922 +27923 +27948 +27980 +27983 +27988 +27990 +28000 +28019 +28020 +28060 +28087 +28090 +28100 +28110 +28140 +28148 +28160 +28163 +28164 +28229 +28251 +28261 +28273 +28290 +28300 +28305 +28351 +28353 +28389 +28400 +28425 +28430 +28500 +28510 +28520 +28530 +28531 +28550 +28580 +28658 +28700 +28780 +28783 +28791 +28823 +28832 +28856 +28860 +28872 +28900 +28928 +28929 +28947 +28953 +28980 +29000 +29030 +29067 +29080 +29090 +29100 +29130 +29144 +29150 +29160 +29175 +29180 +29192 +29200 +29203 +29240 +29280 +29290 +29300 +29320 +29360 +29385 +29455 +29456 +29459 +29470 +29480 +29492 +29500 +29519 +29540 +29580 +29585 +29590 +29619 +29648 +29652 +29660 +29666 +29699 +29710 +29736 +29740 +29761 +29776 +29831 +29848 +29852 +29860 +29870 +29900 +29930 +29961 +30012 +30040 +30070 +30100 +30109 +30111 +30150 +30200 +30252 +30261 +30271 +30280 +30290 +30300 +30312 +30320 +30340 +30354 +30400 +30417 +30420 +30433 +30452 +30472 +30490 +30495 +30510 +30523 +30563 +30590 +30592 +30600 +30660 +30680 +30690 +30710 +30720 +30722 +30736 +30738 +30750 +30770 +30821 +30894 +30900 +30912 +30920 +30930 +30970 +30998 +31000 +31013 +31028 +31048 +31060 +31080 +31087 +31090 +31092 +31100 +31114 +31118 +31160 +31169 +31197 +31200 +31222 +31230 +31240 +31248 +31282 +31300 +31316 +31320 +31330 +31352 +31355 +31370 +31394 +31400 +31420 +31430 +31440 +31475 +31476 +31500 +31510 +31542 +31549 +31550 +31580 +31600 +31612 +31614 +31629 +31655 +31682 +31694 +31700 +31740 +31780 +31830 +31835 +31848 +31850 +31860 +31870 +31900 +31903 +31952 +32010 +32050 +32099 +32100 +32117 +32130 +32173 +32200 +32210 +32223 +32250 +32256 +32298 +32300 +32310 +32330 +32335 +32360 +32370 +32380 +32390 +32400 +32440 +32460 +32470 +32480 +32537 +32630 +32656 +32680 +32695 +32764 +32800 +32808 +32812 +32820 +32840 +32867 +32870 +32900 +32940 +33050 +33066 +33075 +33100 +33130 +33144 +33150 +33160 +33170 +33220 +33270 +33280 +33300 +33303 +33380 +33390 +33400 +33410 +33480 +33485 +33496 +33500 +33530 +33590 +33600 +33650 +33700 +33736 +33770 +33797 +33810 +33900 +33951 +33960 +34020 +34027 +34040 +34058 +34059 +34074 +34088 +34100 +34132 +34140 +34177 +34190 +34194 +34200 +34207 +34208 +34236 +34240 +34270 +34280 +34284 +34300 +34310 +34381 +34400 +34414 +34453 +34481 +34485 +34500 +34520 +34544 +34546 +34631 +34700 +34748 +34773 +34780 +34820 +34857 +34910 +34956 +34962 +35000 +35010 +35067 +35070 +35080 +35087 +35100 +35117 +35132 +35140 +35204 +35277 +35281 +35283 +35289 +35300 +35310 +35320 +35353 +35370 +35410 +35440 +35470 +35512 +35520 +35548 +35569 +35579 +35600 +35610 +35616 +35650 +35680 +35700 +35760 +35771 +35785 +35820 +35833 +35849 +35870 +35880 +35900 +35910 +36000 +36061 +36080 +36103 +36122 +36180 +36200 +36212 +36277 +36290 +36300 +36393 +36400 +36500 +36559 +36560 +36570 +36585 +36630 +36670 +36690 +36710 +36717 +36750 +36870 +36890 +36900 +36940 +36946 +36956 +36980 +37000 +37030 +37062 +37113 +37120 +37122 +37130 +37170 +37294 +37297 +37300 +37340 +37385 +37400 +37410 +37440 +37466 +37480 +37530 +37549 +37550 +37600 +37613 +37670 +37750 +37754 +37760 +37770 +37830 +37865 +37883 +37885 +37890 +37905 +37940 +37950 +38090 +38120 +38124 +38160 +38172 +38192 +38194 +38200 +38210 +38216 +38236 +38249 +38250 +38260 +38272 +38280 +38290 +38300 +38320 +38360 +38362 +38419 +38451 +38492 +38523 +38548 +38575 +38580 +38595 +38620 +38640 +38661 +38680 +38717 +38744 +38841 +39055 +39070 +39125 +39140 +39220 +39258 +39300 +39322 +39331 +39365 +39405 +39590 +39593 +39615 +39640 +39662 +39673 +39722 +39740 +39743 +39750 +39760 +39770 +39794 +39799 +39800 +39863 +39900 +39937 +39940 +39943 +39960 +39989 +40000 +40010 +40040 +40096 +40100 +40180 +40200 +40211 +40217 +40220 +40280 +40330 +40352 +40360 +40400 +40500 +40550 +40597 +40606 +40617 +40660 +40675 +40730 +40746 +40800 +40820 +40830 +40998 +41000 +41010 +41020 +41040 +41067 +41077 +41105 +41131 +41138 +41218 +41239 +41240 +41389 +41390 +41420 +41432 +41491 +41500 +41550 +41600 +41620 +41628 +41630 +41664 +41690 +41710 +41740 +41773 +41800 +41816 +41838 +41980 +41987 +41990 +42047 +42121 +42134 +42200 +42253 +42350 +42383 +42410 +42434 +42440 +42510 +42520 +42550 +42570 +42611 +42636 +42640 +42682 +42700 +42800 +42861 +42900 +42940 +42980 +43060 +43080 +43090 +43100 +43140 +43170 +43181 +43231 +43240 +43265 +43351 +43376 +43400 +43411 +43423 +43520 +43540 +43549 +43600 +43627 +43670 +43790 +43803 +43810 +43844 +43917 +43920 +44000 +44050 +44100 +44110 +44160 +44170 +44240 +44290 +44300 +44330 +44360 +44370 +44409 +44420 +44426 +44470 +44600 +44620 +44627 +44630 +44640 +44691 +44810 +44860 +44870 +44900 +44940 +45020 +45110 +45191 +45210 +45310 +45400 +45450 +45454 +45488 +45490 +45618 +45633 +45680 +45700 +45710 +45715 +45743 +45832 +45854 +45855 +45966 +46080 +46111 +46142 +46200 +46222 +46236 +46303 +46317 +46340 +46390 +46400 +46484 +46500 +46510 +46600 +46640 +46667 +46750 +46800 +46890 +46900 +47000 +47087 +47090 +47100 +47150 +47154 +47206 +47400 +47597 +47600 +47620 +47640 +47647 +47665 +47701 +47760 +47800 +47840 +47880 +48000 +48100 +48150 +48180 +48190 +48200 +48360 +48406 +48440 +48460 +48520 +48540 +48600 +48700 +48779 +48877 +48970 +48980 +49000 +49040 +49060 +49090 +49097 +49160 +49450 +49521 +49522 +49527 +49600 +49660 +49663 +49700 +49800 +49810 +49869 +49875 +49910 +50000 +50032 +50047 +50050 +50065 +50123 +50198 +50200 +50240 +50400 +50407 +50420 +50498 +50540 +50626 +50640 +50687 +50700 +50709 +50785 +50900 +50980 +50990 +51020 +51100 +51166 +51170 +51173 +51247 +51257 +51300 +51320 +51410 +51480 +51557 +51563 +51600 +51680 +51710 +51722 +51740 +51753 +51770 +51780 +51900 +51970 +52000 +52065 +52200 +52254 +52320 +52400 +52500 +52530 +52600 +52601 +52640 +52720 +52750 +52800 +52864 +52874 +52899 +52900 +53000 +53070 +53128 +53180 +53213 +53240 +53550 +53670 +53695 +53745 +53800 +53806 +53810 +53812 +53838 +53946 +54000 +54010 +54100 +54140 +54200 +54299 +54310 +54550 +54570 +54750 +54782 +54822 +54867 +54888 +54910 +54980 +54990 +55100 +55200 +55241 +55300 +55310 +55340 +55405 +55460 +55600 +55690 +55750 +55790 +55800 +55900 +56000 +56037 +56052 +56130 +56200 +56255 +56300 +56363 +56500 +56600 +56605 +56629 +56630 +56800 +56854 +56890 +57000 +57170 +57183 +57200 +57310 +57351 +57352 +57470 +57492 +57540 +57550 +57600 +57603 +57668 +57693 +57711 +57940 +57950 +58014 +58047 +58080 +58100 +58200 +58250 +58300 +58364 +58460 +58560 +58600 +58630 +58646 +58700 +58760 +58970 +59000 +59081 +59100 +59170 +59300 +59408 +59443 +59460 +59472 +59546 +59580 +59600 +59680 +59760 +59800 +59810 +59820 +59914 +59917 +59934 +59992 +60000 +60114 +60149 +60250 +60280 +60330 +60335 +60400 +60420 +60450 +60455 +60520 +60522 +60610 +60720 +60756 +60776 +60890 +60961 +61000 +61015 +61020 +61040 +61119 +61220 +61250 +61260 +61269 +61270 +61292 +61400 +61476 +61540 +61568 +61640 +61648 +61690 +61700 +61780 +61787 +61851 +61852 +61890 +62090 +62100 +62160 +62240 +62320 +62440 +62500 +62610 +62750 +62800 +62900 +63000 +63140 +63200 +63300 +63424 +63430 +63600 +63710 +63760 +63880 +63890 +63940 +64020 +64025 +64090 +64161 +64210 +64300 +64400 +64500 +64581 +64600 +64604 +64628 +64648 +64680 +64708 +64736 +64740 +64779 +64782 +64890 +64910 +64994 +65000 +65013 +65221 +65240 +65250 +65265 +65300 +65330 +65440 +65496 +65600 +65700 +65790 +65800 +65893 +65900 +65979 +66070 +66100 +66140 +66190 +66200 +66231 +66265 +66327 +66430 +66490 +66500 +66510 +66647 +66689 +66780 +66800 +66847 +66850 +66900 +67000 +67170 +67175 +67180 +67200 +67251 +67300 +67370 +67400 +67500 +67649 +67700 +67723 +67780 +67800 +67936 +68160 +68189 +68200 +68302 +68470 +68517 +68570 +68640 +68700 +68710 +68763 +68776 +68840 +68894 +68900 +68950 +69000 +69131 +69180 +69306 +69406 +69430 +69468 +69520 +69540 +69553 +69600 +69608 +69610 +69880 +69890 +70100 +70143 +70190 +70200 +70220 +70300 +70390 +70400 +70500 +70659 +70760 +70791 +71019 +71300 +71450 +71474 +71600 +71700 +71749 +71800 +71870 +71900 +71930 +72040 +72188 +72213 +72270 +72416 +72440 +72453 +72475 +72500 +72580 +72710 +72800 +73045 +73101 +73134 +73219 +73326 +73354 +73430 +73451 +73710 +73718 +73790 +73803 +73890 +73900 +73950 +74200 +74349 +74388 +74565 +74580 +74597 +74900 +75000 +75025 +75100 +75152 +75210 +75230 +75295 +75322 +75477 +75500 +75700 +75779 +75780 +75810 +75991 +76020 +76040 +76150 +76400 +76430 +76700 +76769 +77000 +77100 +77195 +77200 +77252 +77330 +77342 +77542 +77600 +77700 +78000 +78003 +78100 +78160 +78207 +78300 +78340 +78400 +78596 +78782 +78870 +79038 +79091 +79100 +79180 +79210 +79300 +79500 +79620 +79622 +79862 +79900 +79960 +80000 +80500 +80570 +80580 +80600 +80622 +80720 +80781 +81000 +81200 +81230 +81280 +81454 +81600 +81700 +81740 +81832 +81855 +81900 +81930 +82000 +82090 +82400 +82500 +82560 +82600 +82650 +82700 +82720 +83013 +83130 +83214 +83370 +83500 +83570 +83580 +83590 +83620 +83720 +83765 +83845 +83919 +84000 +84008 +84052 +84124 +84343 +84490 +84570 +84979 +85000 +85320 +85540 +85560 +85682 +86040 +86175 +86200 +86250 +86570 +86599 +86907 +86920 +87000 +87050 +87198 +87305 +87400 +87420 +87500 +87840 +87900 +88000 +88100 +88150 +88170 +88200 +89089 +89400 +89427 +89500 +89700 +89751 +89830 +89860 +90000 +90105 +90300 +90419 +90500 +90580 +90600 +91022 +91114 +91168 +91200 +91248 +91280 +91400 +91850 +91865 +91900 +92000 +92200 +92400 +92624 +92643 +92800 +92813 +92870 +92980 +93000 +93080 +93200 +93389 +93499 +93600 +93769 +93790 +94000 +94070 +94130 +94300 +94560 +94569 +94600 +94700 +94930 +95052 +95100 +95160 +95200 +95253 +95300 +95390 +95450 +95580 +95780 +95800 +96000 +96100 +96138 +96200 +96300 +96430 +96495 +96660 +96969 +97150 +97216 +97300 +97400 +97440 +97630 +97640 +97735 +97800 +97832 +97930 +98000 +98100 +98184 +98200 +98660 +98700 +98759 +99000 +99177 +99266 +99297 +99453 +99486 +99851 +99940 +100000 +100100 +100400 +100500 +100880 +100900 +100933 +101200 +101300 +101400 +101480 +101652 +101666 +101685 +101989 +102000 +102200 +102300 +102652 +102787 +103000 +103200 +103240 +103990 +104642 +104871 +105000 +105075 +105200 +105399 +105535 +105740 +105950 +106000 +106160 +106167 +106500 +106772 +107370 +107400 +107401 +107414 +107603 +107657 +107700 +107701 +107986 +108000 +108190 +108200 +108216 +108278 +108490 +108761 +109000 +109020 +109120 +109130 +109361 +110500 +110691 +110940 +110950 +110970 +111460 +111500 +111766 +111800 +111919 +112000 +112450 +112855 +112890 +113170 +113233 +113260 +113689 +113709 +114000 +114030 +114050 +114200 +114446 +114500 +114580 +114726 +114770 +114800 +114902 +115400 +115470 +116000 +117000 +117500 +117605 +117690 +117692 +118000 +118228 +119000 +119782 +119830 +119960 +120151 +120325 +120400 +120600 +120814 +120980 +121246 +121300 +121482 +121813 +121911 +122100 +122120 +122490 +122848 +123360 +123924 +125000 +125294 +125853 +126000 +126100 +126400 +126510 +126581 +126600 +126699 +127400 +128000 +128700 +128760 +128910 +129000 +129100 +129300 +129500 +129600 +129640 +129700 +129930 +130000 +130180 +130200 +130494 +130700 +131000 +131461 +131478 +131491 +131500 +131600 +132000 +132100 +132500 +132900 +134000 +134400 +134900 +135000 +135050 +136000 +136520 +136600 +136790 +137000 +137100 +137700 +138000 +138700 +139000 +139437 +139704 +140000 +140440 +140458 +140540 +140751 +141100 +141119 +141458 +141810 +142000 +142300 +142551 +142842 +143600 +143884 +143900 +144040 +144995 +145345 +146517 +147404 +147705 +148230 +148303 +148810 +149000 +149073 +149900 +150000 +150551 +150564 +150700 +151000 +151691 +152000 +152023 +153000 +153200 +154000 +154200 +155310 +155909 +156000 +156360 +156490 +156530 +156780 +156900 +157540 +157560 +158000 +158425 +159085 +159352 +160410 +161610 +161700 +161800 +162000 +162100 +162200 +162893 +163700 +163830 +164000 +164068 +164200 +164684 +165000 +166030 +166165 +166400 +167000 +167178 +168146 +168700 +169636 +169910 +170000 +170010 +170701 +172000 +172075 +172189 +172235 +173479 +173975 +174200 +174390 +174530 +175120 +175591 +175640 +175900 +176431 +177000 +177500 +178082 +178400 +179000 +179390 +179900 +180000 +180107 +180590 +180610 +180900 +181000 +181300 +181490 +182000 +182990 +183000 +183050 +183100 +183940 +185554 +186150 +186800 +189000 +189100 +189670 +190000 +191538 +191600 +191781 +192500 +192740 +193200 +193820 +194040 +194309 +194790 +195504 +195824 +195937 +196000 +196110 +196687 +196775 +197000 +197200 +198000 +199950 +200000 +200222 +201270 +201900 +202000 +202562 +203432 +204020 +204390 +204800 +205000 +206000 +206110 +206900 +207000 +207148 +207990 +208150 +209000 +209400 +209678 +210000 +210400 +210684 +211900 +212000 +212200 +212700 +214290 +214330 +214700 +215227 +215500 +216000 +216200 +217000 +217400 +217410 +217700 +218000 +219070 +219552 +220000 +220970 +221000 +221690 +222913 +224000 +224900 +224918 +225000 +225490 +226712 +226833 +227000 +228780 +230000 +230400 +234150 +234410 +236205 +236804 +237300 +237700 +238800 +238860 +239003 +240431 +241048 +242700 +243794 +244794 +245700 +246000 +246190 +247000 +248000 +248240 +249500 +250000 +250300 +250400 +250929 +251579 +253200 +253750 +257100 +257600 +258000 +258123 +258681 +259000 +259570 +260160 +261200 +261750 +261800 +263813 +264600 +264800 +265240 +265500 +265900 +266757 +267120 +267346 +268500 +268742 +269240 +270000 +270132 +271000 +274000 +275000 +275100 +276500 +276620 +279101 +279140 +280000 +281490 +283570 +284702 +287300 +288440 +290000 +292304 +294000 +294862 +296480 +296600 +299800 +300000 +300500 +301120 +301232 +301868 +302000 +302114 +302270 +306000 +307130 +310000 +310240 +310396 +313591 +316000 +317500 +317741 +318000 +318731 +318999 +319531 +319800 +320000 +320300 +321000 +322520 +323214 +327300 +330000 +335480 +338740 +339000 +339160 +340000 +341930 +342000 +342300 +345410 +346030 +349000 +349700 +350000 +350530 +352000 +353170 +353220 +356000 +357300 +358000 +358170 +362920 +363000 +365000 +370000 +373400 +380000 +382310 +383500 +384220 +385685 +394610 +400000 +402000 +403900 +403942 +404987 +407139 +412130 +412200 +413443 +420400 +423057 +429600 +430480 +431780 +433000 +433150 +433530 +440000 +440700 +442480 +445190 +449046 +450000 +452000 +455509 +463000 +464000 +464730 +468200 +471840 +472850 +472900 +474310 +476780 +477600 +478552 +480000 +485000 +491000 +491500 +493700 +499598 +499700 +500000 +503100 +506005 +506270 +507000 +511700 +514592 +521640 +527620 +530000 +531898 +532400 +539900 +540000 +540126 +545400 +545586 +547638 +550000 +552171 +553500 +555717 +561127 +566690 +571000 +572210 +580000 +583380 +587000 +587860 +589400 +590400 +597000 +600000 +614000 +616000 +617290 +620000 +625000 +630000 +634000 +637422 +643030 +647200 +662200 +662600 +666200 +667016 +670000 +671279 +673600 +674000 +679700 +680000 +682897 +686220 +686730 +690100 +697000 +699030 +700000 +705000 +710000 +718440 +719000 +719570 +731452 +739000 +739640 +747200 +749600 +750000 +755470 +756719 +766900 +777520 +800000 +803800 +810000 +825212 +833300 +838700 +867200 +873134 +879350 +885550 +903000 +910000 +938079 +952000 +956700 +959670 +964000 +993300 +994000 +996900 +1000000 +1010000 +1022000 +1030000 +1050860 +1055492 +1060890 +1097432 +1099300 +1100000 +1102700 +1117000 +1141236 +1170000 +1185900 +1200000 +1207000 +1226450 +1242000 +1253840 +1300000 +1300780 +1332804 +1343800 +1360000 +1400000 +1435225 +1446280 +1459558 +1462100 +1465890 +1530000 +1556805 +1574400 +1580000 +1605000 +1613800 +1651931 +1668600 +1700000 +1800000 +1816096 +1920362 +1950000 +2000000 +2040100 +2050000 +2190000 +2308000 +2370210 +2400000 +2418000 +2491276 +2500000 +2521000 +2553560 +2610000 +2640969 +2700000 +2893870 +2962000 +3000000 +3053100 +3090000 +3129707 +3179920 +3321107 +3336106 +3406660 +3739270 +3817000 +3835000 +3900000 +4000000 +4032220 +4340000 +4530000 +4554000 +4714500 +5240500 +5338800 +5585700 +5600000 +5655380 +5799000 +6000000 +6249000 +6400000 +6598100 +6700000 +6940000 +7000000 +7400000 +7520000 +7890000 +8000000 +9000000 +9089710 +10000000 +11000000 +17400000 +20200000 +44353022 +75889000 diff --git a/third_party/chinese_text_normalization/thrax/src/number_data/random-tst.txt b/third_party/chinese_text_normalization/thrax/src/number_data/random-tst.txt new file mode 100644 index 000000000..efce19a97 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/number_data/random-tst.txt @@ -0,0 +1,1000 @@ +209 +220 +250 +254 +263 +266 +276 +303 +310 +317 +322 +364 +386 +405 +414 +424 +429 +489 +505 +520 +523 +525 +554 +624 +627 +640 +665 +680 +704 +715 +723 +741 +742 +775 +776 +845 +847 +851 +868 +898 +921 +927 +972 +973 +984 +986 +994 +1038 +1055 +1077 +1079 +1083 +1090 +1123 +1137 +1161 +1184 +1186 +1235 +1257 +1258 +1285 +1302 +1307 +1311 +1358 +1369 +1372 +1383 +1391 +1418 +1441 +1442 +1447 +1476 +1478 +1509 +1535 +1548 +1550 +1571 +1581 +1593 +1615 +1623 +1639 +1660 +1686 +1688 +1717 +1735 +1782 +1813 +1815 +1824 +1831 +1875 +1881 +1924 +1931 +1949 +1951 +1966 +1970 +1984 +1990 +1992 +2012 +2013 +2024 +2040 +2058 +2062 +2064 +2067 +2075 +2116 +2130 +2135 +2171 +2197 +2200 +2215 +2220 +2226 +2246 +2259 +2277 +2294 +2303 +2318 +2342 +2347 +2349 +2355 +2364 +2413 +2419 +2420 +2433 +2441 +2445 +2451 +2468 +2488 +2498 +2499 +2500 +2502 +2514 +2523 +2524 +2557 +2568 +2598 +2609 +2612 +2629 +2685 +2697 +2718 +2724 +2734 +2739 +2760 +2763 +2779 +2796 +2797 +2809 +2818 +2828 +2839 +2842 +2850 +2857 +2864 +2916 +2923 +2984 +2987 +2991 +2994 +3021 +3025 +3026 +3054 +3070 +3080 +3086 +3098 +3114 +3121 +3130 +3136 +3137 +3157 +3175 +3182 +3200 +3233 +3245 +3250 +3270 +3298 +3303 +3330 +3341 +3347 +3368 +3392 +3394 +3398 +3400 +3427 +3435 +3441 +3449 +3474 +3477 +3497 +3501 +3525 +3526 +3551 +3570 +3576 +3597 +3612 +3630 +3636 +3639 +3649 +3651 +3675 +3692 +3719 +3742 +3773 +3785 +3790 +3850 +3870 +3873 +3875 +3885 +3910 +3926 +3927 +3928 +3941 +3943 +3945 +3950 +3961 +3971 +3990 +3992 +3996 +4010 +4013 +4018 +4024 +4032 +4047 +4065 +4069 +4079 +4089 +4097 +4114 +4125 +4127 +4148 +4155 +4173 +4180 +4206 +4249 +4256 +4284 +4298 +4303 +4305 +4345 +4354 +4409 +4417 +4433 +4437 +4470 +4474 +4486 +4494 +4527 +4538 +4544 +4572 +4629 +4630 +4634 +4647 +4652 +4654 +4658 +4680 +4699 +4747 +4748 +4773 +4791 +4852 +4863 +4884 +4907 +4927 +4943 +4953 +5027 +5032 +5037 +5080 +5095 +5108 +5134 +5163 +5168 +5186 +5210 +5236 +5237 +5265 +5273 +5283 +5330 +5351 +5362 +5396 +5438 +5446 +5465 +5495 +5511 +5526 +5534 +5556 +5567 +5611 +5639 +5642 +5725 +5738 +5751 +5774 +5777 +5786 +5813 +5837 +5864 +5879 +5885 +5889 +5898 +5921 +5924 +5946 +5955 +5959 +5968 +5976 +5981 +6021 +6047 +6049 +6080 +6158 +6162 +6170 +6176 +6206 +6214 +6220 +6243 +6253 +6261 +6284 +6307 +6322 +6330 +6338 +6367 +6413 +6430 +6434 +6437 +6470 +6492 +6499 +6504 +6512 +6660 +6670 +6680 +6699 +6710 +6737 +6741 +6751 +6776 +6779 +6802 +6819 +6890 +6892 +6969 +6970 +7040 +7045 +7052 +7063 +7065 +7088 +7128 +7129 +7133 +7155 +7164 +7166 +7181 +7210 +7219 +7234 +7236 +7256 +7266 +7270 +7303 +7364 +7370 +7378 +7499 +7593 +7629 +7633 +7640 +7675 +7709 +7753 +7791 +7792 +7812 +7838 +7860 +7890 +7972 +8014 +8025 +8096 +8106 +8123 +8154 +8159 +8200 +8228 +8343 +8381 +8429 +8490 +8515 +8526 +8560 +8568 +8579 +8658 +8668 +8672 +8688 +8710 +8731 +8739 +8752 +8771 +8790 +8833 +8900 +8917 +8929 +9002 +9035 +9043 +9067 +9078 +9122 +9138 +9144 +9183 +9199 +9211 +9235 +9240 +9257 +9330 +9385 +9390 +9450 +9512 +9523 +9530 +9535 +9564 +9596 +9601 +9602 +9603 +9626 +9655 +9691 +9695 +9772 +9780 +9808 +9849 +9881 +9911 +9923 +9946 +9970 +9986 +10009 +10019 +10168 +10178 +10180 +10190 +10290 +10348 +10470 +10520 +10525 +10535 +10545 +10627 +10675 +10715 +10757 +10772 +10786 +10896 +10940 +10970 +11000 +11101 +11120 +11132 +11192 +11201 +11209 +11265 +11337 +11392 +11549 +11557 +11567 +11736 +11767 +11807 +11814 +11866 +11881 +11913 +12073 +12098 +12111 +12137 +12291 +12370 +12376 +12397 +12435 +12439 +12443 +12511 +12520 +12567 +12575 +12615 +12700 +12710 +12726 +12729 +12814 +12822 +12883 +12890 +12910 +12915 +12980 +13069 +13075 +13127 +13193 +13209 +13386 +13390 +13393 +13511 +13586 +13607 +13625 +13630 +13647 +13656 +13763 +13810 +13910 +13979 +13991 +14073 +14096 +14111 +14170 +14210 +14259 +14306 +14350 +14351 +14360 +14479 +14587 +14613 +14736 +14745 +14797 +14810 +14822 +14824 +14830 +15020 +15068 +15118 +15197 +15230 +15270 +15310 +15404 +15510 +15603 +15680 +15700 +15721 +15820 +15928 +15990 +16012 +16018 +16030 +16073 +16123 +16243 +16275 +16501 +16690 +16710 +16765 +16870 +16958 +17014 +17030 +17138 +17190 +17272 +17409 +17424 +17430 +17477 +17678 +17684 +17687 +17820 +17840 +17898 +18097 +18219 +18284 +18349 +18525 +18634 +18680 +19042 +19070 +19084 +19120 +19151 +19250 +19389 +19679 +19932 +20080 +20100 +20133 +20321 +20440 +20801 +20819 +20969 +21190 +21300 +21340 +21350 +21360 +21490 +21531 +21640 +21728 +21796 +21831 +21860 +22040 +22208 +22282 +22410 +22566 +22850 +23060 +23196 +23380 +24190 +24350 +24360 +24380 +24475 +24480 +24491 +24521 +24644 +24695 +24747 +24760 +24945 +25000 +25510 +25754 +25870 +26200 +26300 +26410 +26447 +26472 +26510 +27000 +27017 +27400 +27430 +27531 +27600 +27740 +27870 +28200 +28544 +28570 +28618 +28629 +28716 +28753 +28850 +29027 +29040 +29045 +29129 +29190 +29404 +29600 +29970 +30030 +30050 +30190 +30375 +30500 +30700 +30778 +30790 +30838 +31310 +31379 +31480 +31547 +31698 +31986 +32600 +32991 +33417 +33603 +34751 +34900 +34980 +35059 +35101 +35190 +35496 +35500 +35707 +35761 +36320 +36496 +36893 +37200 +37520 +37780 +38370 +38500 +38600 +39200 +39575 +39580 +40324 +40560 +41222 +41300 +41485 +41973 +43110 +43229 +44097 +44550 +44666 +45078 +45085 +45090 +45600 +46170 +46772 +47060 +48280 +48500 +48518 +49400 +49430 +50100 +50167 +50359 +50800 +51386 +51390 +51531 +51800 +52092 +52100 +52590 +52663 +52670 +52738 +52990 +53025 +53450 +53600 +53620 +54070 +54505 +56160 +56165 +57100 +57730 +58825 +58900 +60151 +60500 +61306 +61710 +62250 +62270 +62400 +63310 +63960 +64235 +64760 +65200 +65654 +66240 +66400 +66600 +68670 +68920 +71000 +71400 +72630 +72700 +72860 +73700 +75841 +76108 +77122 +79220 +79400 +79670 +81110 +83574 +84100 +84500 +86090 +87078 +87300 +87860 +88340 +88880 +89154 +89950 +92600 +96220 +96870 +97503 +99600 +101000 +104000 +105100 +105570 +106900 +108290 +108400 +110840 +110975 +113773 +115000 +116500 +119200 +124720 +127000 +127780 +128200 +128966 +138900 +140900 +141000 +141228 +144000 +145000 +145061 +147245 +147562 +148450 +152218 +154990 +158775 +159940 +161000 +161300 +163500 +165500 +170559 +176000 +178000 +184000 +188800 +196100 +204400 +204880 +210900 +216616 +220930 +238000 +239740 +257226 +265000 +271590 +273200 +285810 +309620 +315612 +320959 +321500 +341400 +348697 +350260 +359030 +360000 +360600 +376500 +378265 +383070 +394740 +410000 +446000 +471750 +497384 +510600 +560000 +590000 +608400 +696900 +704000 +1448374 +2256800 +3275000 +3980000 +4500000 +5066940 +5166299 +7113500 +9842447 +13020696 +70477170 diff --git a/third_party/chinese_text_normalization/thrax/src/ru/README.md b/third_party/chinese_text_normalization/thrax/src/ru/README.md new file mode 100644 index 000000000..c02d2935d --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/README.md @@ -0,0 +1,6 @@ +# Russian covering grammar definitions + +This directory defines a Russian text normalization covering grammar. The +primary entry-point is the FST `VERBALIZER`, defined in +`verbalizer/verbalizer.grm` and compiled in the FST archive +`verbalizer/verbalizer.far`. diff --git a/third_party/chinese_text_normalization/thrax/src/ru/classifier/cyrillic.grm b/third_party/chinese_text_normalization/thrax/src/ru/classifier/cyrillic.grm new file mode 100644 index 000000000..0672e45a1 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/classifier/cyrillic.grm @@ -0,0 +1,58 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +export kRussianLowerAlpha = Optimize[ + "а" | "б" | "в" | "г" | "д" | "е" | "ё" | "ж" | "з" | "и" | "й" | + "к" | "л" | "м" | "н" | "о" | "п" | "р" | "с" | "т" | "у" | "ф" | + "х" | "ц" | "ч" | "ш" | "щ" | "ъ" | "ы" | "ь" | "э" | "ю" | "я" ]; + +export kRussianUpperAlpha = Optimize[ + "А" | "Б" | "В" | "Г" | "Д" | "Е" | "Ё" | "Ж" | "З" | "И" | "Й" | + "К" | "Л" | "М" | "Н" | "О" | "П" | "Р" | "С" | "Т" | "У" | "Ф" | + "Х" | "Ц" | "Ч" | "Ш" | "Щ" | "Ъ" | "Ы" | "Ь" | "Э" | "Ю" | "Я" ]; + +export kRussianLowerAlphaStressed = Optimize[ + "а́" | "е́" | "ё́" | "и́" | "о́" | "у́" | "ы́" | "э́" | "ю́" | "я́" ]; + +export kRussianUpperAlphaStressed = Optimize[ + "А́" | "Е́" | "Ё́" | "И́" | "О́" | "У́" | "Ы́" | "Э́" | "Ю́" | "Я́" ]; + +export kRussianRewriteStress = Optimize[ + ("А́" : "А'") | ("Е́" : "Е'") | ("Ё́" : "Ё'") | ("И́" : "И'") | + ("О́" : "О'") | ("У́" : "У'") | ("Ы́" : "Ы'") | ("Э́" : "Э'") | + ("Ю́" : "Ю'") | ("Я́" : "Я'") | + ("а́" : "а'") | ("е́" : "е'") | ("ё́" : "ё'") | ("и́" : "и'") | + ("о́" : "о'") | ("у́" : "у'") | ("ы́" : "ы'") | ("э́" : "э'") | + ("ю́" : "ю'") | ("я́" : "я'") +]; + +export kRussianRemoveStress = Optimize[ + ("А́" : "А") | ("Е́" : "Е") | ("Ё́" : "Ё") | ("И́" : "И") | ("О́" : "О") | + ("У́" : "У") | ("Ы́" : "Ы") | ("Э́" : "Э") | ("Ю́" : "Ю") | ("Я́" : "Я") | + ("а́" : "а") | ("е́" : "е") | ("ё́" : "ё") | ("и́" : "и") | ("о́" : "о") | + ("у́" : "у") | ("ы́" : "ы") | ("э́" : "э") | ("ю́" : "ю") | ("я́" : "я") +]; + +# Pre-reform characters, just in case. +export kRussianPreReform = Optimize[ + "ѣ" | "Ѣ" # http://en.wikipedia.org/wiki/Yat +]; + +export kCyrillicAlphaStressed = Optimize[ + kRussianLowerAlphaStressed | kRussianUpperAlphaStressed +]; + +export kCyrillicAlpha = Optimize[ + kRussianLowerAlpha | kRussianUpperAlpha | kRussianPreReform +]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals-lex.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals-lex.grm new file mode 100644 index 000000000..c07a7ae1c --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals-lex.grm @@ -0,0 +1,338 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# AUTOMATICALLY GENERATED: DO NOT EDIT. +import 'util/byte.grm' as b; + +# Utilities for insertion and deletion. + +func I[expr] { + return "" : expr; +} + +func D[expr] { + return expr : ""; +} + +# Powers of base 10. +export POWERS = + "[E15]" + | "[E14]" + | "[E13]" + | "[E12]" + | "[E11]" + | "[E10]" + | "[E9]" + | "[E8]" + | "[E7]" + | "[E6]" + | "[E5]" + | "[E4]" + | "[E3]" + | "[E2]" + | "[E1]" +; + +export SIGMA = b.kBytes | POWERS; + +export SIGMA_STAR = SIGMA*; + +export SIGMA_PLUS = SIGMA+; + +################################################################################ +# BEGIN LANGUAGE SPECIFIC DATA +revaluations = + ("[E4]" : "[E1]") + | ("[E5]" : "[E2]") + | ("[E7]" : "[E1]") + | ("[E8]" : "[E2]") +; + +Ms = "[E3]" | "[E6]" | "[E9]"; + + +func Zero[expr] { + return expr : (""); +} + +space = " "; + +lexset3 = Optimize[ + ("1[E1]+1" : "одиннадцати") + | ("1[E1]+1" : "одиннадцать") + | ("1[E1]+1" : "одиннадцатью") + | ("1[E1]+2" : "двенадцати") + | ("1[E1]+2" : "двенадцать") + | ("1[E1]+2" : "двенадцатью") + | ("1[E1]+3" : "тринадцати") + | ("1[E1]+3" : "тринадцать") + | ("1[E1]+3" : "тринадцатью") + | ("1[E1]+4" : "четырнадцати") + | ("1[E1]+4" : "четырнадцать") + | ("1[E1]+4" : "четырнадцатью") + | ("1[E1]+5" : "пятнадцати") + | ("1[E1]+5" : "пятнадцать") + | ("1[E1]+5" : "пятнадцатью") + | ("1[E1]+6" : "шестнадцати") + | ("1[E1]+6" : "шестнадцать") + | ("1[E1]+6" : "шестнадцатью") + | ("1[E1]+7" : "семнадцати") + | ("1[E1]+7" : "семнадцать") + | ("1[E1]+7" : "семнадцатью") + | ("1[E1]+8" : "восемнадцати") + | ("1[E1]+8" : "восемнадцать") + | ("1[E1]+8" : "восемнадцатью") + | ("1[E1]+9" : "девятнадцати") + | ("1[E1]+9" : "девятнадцать") + | ("1[E1]+9" : "девятнадцатью")] +; + +lex3 = CDRewrite[lexset3 I[space], "", "", SIGMA_STAR]; + +lexset2 = Optimize[ + ("1[E1]" : "десяти") + | ("1[E1]" : "десять") + | ("1[E1]" : "десятью") + | ("1[E2]" : "ста") + | ("1[E2]" : "сто") + | ("2[E1]" : "двадцати") + | ("2[E1]" : "двадцать") + | ("2[E1]" : "двадцатью") + | ("2[E2]" : "двести") + | ("2[E2]" : "двумстам") + | ("2[E2]" : "двумястами") + | ("2[E2]" : "двухсот") + | ("2[E2]" : "двухстах") + | ("3[E1]" : "тридцати") + | ("3[E1]" : "тридцать") + | ("3[E1]" : "тридцатью") + | ("3[E2]" : "тремстам") + | ("3[E2]" : "тремястами") + | ("3[E2]" : "трехсот") + | ("3[E2]" : "трехстах") + | ("3[E2]" : "триста") + | ("4[E1]" : "сорок") + | ("4[E1]" : "сорока") + | ("4[E2]" : "четыремстам") + | ("4[E2]" : "четыреста") + | ("4[E2]" : "четырехсот") + | ("4[E2]" : "четырехстах") + | ("4[E2]" : "четырьмястами") + | ("5[E1]" : "пятидесяти") + | ("5[E1]" : "пятьдесят") + | ("5[E1]" : "пятьюдесятью") + | ("5[E2]" : "пятисот") + | ("5[E2]" : "пятистам") + | ("5[E2]" : "пятистах") + | ("5[E2]" : "пятьсот") + | ("5[E2]" : "пятьюстами") + | ("6[E1]" : "шестидесяти") + | ("6[E1]" : "шестьдесят") + | ("6[E1]" : "шестьюдесятью") + | ("6[E2]" : "шестисот") + | ("6[E2]" : "шестистам") + | ("6[E2]" : "шестистах") + | ("6[E2]" : "шестьсот") + | ("6[E2]" : "шестьюстами") + | ("7[E1]" : "семидесяти") + | ("7[E1]" : "семьдесят") + | ("7[E1]" : "семьюдесятью") + | ("7[E2]" : "семисот") + | ("7[E2]" : "семистам") + | ("7[E2]" : "семистах") + | ("7[E2]" : "семьсот") + | ("7[E2]" : "семьюстами") + | ("8[E1]" : "восемьдесят") + | ("8[E1]" : "восьмидесяти") + | ("8[E1]" : "восьмьюдесятью") + | ("8[E2]" : "восемьсот") + | ("8[E2]" : "восемьюстами") + | ("8[E2]" : "восьмисот") + | ("8[E2]" : "восьмистам") + | ("8[E2]" : "восьмистах") + | ("8[E2]" : "восьмьюстами") + | ("9[E1]" : "девяноста") + | ("9[E1]" : "девяносто") + | ("9[E2]" : "девятисот") + | ("9[E2]" : "девятистам") + | ("9[E2]" : "девятистах") + | ("9[E2]" : "девятьсот") + | ("9[E2]" : "девятьюстами")] +; + +lex2 = CDRewrite[lexset2 I[space], "", "", SIGMA_STAR]; + +lexset1 = Optimize[ + ("+" : "") + | ("1" : "один") + | ("1" : "одна") + | ("1" : "одни") + | ("1" : "одним") + | ("1" : "одними") + | ("1" : "одних") + | ("1" : "одно") + | ("1" : "одного") + | ("1" : "одной") + | ("1" : "одном") + | ("1" : "одному") + | ("1" : "одною") + | ("1" : "одну") + | ("2" : "два") + | ("2" : "две") + | ("2" : "двум") + | ("2" : "двумя") + | ("2" : "двух") + | ("3" : "трем") + | ("3" : "тремя") + | ("3" : "трех") + | ("3" : "три") + | ("4" : "четыре") + | ("4" : "четырем") + | ("4" : "четырех") + | ("4" : "четырьмя") + | ("5" : "пяти") + | ("5" : "пять") + | ("5" : "пятью") + | ("6" : "шести") + | ("6" : "шесть") + | ("6" : "шестью") + | ("7" : "семи") + | ("7" : "семь") + | ("7" : "семью") + | ("8" : "восемь") + | ("8" : "восьми") + | ("8" : "восьмью") + | ("9" : "девяти") + | ("9" : "девять") + | ("9" : "девятью") + | ("[E3]" : "тысяч") + | ("[E3]" : "тысяча") + | ("[E3]" : "тысячам") + | ("[E3]" : "тысячами") + | ("[E3]" : "тысячах") + | ("[E3]" : "тысяче") + | ("[E3]" : "тысячей") + | ("[E3]" : "тысячи") + | ("[E3]" : "тысячу") + | ("[E3]" : "тысячью") + | ("[E6]" : "миллион") + | ("[E6]" : "миллиона") + | ("[E6]" : "миллионам") + | ("[E6]" : "миллионами") + | ("[E6]" : "миллионах") + | ("[E6]" : "миллионе") + | ("[E6]" : "миллионов") + | ("[E6]" : "миллионом") + | ("[E6]" : "миллиону") + | ("[E6]" : "миллионы") + | ("[E9]" : "миллиард") + | ("[E9]" : "миллиарда") + | ("[E9]" : "миллиардам") + | ("[E9]" : "миллиардами") + | ("[E9]" : "миллиардах") + | ("[E9]" : "миллиарде") + | ("[E9]" : "миллиардов") + | ("[E9]" : "миллиардом") + | ("[E9]" : "миллиарду") + | ("[E9]" : "миллиарды") + | ("|0|" : "ноле") + | ("|0|" : "нолем") + | ("|0|" : "ноль") + | ("|0|" : "нолю") + | ("|0|" : "ноля") + | ("|0|" : "нуле") + | ("|0|" : "нулем") + | ("|0|" : "нуль") + | ("|0|" : "нулю") + | ("|0|" : "нуля")] +; + +lex1 = CDRewrite[lexset1 I[space], "", "", SIGMA_STAR]; + +export LEX = Optimize[lex3 @ lex2 @ lex1]; + +export INDEPENDENT_EXPONENTS = "[E3]" | "[E6]" | "[E9]"; + +# END LANGUAGE SPECIFIC DATA +################################################################################ +# Inserts a marker after the Ms. +export INSERT_BOUNDARY = CDRewrite["" : "%", Ms, "", SIGMA_STAR]; + +# Deletes all powers and "+". +export DELETE_POWERS = CDRewrite[D[POWERS | "+"], "", "", SIGMA_STAR]; + +# Deletes trailing zeros at the beginning of a number, so that "0003" does not +# get treated as an ordinary number. +export DELETE_INITIAL_ZEROS = + CDRewrite[("0" POWERS "+") : "", "[BOS]", "", SIGMA_STAR] +; + +NonMs = Optimize[POWERS - Ms]; + +# Deletes (usually) zeros before a non-M. E.g., +0[E1] should be deleted. +export DELETE_INTERMEDIATE_ZEROS1 = + CDRewrite[Zero["+0" NonMs], "", "", SIGMA_STAR] +; + +# Deletes (usually) zeros before an M, if there is no non-zero element between +# that and the previous boundary. Thus, if after the result of the rule above we +# end up with "%+0[E3]", then that gets deleted. Also (really) deletes a final +# zero. +export DELETE_INTERMEDIATE_ZEROS2 = Optimize[ + CDRewrite[Zero["%+0" Ms], "", "", SIGMA_STAR] + @ CDRewrite[D["+0"], "", "[EOS]", SIGMA_STAR]] +; + +# Final clean up of stray zeros. +export DELETE_REMAINING_ZEROS = Optimize[ + CDRewrite[Zero["+0"], "", "", SIGMA_STAR] + @ CDRewrite[Zero["0"], "", "", SIGMA_STAR]] +; + +# Applies the revaluation map. For example in English, changes [E4] to [E1] as a +# modifier of [E3]. +export REVALUE = CDRewrite[revaluations, "", "", SIGMA_STAR]; + +# Deletes the various marks and powers in the input and output. +export DELETE_MARKS = CDRewrite[D["%" | "+" | POWERS], "", "", SIGMA_STAR]; + +export CLEAN_SPACES = Optimize[ + CDRewrite[" "+ : " ", b.kNotSpace, b.kNotSpace, SIGMA_STAR] + @ CDRewrite[" "* : "", "[BOS]", "", SIGMA_STAR] + @ CDRewrite[" "* : "", "", "[EOS]", SIGMA_STAR]] +; + +d = b.kDigit; + +# Germanic inversion rule. +germanic = + (I["1+"] d "[E1]" D["+1"]) + | (I["2+"] d "[E1]" D["+2"]) + | (I["3+"] d "[E1]" D["+3"]) + | (I["4+"] d "[E1]" D["+4"]) + | (I["5+"] d "[E1]" D["+5"]) + | (I["6+"] d "[E1]" D["+6"]) + | (I["7+"] d "[E1]" D["+7"]) + | (I["8+"] d "[E1]" D["+8"]) + | (I["9+"] d "[E1]" D["+9"]) +; + +germanic_inversion = + CDRewrite[germanic, "", "", SIGMA_STAR, 'ltr', 'opt'] +; + +export GERMANIC_INVERSION = SIGMA_STAR; +export ORDINAL_RESTRICTION = SIGMA_STAR; +nondigits = b.kBytes - b.kDigit; +export ORDINAL_SUFFIX = D[nondigits*]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals.tsv new file mode 100644 index 000000000..484a5c8a7 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/cardinals.tsv @@ -0,0 +1,177 @@ +0 ноле +0 ноль +0 нолю +0 ноля +0 нолём +0 нуле +0 нуль +0 нулю +0 нуля +0 нулём +1 один +1 одна +1 одни +1 одним +1 одними +1 одних +1 одно +1 одного +1 одной +1 одном +1 одному +1 одною +1 раз +1 одну +2 два +2 две +2 двум +2 двумя +2 двух +3 тремя +3 три +3 трём +3 трёх +4 четыре +4 четырьмя +4 четырём +4 четырёх +5 пяти +5 пять +5 пятью +6 шести +6 шесть +6 шестью +7 семи +7 семь +7 семью +8 восемь +8 восьми +8 восьмью +9 девяти +9 девять +9 девятью +10 десяти +10 десять +10 десятью +11 одиннадцати +11 одиннадцать +11 одиннадцатью +12 двенадцати +12 двенадцать +12 двенадцатью +13 тринадцати +13 тринадцать +13 тринадцатью +14 четырнадцати +14 четырнадцать +14 четырнадцатью +15 пятнадцати +15 пятнадцать +15 пятнадцатью +16 шестнадцати +16 шестнадцать +16 шестнадцатью +17 семнадцати +17 семнадцать +17 семнадцатью +18 восемнадцати +18 восемнадцать +18 восемнадцатью +19 девятнадцати +19 девятнадцать +19 девятнадцатью +20 двадцати +20 двадцать +20 двадцатью +30 тридцати +30 тридцать +30 тридцатью +40 сорок +40 сорока +50 пятидесяти +50 пятьдесят +50 пятьюдесятью +60 шестидесяти +60 шестьдесят +60 шестьюдесятью +70 семидесяти +70 семьдесят +70 семьюдесятью +80 восемьдесят +80 восьмидесяти +80 восьмьюдесятью +90 девяноста +90 девяносто +100 ста +100 сто +200 двести +200 двумстам +200 двумястами +200 двухсот +200 двухстах +300 тремястами +300 трехсот +300 триста +300 трёмстам +300 трёхстах +400 четыреста +400 четырьмястами +400 четырёмстам +400 четырёхсот +400 четырёхстах +500 пятисот +500 пятистам +500 пятистах +500 пятьсот +500 пятьюстами +600 шестисот +600 шестистам +600 шестистах +600 шестьсот +600 шестьюстами +700 семисот +700 семистам +700 семистах +700 семьсот +700 семьюстами +800 восемьсот +800 восемьюстами +800 восьмисот +800 восьмистам +800 восьмистах +800 восьмьюстами +900 девятисот +900 девятистам +900 девятистах +900 девятьсот +900 девятьюстами +1000 тысяч +1000 тысяча +1000 тысячам +1000 тысячами +1000 тысячах +1000 тысяче +1000 тысячей +1000 тысячи +1000 тысячу +1000 тысячью +1000000 миллион +1000000 миллиона +1000000 миллионам +1000000 миллионами +1000000 миллионах +1000000 миллионе +1000000 миллионов +1000000 миллионом +1000000 миллиону +1000000 миллионы +1000000000 миллиард +1000000000 миллиарда +1000000000 миллиардам +1000000000 миллиардами +1000000000 миллиардах +1000000000 миллиарде +1000000000 миллиардов +1000000000 миллиардом +1000000000 миллиарду +1000000000 миллиарды diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/extra_numbers.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/extra_numbers.grm new file mode 100644 index 000000000..644f30dff --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/extra_numbers.grm @@ -0,0 +1,35 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'ru/verbalizer/numbers.grm' as n; + +digit = b.kDigit @ n.CARDINAL_NUMBERS | ("0" : "@@OTHER_ZERO_VERBALIZATIONS@@"); + +export DIGITS = digit (n.I[" "] digit)*; + +# Various common factorizations + +two_digits = b.kDigit{2} @ n.CARDINAL_NUMBERS; + +three_digits = b.kDigit{3} @ n.CARDINAL_NUMBERS; + +mixed = + (digit n.I[" "] two_digits) + | (two_digits n.I[" "] two_digits) + | (two_digits n.I[" "] three_digits) + | (two_digits n.I[" "] two_digits n.I[" "] two_digits) +; + +export MIXED_NUMBERS = Optimize[mixed]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/factorization.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/factorization.grm new file mode 100644 index 000000000..860161463 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/factorization.grm @@ -0,0 +1,40 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'util/util.grm' as u; +import 'ru/verbalizer/numbers.grm' as n; + +func ToNumberName[expr] { + number_name_seq = n.CARDINAL_NUMBERS (" " n.CARDINAL_NUMBERS)*; + return Optimize[expr @ number_name_seq]; +} + +d = b.kDigit; + +leading_zero = CDRewrite[n.I[" "], ("[BOS]" | " ") "0", "", b.kBytes*]; + +by_ones = d n.I[" "]; +by_twos = (d{2} @ leading_zero) n.I[" "]; +by_threes = (d{3} @ leading_zero) n.I[" "]; + +groupings = by_twos* (by_threes | by_twos | by_ones); + +export FRACTIONAL_PART_UNGROUPED = + Optimize[ToNumberName[by_ones+ @ u.CLEAN_SPACES]] +; +export FRACTIONAL_PART_GROUPED = + Optimize[ToNumberName[groupings @ u.CLEAN_SPACES]] +; +export FRACTIONAL_PART_UNPARSED = Optimize[ToNumberName[d*]]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/float.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/float.grm new file mode 100644 index 000000000..c608507a7 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/float.grm @@ -0,0 +1,30 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'ru/verbalizer/factorization.grm' as f; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +fractional_part_ungrouped = f.FRACTIONAL_PART_UNGROUPED; +fractional_part_grouped = f.FRACTIONAL_PART_GROUPED; +fractional_part_unparsed = f.FRACTIONAL_PART_UNPARSED; + +__fractional_part__ = fractional_part_unparsed; +__decimal_marker__ = ","; + +export FLOAT = Optimize[ + (n.CARDINAL_NUMBERS + (__decimal_marker__ : " @@DECIMAL_DOT_EXPRESSION@@ ") + __fractional_part__) @ l.LEXICAL_MAP] +; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/g.fst b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/g.fst new file mode 100644 index 0000000000000000000000000000000000000000..66665f390b5b9a3fa50fb177a8ed52b4b8fc9e1b GIT binary patch literal 3206 zcmd6p*-{ii5JekALEHcpcWpsXQNRVaC%=UdUo`>=ABAu7WBeNmjV#%9|DpN8&DoT z6OYG2FOVPVh_nIpRPVa&GJlZdb-w47WUBa+p5Mw2kZXdkz1rRFpXqsCC~RK4#jxdi zd5p z_o>hLQN5LBbIqT$k3X}V#cq4j`BSgKlx*H>YvNvm$;_}mW`;M|t|P2RmP&PKlaxO{fg6Q@15qtE8> v9m)3&Qu|grY3{x3R`z||ii29N^EcRVUJQNWxufRA<`~;nXRE#6>ofcx!wr7O literal 0 HcmV?d00001 diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.grm new file mode 100644 index 000000000..e7bb32b0b --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.grm @@ -0,0 +1,25 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; + +lexical_map = StringFile['ru/verbalizer/lexical_map.tsv']; + +sigma_star = b.kBytes*; + +del_null = CDRewrite["__NULL__" : "", "", "", sigma_star]; + +export LEXICAL_MAP = Optimize[ + CDRewrite[lexical_map, "", "", sigma_star] @ del_null] +; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.tsv new file mode 100644 index 000000000..b78cf73df --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/lexical_map.tsv @@ -0,0 +1,221 @@ +@@CONNECTOR_RANGE@@ до +@@CONNECTOR_RATIO@@ к +@@CONNECTOR_BY@@ на +@@CONNECTOR_CONSECUTIVE_YEAR@@ до +@@JANUARY@@ январь +@@JANUARY@@ январи +@@JANUARY@@ января +@@JANUARY@@ январей +@@JANUARY@@ январю +@@JANUARY@@ январям +@@JANUARY@@ январь +@@JANUARY@@ январи +@@JANUARY@@ январём +@@JANUARY@@ январями +@@JANUARY@@ январе +@@JANUARY@@ январях +@@FEBRUARY@@ февраль +@@FEBRUARY@@ феврали +@@FEBRUARY@@ февраля +@@FEBRUARY@@ февралей +@@FEBRUARY@@ февралю +@@FEBRUARY@@ февралям +@@FEBRUARY@@ февраль +@@FEBRUARY@@ феврали +@@FEBRUARY@@ февралём +@@FEBRUARY@@ февралями +@@FEBRUARY@@ феврале +@@FEBRUARY@@ февралях +@@MARCH@@ март +@@MARCH@@ марты +@@MARCH@@ марта +@@MARCH@@ мартов +@@MARCH@@ марту +@@MARCH@@ мартам +@@MARCH@@ март +@@MARCH@@ марты +@@MARCH@@ мартом +@@MARCH@@ мартами +@@MARCH@@ марте +@@MARCH@@ мартах +@@APRIL@@ апрель +@@APRIL@@ апрели +@@APRIL@@ апреля +@@APRIL@@ апрелей +@@APRIL@@ апрелю +@@APRIL@@ апрелям +@@APRIL@@ апрель +@@APRIL@@ апрели +@@APRIL@@ апрелем +@@APRIL@@ апрелями +@@APRIL@@ апреле +@@APRIL@@ апрелях +@@MAY@@ май +@@MAY@@ маи +@@MAY@@ мая +@@MAY@@ маев +@@MAY@@ маю +@@MAY@@ маям +@@MAY@@ май +@@MAY@@ маи +@@MAY@@ маем +@@MAY@@ маями +@@MAY@@ мае +@@MAY@@ маях +@@JUN@@ июнь +@@JUN@@ июни +@@JUN@@ июня +@@JUN@@ июней +@@JUN@@ июню +@@JUN@@ июням +@@JUN@@ июнь +@@JUN@@ июни +@@JUN@@ июнем +@@JUN@@ июнями +@@JUN@@ июне +@@JUN@@ июнях +@@JUL@@ июль +@@JUL@@ июли +@@JUL@@ июля +@@JUL@@ июлей +@@JUL@@ июлю +@@JUL@@ июлям +@@JUL@@ июль +@@JUL@@ июли +@@JUL@@ июлем +@@JUL@@ июлями +@@JUL@@ июле +@@JUL@@ июлях +@@AUGUST@@ август +@@AUGUST@@ августы +@@AUGUST@@ августа +@@AUGUST@@ августов +@@AUGUST@@ августу +@@AUGUST@@ августам +@@AUGUST@@ август +@@AUGUST@@ августы +@@AUGUST@@ августом +@@AUGUST@@ августами +@@AUGUST@@ августе +@@AUGUST@@ августах +@@SEPTEMBER@@ сентябрь +@@SEPTEMBER@@ сентябри +@@SEPTEMBER@@ сентября +@@SEPTEMBER@@ сентябрей +@@SEPTEMBER@@ сентябрю +@@SEPTEMBER@@ сентябрям +@@SEPTEMBER@@ сентябрь +@@SEPTEMBER@@ сентябри +@@SEPTEMBER@@ сентябрём +@@SEPTEMBER@@ сентябрями +@@SEPTEMBER@@ сентябре +@@SEPTEMBER@@ сентябрях +@@OCTOBER@@ октябрь +@@OCTOBER@@ октябри +@@OCTOBER@@ октября +@@OCTOBER@@ октябрей +@@OCTOBER@@ октябрю +@@OCTOBER@@ октябрям +@@OCTOBER@@ октябрь +@@OCTOBER@@ октябри +@@OCTOBER@@ октябрём +@@OCTOBER@@ октябрями +@@OCTOBER@@ октябре +@@OCTOBER@@ октябрях +@@NOVEMBER@@ ноябрь +@@NOVEMBER@@ ноябри +@@NOVEMBER@@ ноября +@@NOVEMBER@@ ноябрей +@@NOVEMBER@@ ноябрю +@@NOVEMBER@@ ноябрям +@@NOVEMBER@@ ноябрь +@@NOVEMBER@@ ноябри +@@NOVEMBER@@ ноябрём +@@NOVEMBER@@ ноябрями +@@NOVEMBER@@ ноябре +@@NOVEMBER@@ ноябрях +@@DECEMBER@@ декабрь +@@DECEMBER@@ декабри +@@DECEMBER@@ декабря +@@DECEMBER@@ декабрей +@@DECEMBER@@ декабрю +@@DECEMBER@@ декабрям +@@DECEMBER@@ декабрь +@@DECEMBER@@ декабри +@@DECEMBER@@ декабрём +@@DECEMBER@@ декабрями +@@DECEMBER@@ декабре +@@DECEMBER@@ декабрях +@@MINUS@@ минус +@@DECIMAL_DOT_EXPRESSION@@ целая +@@DECIMAL_DOT_EXPRESSION@@ целой +@@DECIMAL_DOT_EXPRESSION@@ целой +@@DECIMAL_DOT_EXPRESSION@@ целую +@@DECIMAL_DOT_EXPRESSION@@ целой +@@DECIMAL_DOT_EXPRESSION@@ целой +@@DECIMAL_DOT_EXPRESSION@@ целым +@@DECIMAL_DOT_EXPRESSION@@ целыми +@@DECIMAL_DOT_EXPRESSION@@ целых +@@DECIMAL_DOT_EXPRESSION@@ целых +@@URL_DOT_EXPRESSION@@ точка +@@PERIOD@@ точка +@@DECIMAL_EXPONENT@@ умножить на десять в степени +@@COLON@@ двоеточие +@@SLASH@@ косая черта +@@PASSWORD@@ пароль +@@AT@@ собака +@@PORT@@ порт +@@QUESTION_MARK@@ вопросительный знак +@@HASH@@ решётка +@@HASH@@ решетка +@@MONEY_AND@@ и +@@AND@@ и +@@PHONE_PLUS@@ плюс +@@ARITHMETIC_PLUS@@ плюс +@@PHONE_EXTENSION@@ добавочный номер +@@TIME_AM@@ утра +@@TIME_PM@@ вечера +@@HOUR@@ час +@@HOUR@@ часа +@@HOUR@@ часам +@@HOUR@@ часами +@@HOUR@@ часах +@@HOUR@@ часе +@@HOUR@@ часов +@@HOUR@@ часом +@@HOUR@@ часу +@@HOUR@@ часы +@@MINUTE@@ минут +@@MINUTE@@ минута +@@MINUTE@@ минутам +@@MINUTE@@ минутами +@@MINUTE@@ минутах +@@MINUTE@@ минуте +@@MINUTE@@ минутой +@@MINUTE@@ минутою +@@MINUTE@@ минуту +@@MINUTE@@ минуты +@@TIME_AFTER@@ __NULL__ +@@TIME_BEFORE_PRE@@ без +@@TIME_QUARTER@@ четверть +@@TIME_QUARTER@@ четверти +@@TIME_HALF@@ половина +@@TIME_HALF@@ половины +@@TIME_HALF@@ половину +@@TIME_HALF@@ половин +@@TIME_HALF@@ половине +@@TIME_HALF@@ половинам +@@TIME_HALF@@ половиной +@@TIME_HALF@@ половинами +@@TIME_HALF@@ половинах +@@PERCENT@@ процент +@@PERCENT@@ процента +@@PERCENT@@ процентам +@@PERCENT@@ процентами +@@PERCENT@@ процентах +@@PERCENT@@ проценте +@@PERCENT@@ процентов +@@PERCENT@@ процентом +@@PERCENT@@ проценту +@@PERCENT@@ проценты +@@PERCENT@@ проценты diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/math.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/math.grm new file mode 100644 index 000000000..061de4a78 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/math.grm @@ -0,0 +1,34 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'ru/verbalizer/float.grm' as f; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +float = f.FLOAT; +card = n.CARDINAL_NUMBERS; +number = card | float; + +plus = "+" : " @@ARITHMETIC_PLUS@@ "; +times = "*" : " @@ARITHMETIC_TIMES@@ "; +minus = "-" : " @@ARITHMETIC_MINUS@@ "; +division = "/" : " @@ARITHMETIC_DIVISION@@ "; + +operator = plus | times | minus | division; + +percent = "%" : " @@PERCENT@@"; + +export ARITHMETIC = + Optimize[((number operator number) | (number percent)) @ l.LEXICAL_MAP] +; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/miscellaneous.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/miscellaneous.grm new file mode 100644 index 000000000..352363106 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/miscellaneous.grm @@ -0,0 +1,78 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'ru/classifier/cyrillic.grm' as c; +import 'ru/verbalizer/extra_numbers.grm' as e; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; +import 'ru/verbalizer/spelled.grm' as s; + +letter = b.kAlpha | c.kCyrillicAlpha; +dash = "-"; +word = letter+; +possibly_split_word = word (((dash | ".") : " ") word)* n.D["."]?; + +post_word_symbol = + ("+" : ("@@ARITHMETIC_PLUS@@" | "@@POSITIVE@@")) | + ("-" : ("@@ARITHMETIC_MINUS@@" | "@@NEGATIVE@@")) | + ("*" : "@@STAR@@") +; + +pre_word_symbol = + ("@" : "@@AT@@") | + ("/" : "@@SLASH@@") | + ("#" : "@@HASH@@") +; + +post_word = possibly_split_word n.I[" "] post_word_symbol; + +pre_word = pre_word_symbol n.I[" "] possibly_split_word; + +## Number/digit sequence combos, maybe with a dash + +spelled_word = word @ s.SPELLED_NO_LETTER; + +word_number = + (word | spelled_word) + (n.I[" "] | (dash : " ")) + (e.DIGITS | n.CARDINAL_NUMBERS | e.MIXED_NUMBERS) +; + +number_word = + (e.DIGITS | n.CARDINAL_NUMBERS | e.MIXED_NUMBERS) + (n.I[" "] | (dash : " ")) + (word | spelled_word) +; + +## Two-digit year. + +# Note that in this case to be fair we really have to allow ordinals too since +# in some languages that's what you would have. + +two_digit_year = n.D["'"] (b.kDigit{2} @ (n.CARDINAL_NUMBERS | e.DIGITS)); + +dot_com = ("." : "@@URL_DOT_EXPRESSION@@") n.I[" "] "com"; + +miscellaneous = Optimize[ + possibly_split_word + | post_word + | pre_word + | word_number + | number_word + | two_digit_year + | dot_com +]; + +export MISCELLANEOUS = Optimize[miscellaneous @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.grm new file mode 100644 index 000000000..ddea02431 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.grm @@ -0,0 +1,44 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +card = n.CARDINAL_NUMBERS; + +__currency__ = StringFile['ru/verbalizer/money.tsv']; + +d = b.kDigit; +D = d - "0"; + +cents = ((n.D["0"] | D) d) @ card; + +# Only dollar for the verbalizer tests for English. Will need to add other +# currencies. +usd_maj = Project["usd_maj" @ __currency__, 'output']; +usd_min = Project["usd_min" @ __currency__, 'output']; +and = " @@MONEY_AND@@ " | " "; + +dollar1 = + n.D["$"] card n.I[" " usd_maj] n.I[and] n.D["."] cents n.I[" " usd_min] +; + +dollar2 = n.D["$"] card n.I[" " usd_maj] n.D["."] n.D["00"]; + +dollar3 = n.D["$"] card n.I[" " usd_maj]; + +dollar = Optimize[dollar1 | dollar2 | dollar3]; + +export MONEY = Optimize[dollar @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.tsv new file mode 100644 index 000000000..184ea8fe7 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/money.tsv @@ -0,0 +1,24 @@ +usd_maj доллара +usd_maj долларами +usd_maj долларам +usd_maj долларах +usd_maj долларе +usd_maj долларов +usd_maj долларом +usd_maj доллар +usd_maj доллар +usd_maj доллару +usd_maj доллары +usd_maj доллары +usd_min цент +usd_min цент +usd_min цента +usd_min центам +usd_min центами +usd_min центах +usd_min центе +usd_min центов +usd_min центом +usd_min центу +usd_min центы +usd_min центы diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/nominatives.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/nominatives.tsv new file mode 100644 index 000000000..fdfb61038 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/nominatives.tsv @@ -0,0 +1,166 @@ +нуль +ноль +один +два +две +три +четыре +пять +шесть +семь +восемь +девять +десять +одиннадцать +двенадцать +тринадцать +четырнадцать +пятнадцать +шестнадцать +семнадцать +восемнадцать +девятнадцать +двадцать +тридцать +сорок +пятьдесят +шестьдесят +семьдесят +восемьдесят +девяносто +сто +двести +триста +четыреста +пятьсот +шестьсот +семьсот +восемьсот +девятьсот +тысячи +тысяч +тысяча +миллионов +миллион +миллиона +миллиардов +миллиард +миллиарда +первая +первого +первое +первый +вторая +второе +второй +третий +третье +третья +четвертая +четвертое +четвертой +пятая +пятое +пятой +шестая +шестое +шестой +седьмая +седьмое +седьмой +восьмая +восьмое +восьмой +девятая +девятое +девятой +десятая +десятое +десятой +одиннадцатая +одиннадцатое +одиннадцатой +двенадцатая +двенадцатое +двенадцатой +тринадцатая +тринадцатое +тринадцатой +четырнадцатая +четырнадцатое +четырнадцатой +пятнадцатая +пятнадцатое +пятнадцатой +шестнадцатая +шестнадцатое +шестнадцатой +семнадцатая +семнадцатое +семнадцатой +восемнадцатая +восемнадцатое +восемнадцатой +девятнадцатая +девятнадцатое +девятнадцатой +двадцатая +двадцатое +двадцатой +тридцатая +тридцатое +тридцатой +сороковая +сороковое +сороковой +пятидесятая +пятидесятое +пятидесятой +шестидесятая +шестидесятое +шестидесятой +семидесятая +семидесятое +семидесятой +восьмидесятая +восьмидесятое +восьмидесятой +девяностая +девяностое +девяностой +сотая +сотое +сотой +двухсотая +двухсотое +двухсотой +трехсотая +трехсотое +трехсотой +четырехсотая +четырехсотое +четырехсотой +пятисотая +пятисотое +пятисотой +шестисотая +шестисотое +шестисотой +семисотая +семисотое +семисотой +восьмисотая +восьмисотое +восьмисотой +девятисотая +девятисотое +девятисотой +тысячная +тысячное +тысячной +миллионная +миллионное +миллионной +миллиардная +миллиардное +миллиардной diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/number_names.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/number_names.grm new file mode 100644 index 000000000..84ac15a25 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/number_names.grm @@ -0,0 +1,48 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Russian minimally supervised number grammar. +# +# Supports cardinals and ordinals in all inflected forms. +# +# The language-specific acceptor G was compiled with digit, teen, decade, +# century, and big power-of-ten preterminals. The lexicon transducer is +# highly ambiguous, but no LM is used. + +import 'util/arithmetic.grm' as a; + +# Intersects the universal factorization transducer (F) with language-specific +# acceptor (G). + +d = a.DELTA_STAR; +f = a.IARITHMETIC_RESTRICTED; +g = LoadFst['ru/verbalizer/g.fst']; +fg = Optimize[d @ Optimize[f @ Optimize[f @ Optimize[f @ g]]]]; +test1 = AssertEqual["230" @ fg, "(+ 200 30 +)"]; + +# Compiles lexicon transducers (L). + +cardinal_name = StringFile['ru/verbalizer/cardinals.tsv']; +cardinal_l = Optimize[(cardinal_name " ")* cardinal_name]; + +ordinal_name = StringFile['ru/verbalizer/ordinals.tsv']; +ordinal_l = Optimize[(cardinal_name " ")* ordinal_name]; + +# Composes L with the leaf transducer (P), then composes that with FG. + +p = a.LEAVES; + +export CARDINAL_NUMBER_NAME = Optimize[fg @ (p @ cardinal_l)]; + +export ORDINAL_NUMBER_NAME = Optimize[fg @ (p @ ordinal_l)]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers.grm new file mode 100644 index 000000000..b25f1fb67 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers.grm @@ -0,0 +1,68 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'ru/verbalizer/number_names.grm' as n; +import 'universal/thousands_punct.grm' as t; +import 'util/byte.grm' as b; + +nominatives = StringFile['ru/verbalizer/nominatives.tsv']; + +sigma_star = b.kBytes*; + +nominative_filter = + CDRewrite[nominatives ("" : "" <-1>), "[BOS]" | " ", " " | "[EOS]", sigma_star] +; + +cardinal = n.CARDINAL_NUMBER_NAME; +ordinal = n.ORDINAL_NUMBER_NAME; + +# Putting these here since this grammar gets incorporated by all the others. + +func I[expr] { + return "" : expr; +} + +func D[expr] { + return expr : ""; +} + +# Since we know this is the default for Russian, it's fair game to set it. +separators = t.dot_thousands | t.no_delimiter; + +export CARDINAL_NUMBERS = Optimize[ + separators + @ cardinal +]; + +export ORDINAL_NUMBERS_UNMARKED = Optimize[ + separators + @ ordinal +]; + + +endings = StringFile['ru/verbalizer/ordinal_endings.tsv']; + +not_dash = (b.kBytes - "-")+; +del_ending = CDRewrite[("-" not_dash) : "", "", "[EOS]", sigma_star]; + +# Needs nominative_filter here if we take out Kyle's models. +export ORDINAL_NUMBERS_MARKED = Optimize[ + Optimize[Optimize[separators @ ordinal] "-" not_dash] + @ Optimize[sigma_star endings] + @ del_ending] +; + +export ORDINAL_NUMBERS = + Optimize[ORDINAL_NUMBERS_MARKED | ORDINAL_NUMBERS_UNMARKED] +; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers_plus.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers_plus.grm new file mode 100644 index 000000000..dd000b3b9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/numbers_plus.grm @@ -0,0 +1,133 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Grammar for things built mostly on numbers. + +import 'ru/verbalizer/factorization.grm' as f; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +num = n.CARDINAL_NUMBERS; +ord = n.ORDINAL_NUMBERS_UNMARKED; +digits = f.FRACTIONAL_PART_UNGROUPED; + +# Various symbols. + +plus = "+" : "@@ARITHMETIC_PLUS@@"; +minus = "-" : "@@ARITHMETIC_MINUS@@"; +slash = "/" : "@@SLASH@@"; +dot = "." : "@@URL_DOT_EXPRESSION@@"; +dash = "-" : "@@DASH@@"; +equals = "=" : "@@ARITHMETIC_EQUALS@@"; + +degree = "°" : "@@DEGREE@@"; + +division = ("/" | "÷") : "@@ARITHMETIC_DIVISION@@"; + +times = ("x" | "*") : "@@ARITHMETIC_TIMES@@"; + +power = "^" : "@@DECIMAL_EXPONENT@@"; + +square_root = "√" : "@@SQUARE_ROOT@@"; + +percent = "%" : "@@PERCENT@@"; + +# Safe roman numbers. + +# NB: Do not change the formatting here. NO_EDIT must be on the same +# line as the path. +rfile = + 'universal/roman_numerals.tsv' # NO_EDIT +; + +roman = StringFile[rfile]; + +## Main categories. + +cat_dot_number = + num + n.I[" "] dot n.I[" "] num + (n.I[" "] dot n.I[" "] num)+ +; + +cat_slash_number = + num + n.I[" "] slash n.I[" "] num + (n.I[" "] slash n.I[" "] num)* +; + +cat_dash_number = + num + n.I[" "] dash n.I[" "] num + (n.I[" "] dash n.I[" "] num)* +; + +cat_signed_number = ((plus | minus) n.I[" "])? num; + +cat_degree = cat_signed_number n.I[" "] degree; + +cat_country_code = plus n.I[" "] (num | digits); + +cat_math_operations = + plus + | minus + | division + | times + | equals + | percent + | power + | square_root +; + +# Roman numbers are often either cardinals or ordinals in various languages. +cat_roman = roman @ (num | ord); + +# Allow +# +# number:number +# number-number +# +# to just be +# +# number number. + +cat_number_number = + num ((":" | "-") : " ") num +; + +# Some additional readings for these symbols. + +cat_additional_readings = + ("/" : "@@PER@@") | + ("+" : "@@AND@@") | + ("-" : ("@@HYPHEN@@" | "@@CONNECTOR_TO@@")) | + ("*" : "@@STAR@@") | + ("x" : ("x" | "@@CONNECTOR_BY@@")) | + ("@" : "@@AT@@") +; + +numbers_plus = Optimize[ + cat_dot_number + | cat_slash_number + | cat_dash_number + | cat_signed_number + | cat_degree + | cat_country_code + | cat_math_operations + | cat_roman + | cat_number_number + | cat_additional_readings +]; + +export NUMBERS_PLUS = Optimize[numbers_plus @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinal_endings.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinal_endings.tsv new file mode 100644 index 000000000..6db35e26d --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinal_endings.tsv @@ -0,0 +1,39 @@ +ая-ая +ого-го +ьего-го +ьего-его +ьей-ей +ьему-ему +ьем-ем +ое-е +ые-е +ье-е +ий-ий +ьими-ими +ьим-им +ьих-их +ьи-и +ий-й +ой-й +ый-й +ыми-ми +ьими-ми +ому-му +ьему-му +ого-ого +ое-ое +ой-ой +ом-ом +ому-ому +ую-ую +ых-х +ьих-х +ые-ые +ый-ый +ыми-ыми +ым-ым +ых-ых +ую-ю +ью-ю +ая-я +ья-я diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals-lex.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals-lex.grm new file mode 100644 index 000000000..ca4d86d07 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals-lex.grm @@ -0,0 +1,804 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# AUTOMATICALLY GENERATED: DO NOT EDIT. +import 'util/byte.grm' as b; + +# Utilities for insertion and deletion. + +func I[expr] { + return "" : expr; +} + +func D[expr] { + return expr : ""; +} + +# Powers of base 10. +export POWERS = + "[E15]" + | "[E14]" + | "[E13]" + | "[E12]" + | "[E11]" + | "[E10]" + | "[E9]" + | "[E8]" + | "[E7]" + | "[E6]" + | "[E5]" + | "[E4]" + | "[E3]" + | "[E2]" + | "[E1]" +; + +export SIGMA = b.kBytes | POWERS; + +export SIGMA_STAR = SIGMA*; + +export SIGMA_PLUS = SIGMA+; + +################################################################################ +# BEGIN LANGUAGE SPECIFIC DATA +revaluations = + ("[E4]" : "[E1]") + | ("[E5]" : "[E2]") + | ("[E7]" : "[E1]") + | ("[E8]" : "[E2]") +; + +Ms = "[E3]" | "[E6]" | "[E9]"; + + +func Zero[expr] { + return expr : (""); +} + +space = " "; + +lexset3 = Optimize[ + ("1[E1]+1" : "одиннадцатая@") + | ("1[E1]+1" : "одиннадцати") + | ("1[E1]+1" : "одиннадцатого@") + | ("1[E1]+1" : "одиннадцатое@") + | ("1[E1]+1" : "одиннадцатой@") + | ("1[E1]+1" : "одиннадцатом@") + | ("1[E1]+1" : "одиннадцатому@") + | ("1[E1]+1" : "одиннадцатую@") + | ("1[E1]+1" : "одиннадцатые@") + | ("1[E1]+1" : "одиннадцатый@") + | ("1[E1]+1" : "одиннадцатым@") + | ("1[E1]+1" : "одиннадцатыми@") + | ("1[E1]+1" : "одиннадцатых@") + | ("1[E1]+1" : "одиннадцать") + | ("1[E1]+1" : "одиннадцатью") + | ("1[E1]+2" : "двенадцатая@") + | ("1[E1]+2" : "двенадцати") + | ("1[E1]+2" : "двенадцатого@") + | ("1[E1]+2" : "двенадцатое@") + | ("1[E1]+2" : "двенадцатой@") + | ("1[E1]+2" : "двенадцатом@") + | ("1[E1]+2" : "двенадцатому@") + | ("1[E1]+2" : "двенадцатую@") + | ("1[E1]+2" : "двенадцатые@") + | ("1[E1]+2" : "двенадцатый@") + | ("1[E1]+2" : "двенадцатым@") + | ("1[E1]+2" : "двенадцатыми@") + | ("1[E1]+2" : "двенадцатых@") + | ("1[E1]+2" : "двенадцать") + | ("1[E1]+2" : "двенадцатью") + | ("1[E1]+3" : "тринадцатая@") + | ("1[E1]+3" : "тринадцати") + | ("1[E1]+3" : "тринадцатого@") + | ("1[E1]+3" : "тринадцатое@") + | ("1[E1]+3" : "тринадцатой@") + | ("1[E1]+3" : "тринадцатом@") + | ("1[E1]+3" : "тринадцатому@") + | ("1[E1]+3" : "тринадцатую@") + | ("1[E1]+3" : "тринадцатые@") + | ("1[E1]+3" : "тринадцатый@") + | ("1[E1]+3" : "тринадцатым@") + | ("1[E1]+3" : "тринадцатыми@") + | ("1[E1]+3" : "тринадцатых@") + | ("1[E1]+3" : "тринадцать") + | ("1[E1]+3" : "тринадцатью") + | ("1[E1]+4" : "четырнадцатая@") + | ("1[E1]+4" : "четырнадцати") + | ("1[E1]+4" : "четырнадцатого@") + | ("1[E1]+4" : "четырнадцатое@") + | ("1[E1]+4" : "четырнадцатой@") + | ("1[E1]+4" : "четырнадцатом@") + | ("1[E1]+4" : "четырнадцатому@") + | ("1[E1]+4" : "четырнадцатую@") + | ("1[E1]+4" : "четырнадцатые@") + | ("1[E1]+4" : "четырнадцатый@") + | ("1[E1]+4" : "четырнадцатым@") + | ("1[E1]+4" : "четырнадцатыми@") + | ("1[E1]+4" : "четырнадцатых@") + | ("1[E1]+4" : "четырнадцать") + | ("1[E1]+4" : "четырнадцатью") + | ("1[E1]+5" : "пятнадцатая@") + | ("1[E1]+5" : "пятнадцати") + | ("1[E1]+5" : "пятнадцатого@") + | ("1[E1]+5" : "пятнадцатое@") + | ("1[E1]+5" : "пятнадцатой@") + | ("1[E1]+5" : "пятнадцатом@") + | ("1[E1]+5" : "пятнадцатому@") + | ("1[E1]+5" : "пятнадцатую@") + | ("1[E1]+5" : "пятнадцатые@") + | ("1[E1]+5" : "пятнадцатый@") + | ("1[E1]+5" : "пятнадцатым@") + | ("1[E1]+5" : "пятнадцатыми@") + | ("1[E1]+5" : "пятнадцатых@") + | ("1[E1]+5" : "пятнадцать") + | ("1[E1]+5" : "пятнадцатью") + | ("1[E1]+6" : "шестнадцатая@") + | ("1[E1]+6" : "шестнадцати") + | ("1[E1]+6" : "шестнадцатого@") + | ("1[E1]+6" : "шестнадцатое@") + | ("1[E1]+6" : "шестнадцатой@") + | ("1[E1]+6" : "шестнадцатом@") + | ("1[E1]+6" : "шестнадцатому@") + | ("1[E1]+6" : "шестнадцатую@") + | ("1[E1]+6" : "шестнадцатые@") + | ("1[E1]+6" : "шестнадцатый@") + | ("1[E1]+6" : "шестнадцатым@") + | ("1[E1]+6" : "шестнадцатыми@") + | ("1[E1]+6" : "шестнадцатых@") + | ("1[E1]+6" : "шестнадцать") + | ("1[E1]+6" : "шестнадцатью") + | ("1[E1]+7" : "семнадцатая@") + | ("1[E1]+7" : "семнадцати") + | ("1[E1]+7" : "семнадцатого@") + | ("1[E1]+7" : "семнадцатое@") + | ("1[E1]+7" : "семнадцатой@") + | ("1[E1]+7" : "семнадцатом@") + | ("1[E1]+7" : "семнадцатому@") + | ("1[E1]+7" : "семнадцатую@") + | ("1[E1]+7" : "семнадцатые@") + | ("1[E1]+7" : "семнадцатый@") + | ("1[E1]+7" : "семнадцатым@") + | ("1[E1]+7" : "семнадцатыми@") + | ("1[E1]+7" : "семнадцатых@") + | ("1[E1]+7" : "семнадцать") + | ("1[E1]+7" : "семнадцатью") + | ("1[E1]+8" : "восемнадцатая@") + | ("1[E1]+8" : "восемнадцати") + | ("1[E1]+8" : "восемнадцатого@") + | ("1[E1]+8" : "восемнадцатое@") + | ("1[E1]+8" : "восемнадцатой@") + | ("1[E1]+8" : "восемнадцатом@") + | ("1[E1]+8" : "восемнадцатому@") + | ("1[E1]+8" : "восемнадцатую@") + | ("1[E1]+8" : "восемнадцатые@") + | ("1[E1]+8" : "восемнадцатый@") + | ("1[E1]+8" : "восемнадцатым@") + | ("1[E1]+8" : "восемнадцатыми@") + | ("1[E1]+8" : "восемнадцатых@") + | ("1[E1]+8" : "восемнадцать") + | ("1[E1]+8" : "восемнадцатью") + | ("1[E1]+9" : "девятнадцатая@") + | ("1[E1]+9" : "девятнадцати") + | ("1[E1]+9" : "девятнадцатого@") + | ("1[E1]+9" : "девятнадцатое@") + | ("1[E1]+9" : "девятнадцатой@") + | ("1[E1]+9" : "девятнадцатом@") + | ("1[E1]+9" : "девятнадцатому@") + | ("1[E1]+9" : "девятнадцатую@") + | ("1[E1]+9" : "девятнадцатые@") + | ("1[E1]+9" : "девятнадцатый@") + | ("1[E1]+9" : "девятнадцатым@") + | ("1[E1]+9" : "девятнадцатыми@") + | ("1[E1]+9" : "девятнадцатых@") + | ("1[E1]+9" : "девятнадцать") + | ("1[E1]+9" : "девятнадцатью")] +; + +lex3 = CDRewrite[lexset3 I[space], "", "", SIGMA_STAR]; + +lexset2 = Optimize[ + ("1[E1]" : "десятая@") + | ("1[E1]" : "десяти") + | ("1[E1]" : "десятого@") + | ("1[E1]" : "десятое@") + | ("1[E1]" : "десятой@") + | ("1[E1]" : "десятом@") + | ("1[E1]" : "десятому@") + | ("1[E1]" : "десятую@") + | ("1[E1]" : "десятые@") + | ("1[E1]" : "десятый@") + | ("1[E1]" : "десятым@") + | ("1[E1]" : "десятыми@") + | ("1[E1]" : "десятых@") + | ("1[E1]" : "десять") + | ("1[E1]" : "десятью") + | ("1[E2]" : "сотая@") + | ("1[E2]" : "сотого@") + | ("1[E2]" : "сотое@") + | ("1[E2]" : "сотой@") + | ("1[E2]" : "сотом@") + | ("1[E2]" : "сотому@") + | ("1[E2]" : "сотую@") + | ("1[E2]" : "сотые@") + | ("1[E2]" : "сотый@") + | ("1[E2]" : "сотым@") + | ("1[E2]" : "сотыми@") + | ("1[E2]" : "сотых@") + | ("1[E2]" : "ста") + | ("1[E2]" : "сто") + | ("1[E3]" : "тысячная@") + | ("1[E3]" : "тысячного@") + | ("1[E3]" : "тысячное@") + | ("1[E3]" : "тысячной@") + | ("1[E3]" : "тысячном@") + | ("1[E3]" : "тысячному@") + | ("1[E3]" : "тысячную@") + | ("1[E3]" : "тысячные@") + | ("1[E3]" : "тысячный@") + | ("1[E3]" : "тысячным@") + | ("1[E3]" : "тысячными@") + | ("1[E3]" : "тысячных@") + | ("1[E6]" : "миллионная@") + | ("1[E6]" : "миллионного@") + | ("1[E6]" : "миллионное@") + | ("1[E6]" : "миллионной@") + | ("1[E6]" : "миллионном@") + | ("1[E6]" : "миллионному@") + | ("1[E6]" : "миллионную@") + | ("1[E6]" : "миллионные@") + | ("1[E6]" : "миллионный@") + | ("1[E6]" : "миллионным@") + | ("1[E6]" : "миллионными@") + | ("1[E6]" : "миллионных@") + | ("1[E9]" : "миллиардная@") + | ("1[E9]" : "миллиардного@") + | ("1[E9]" : "миллиардное@") + | ("1[E9]" : "миллиардной@") + | ("1[E9]" : "миллиардном@") + | ("1[E9]" : "миллиардному@") + | ("1[E9]" : "миллиардную@") + | ("1[E9]" : "миллиардные@") + | ("1[E9]" : "миллиардный@") + | ("1[E9]" : "миллиардным@") + | ("1[E9]" : "миллиардными@") + | ("1[E9]" : "миллиардных@") + | ("2[E1]" : "двадцатая@") + | ("2[E1]" : "двадцати") + | ("2[E1]" : "двадцатого@") + | ("2[E1]" : "двадцатое@") + | ("2[E1]" : "двадцатой@") + | ("2[E1]" : "двадцатом@") + | ("2[E1]" : "двадцатому@") + | ("2[E1]" : "двадцатую@") + | ("2[E1]" : "двадцатые@") + | ("2[E1]" : "двадцатый@") + | ("2[E1]" : "двадцатым@") + | ("2[E1]" : "двадцатыми@") + | ("2[E1]" : "двадцатых@") + | ("2[E1]" : "двадцать") + | ("2[E1]" : "двадцатью") + | ("2[E2]" : "двести") + | ("2[E2]" : "двумстам") + | ("2[E2]" : "двумястами") + | ("2[E2]" : "двухсот") + | ("2[E2]" : "двухсотая@") + | ("2[E2]" : "двухсотого@") + | ("2[E2]" : "двухсотое@") + | ("2[E2]" : "двухсотой@") + | ("2[E2]" : "двухсотом@") + | ("2[E2]" : "двухсотому@") + | ("2[E2]" : "двухсотую@") + | ("2[E2]" : "двухсотые@") + | ("2[E2]" : "двухсотый@") + | ("2[E2]" : "двухсотым@") + | ("2[E2]" : "двухсотыми@") + | ("2[E2]" : "двухсотых@") + | ("2[E2]" : "двухстах") + | ("3[E1]" : "тридцатая@") + | ("3[E1]" : "тридцати") + | ("3[E1]" : "тридцатого@") + | ("3[E1]" : "тридцатое@") + | ("3[E1]" : "тридцатой@") + | ("3[E1]" : "тридцатом@") + | ("3[E1]" : "тридцатому@") + | ("3[E1]" : "тридцатую@") + | ("3[E1]" : "тридцатые@") + | ("3[E1]" : "тридцатый@") + | ("3[E1]" : "тридцатым@") + | ("3[E1]" : "тридцатыми@") + | ("3[E1]" : "тридцатых@") + | ("3[E1]" : "тридцать") + | ("3[E1]" : "тридцатью") + | ("3[E2]" : "тремстам") + | ("3[E2]" : "тремястами") + | ("3[E2]" : "трехсот") + | ("3[E2]" : "трехсотая@") + | ("3[E2]" : "трехсотого@") + | ("3[E2]" : "трехсотое@") + | ("3[E2]" : "трехсотой@") + | ("3[E2]" : "трехсотом@") + | ("3[E2]" : "трехсотому@") + | ("3[E2]" : "трехсотую@") + | ("3[E2]" : "трехсотые@") + | ("3[E2]" : "трехсотый@") + | ("3[E2]" : "трехсотым@") + | ("3[E2]" : "трехсотыми@") + | ("3[E2]" : "трехсотых@") + | ("3[E2]" : "трехстах") + | ("3[E2]" : "триста") + | ("4[E1]" : "сорок") + | ("4[E1]" : "сорока") + | ("4[E1]" : "сороковая@") + | ("4[E1]" : "сорокового@") + | ("4[E1]" : "сороковое@") + | ("4[E1]" : "сороковой@") + | ("4[E1]" : "сороковом@") + | ("4[E1]" : "сороковому@") + | ("4[E1]" : "сороковую@") + | ("4[E1]" : "сороковые@") + | ("4[E1]" : "сороковым@") + | ("4[E1]" : "сороковыми@") + | ("4[E1]" : "сороковых@") + | ("4[E2]" : "четыремстам") + | ("4[E2]" : "четыреста") + | ("4[E2]" : "четырехсот") + | ("4[E2]" : "четырехсотая@") + | ("4[E2]" : "четырехсотого@") + | ("4[E2]" : "четырехсотое@") + | ("4[E2]" : "четырехсотой@") + | ("4[E2]" : "четырехсотом@") + | ("4[E2]" : "четырехсотому@") + | ("4[E2]" : "четырехсотую@") + | ("4[E2]" : "четырехсотые@") + | ("4[E2]" : "четырехсотый@") + | ("4[E2]" : "четырехсотым@") + | ("4[E2]" : "четырехсотыми@") + | ("4[E2]" : "четырехсотых@") + | ("4[E2]" : "четырехстах") + | ("4[E2]" : "четырьмястами") + | ("5[E1]" : "пятидесятая@") + | ("5[E1]" : "пятидесяти") + | ("5[E1]" : "пятидесятого@") + | ("5[E1]" : "пятидесятое@") + | ("5[E1]" : "пятидесятой@") + | ("5[E1]" : "пятидесятом@") + | ("5[E1]" : "пятидесятому@") + | ("5[E1]" : "пятидесятую@") + | ("5[E1]" : "пятидесятые@") + | ("5[E1]" : "пятидесятый@") + | ("5[E1]" : "пятидесятым@") + | ("5[E1]" : "пятидесятыми@") + | ("5[E1]" : "пятидесятых@") + | ("5[E1]" : "пятьдесят") + | ("5[E1]" : "пятьюдесятью") + | ("5[E2]" : "пятисот") + | ("5[E2]" : "пятисотая@") + | ("5[E2]" : "пятисотого@") + | ("5[E2]" : "пятисотое@") + | ("5[E2]" : "пятисотой@") + | ("5[E2]" : "пятисотом@") + | ("5[E2]" : "пятисотому@") + | ("5[E2]" : "пятисотую@") + | ("5[E2]" : "пятисотые@") + | ("5[E2]" : "пятисотый@") + | ("5[E2]" : "пятисотым@") + | ("5[E2]" : "пятисотыми@") + | ("5[E2]" : "пятисотых@") + | ("5[E2]" : "пятистам") + | ("5[E2]" : "пятистах") + | ("5[E2]" : "пятьсот") + | ("5[E2]" : "пятьюстами") + | ("6[E1]" : "шестидесятая@") + | ("6[E1]" : "шестидесяти") + | ("6[E1]" : "шестидесятого@") + | ("6[E1]" : "шестидесятое@") + | ("6[E1]" : "шестидесятой@") + | ("6[E1]" : "шестидесятом@") + | ("6[E1]" : "шестидесятому@") + | ("6[E1]" : "шестидесятую@") + | ("6[E1]" : "шестидесятые@") + | ("6[E1]" : "шестидесятый@") + | ("6[E1]" : "шестидесятым@") + | ("6[E1]" : "шестидесятыми@") + | ("6[E1]" : "шестидесятых@") + | ("6[E1]" : "шестьдесят") + | ("6[E1]" : "шестьюдесятью") + | ("6[E2]" : "шестисот") + | ("6[E2]" : "шестисотая@") + | ("6[E2]" : "шестисотого@") + | ("6[E2]" : "шестисотое@") + | ("6[E2]" : "шестисотой@") + | ("6[E2]" : "шестисотом@") + | ("6[E2]" : "шестисотому@") + | ("6[E2]" : "шестисотую@") + | ("6[E2]" : "шестисотые@") + | ("6[E2]" : "шестисотый@") + | ("6[E2]" : "шестисотым@") + | ("6[E2]" : "шестисотыми@") + | ("6[E2]" : "шестисотых@") + | ("6[E2]" : "шестистам") + | ("6[E2]" : "шестистах") + | ("6[E2]" : "шестьсот") + | ("6[E2]" : "шестьюстами") + | ("7[E1]" : "семидесятая@") + | ("7[E1]" : "семидесяти") + | ("7[E1]" : "семидесятого@") + | ("7[E1]" : "семидесятое@") + | ("7[E1]" : "семидесятой@") + | ("7[E1]" : "семидесятом@") + | ("7[E1]" : "семидесятому@") + | ("7[E1]" : "семидесятую@") + | ("7[E1]" : "семидесятые@") + | ("7[E1]" : "семидесятый@") + | ("7[E1]" : "семидесятым@") + | ("7[E1]" : "семидесятыми@") + | ("7[E1]" : "семидесятых@") + | ("7[E1]" : "семьдесят") + | ("7[E1]" : "семьюдесятью") + | ("7[E2]" : "семисот") + | ("7[E2]" : "семисотая@") + | ("7[E2]" : "семисотого@") + | ("7[E2]" : "семисотое@") + | ("7[E2]" : "семисотой@") + | ("7[E2]" : "семисотом@") + | ("7[E2]" : "семисотому@") + | ("7[E2]" : "семисотую@") + | ("7[E2]" : "семисотые@") + | ("7[E2]" : "семисотый@") + | ("7[E2]" : "семисотым@") + | ("7[E2]" : "семисотыми@") + | ("7[E2]" : "семисотых@") + | ("7[E2]" : "семистам") + | ("7[E2]" : "семистах") + | ("7[E2]" : "семьсот") + | ("7[E2]" : "семьюстами") + | ("8[E1]" : "восемьдесят") + | ("8[E1]" : "восьмидесятая@") + | ("8[E1]" : "восьмидесяти") + | ("8[E1]" : "восьмидесятого@") + | ("8[E1]" : "восьмидесятое@") + | ("8[E1]" : "восьмидесятой@") + | ("8[E1]" : "восьмидесятом@") + | ("8[E1]" : "восьмидесятому@") + | ("8[E1]" : "восьмидесятую@") + | ("8[E1]" : "восьмидесятые@") + | ("8[E1]" : "восьмидесятый@") + | ("8[E1]" : "восьмидесятым@") + | ("8[E1]" : "восьмидесятыми@") + | ("8[E1]" : "восьмидесятых@") + | ("8[E1]" : "восьмьюдесятью") + | ("8[E2]" : "восемьсот") + | ("8[E2]" : "восемьюстами") + | ("8[E2]" : "восьмисот") + | ("8[E2]" : "восьмисотая@") + | ("8[E2]" : "восьмисотого@") + | ("8[E2]" : "восьмисотое@") + | ("8[E2]" : "восьмисотой@") + | ("8[E2]" : "восьмисотом@") + | ("8[E2]" : "восьмисотому@") + | ("8[E2]" : "восьмисотую@") + | ("8[E2]" : "восьмисотые@") + | ("8[E2]" : "восьмисотый@") + | ("8[E2]" : "восьмисотым@") + | ("8[E2]" : "восьмисотыми@") + | ("8[E2]" : "восьмисотых@") + | ("8[E2]" : "восьмистам") + | ("8[E2]" : "восьмистах") + | ("8[E2]" : "восьмьюстами") + | ("9[E1]" : "девяноста") + | ("9[E1]" : "девяностая@") + | ("9[E1]" : "девяносто") + | ("9[E1]" : "девяностого@") + | ("9[E1]" : "девяностое@") + | ("9[E1]" : "девяностой@") + | ("9[E1]" : "девяностом@") + | ("9[E1]" : "девяностому@") + | ("9[E1]" : "девяностую@") + | ("9[E1]" : "девяностые@") + | ("9[E1]" : "девяностый@") + | ("9[E1]" : "девяностым@") + | ("9[E1]" : "девяностыми@") + | ("9[E1]" : "девяностых@") + | ("9[E2]" : "девятисот") + | ("9[E2]" : "девятисотая@") + | ("9[E2]" : "девятисотого@") + | ("9[E2]" : "девятисотое@") + | ("9[E2]" : "девятисотой@") + | ("9[E2]" : "девятисотом@") + | ("9[E2]" : "девятисотому@") + | ("9[E2]" : "девятисотую@") + | ("9[E2]" : "девятисотые@") + | ("9[E2]" : "девятисотый@") + | ("9[E2]" : "девятисотым@") + | ("9[E2]" : "девятисотыми@") + | ("9[E2]" : "девятисотых@") + | ("9[E2]" : "девятистам") + | ("9[E2]" : "девятистах") + | ("9[E2]" : "девятьсот") + | ("9[E2]" : "девятьюстами")] +; + +lex2 = CDRewrite[lexset2 I[space], "", "", SIGMA_STAR]; + +lexset1 = Optimize[ + ("+" : "") + | ("1" : "один") + | ("1" : "одна") + | ("1" : "одни") + | ("1" : "одним") + | ("1" : "одними") + | ("1" : "одних") + | ("1" : "одно") + | ("1" : "одного") + | ("1" : "одной") + | ("1" : "одном") + | ("1" : "одному") + | ("1" : "одною") + | ("1" : "одну") + | ("1" : "первая@") + | ("1" : "первого@") + | ("1" : "первое@") + | ("1" : "первой@") + | ("1" : "первом@") + | ("1" : "первому@") + | ("1" : "первую@") + | ("1" : "первые@") + | ("1" : "первый@") + | ("1" : "первым@") + | ("1" : "первыми@") + | ("1" : "первых@") + | ("2" : "вторая@") + | ("2" : "второго@") + | ("2" : "второе@") + | ("2" : "второй@") + | ("2" : "втором@") + | ("2" : "второму@") + | ("2" : "вторую@") + | ("2" : "вторые@") + | ("2" : "вторым@") + | ("2" : "вторыми@") + | ("2" : "вторых@") + | ("2" : "два") + | ("2" : "две") + | ("2" : "двум") + | ("2" : "двумя") + | ("2" : "двух") + | ("3" : "трем") + | ("3" : "тремя") + | ("3" : "третий@") + | ("3" : "третье@") + | ("3" : "третьего@") + | ("3" : "третьей@") + | ("3" : "третьем@") + | ("3" : "третьему@") + | ("3" : "третьи@") + | ("3" : "третьим@") + | ("3" : "третьими@") + | ("3" : "третьих@") + | ("3" : "третью@") + | ("3" : "третья@") + | ("3" : "трех") + | ("3" : "три") + | ("4" : "четвертая@") + | ("4" : "четвертого@") + | ("4" : "четвертое@") + | ("4" : "четвертой@") + | ("4" : "четвертом@") + | ("4" : "четвертому@") + | ("4" : "четвертую@") + | ("4" : "четвертые@") + | ("4" : "четвертый@") + | ("4" : "четвертым@") + | ("4" : "четвертыми@") + | ("4" : "четвертых@") + | ("4" : "четыре") + | ("4" : "четырем") + | ("4" : "четырех") + | ("4" : "четырьмя") + | ("5" : "пятая@") + | ("5" : "пяти") + | ("5" : "пятого@") + | ("5" : "пятое@") + | ("5" : "пятой@") + | ("5" : "пятом@") + | ("5" : "пятому@") + | ("5" : "пятую@") + | ("5" : "пятые@") + | ("5" : "пятый@") + | ("5" : "пятым@") + | ("5" : "пятыми@") + | ("5" : "пятых@") + | ("5" : "пять") + | ("5" : "пятью") + | ("6" : "шестая@") + | ("6" : "шести") + | ("6" : "шестого@") + | ("6" : "шестое@") + | ("6" : "шестой@") + | ("6" : "шестом@") + | ("6" : "шестому@") + | ("6" : "шестую@") + | ("6" : "шестые@") + | ("6" : "шестым@") + | ("6" : "шестыми@") + | ("6" : "шестых@") + | ("6" : "шесть") + | ("6" : "шестью") + | ("7" : "седьмая@") + | ("7" : "седьмого@") + | ("7" : "седьмое@") + | ("7" : "седьмой@") + | ("7" : "седьмом@") + | ("7" : "седьмому@") + | ("7" : "седьмую@") + | ("7" : "седьмые@") + | ("7" : "седьмым@") + | ("7" : "седьмыми@") + | ("7" : "седьмых@") + | ("7" : "семи") + | ("7" : "семь") + | ("7" : "семью") + | ("8" : "восемь") + | ("8" : "восьмая@") + | ("8" : "восьми") + | ("8" : "восьмого@") + | ("8" : "восьмое@") + | ("8" : "восьмой@") + | ("8" : "восьмом@") + | ("8" : "восьмому@") + | ("8" : "восьмую@") + | ("8" : "восьмые@") + | ("8" : "восьмым@") + | ("8" : "восьмыми@") + | ("8" : "восьмых@") + | ("8" : "восьмью") + | ("9" : "девятая@") + | ("9" : "девяти") + | ("9" : "девятого@") + | ("9" : "девятое@") + | ("9" : "девятой@") + | ("9" : "девятом@") + | ("9" : "девятому@") + | ("9" : "девятую@") + | ("9" : "девятые@") + | ("9" : "девятый@") + | ("9" : "девятым@") + | ("9" : "девятыми@") + | ("9" : "девятых@") + | ("9" : "девять") + | ("9" : "девятью") + | ("[E3]" : "тысяч") + | ("[E3]" : "тысяча") + | ("[E3]" : "тысячам") + | ("[E3]" : "тысячами") + | ("[E3]" : "тысячах") + | ("[E3]" : "тысяче") + | ("[E3]" : "тысячей") + | ("[E3]" : "тысячи") + | ("[E3]" : "тысячу") + | ("[E3]" : "тысячью") + | ("[E6]" : "миллион") + | ("[E6]" : "миллиона") + | ("[E6]" : "миллионам") + | ("[E6]" : "миллионами") + | ("[E6]" : "миллионах") + | ("[E6]" : "миллионе") + | ("[E6]" : "миллионов") + | ("[E6]" : "миллионом") + | ("[E6]" : "миллиону") + | ("[E6]" : "миллионы") + | ("[E9]" : "миллиард") + | ("[E9]" : "миллиарда") + | ("[E9]" : "миллиардам") + | ("[E9]" : "миллиардами") + | ("[E9]" : "миллиардах") + | ("[E9]" : "миллиарде") + | ("[E9]" : "миллиардов") + | ("[E9]" : "миллиардом") + | ("[E9]" : "миллиарду") + | ("[E9]" : "миллиарды") + | ("|0|" : "ноле") + | ("|0|" : "нолем") + | ("|0|" : "ноль") + | ("|0|" : "нолю") + | ("|0|" : "ноля") + | ("|0|" : "нуле") + | ("|0|" : "нулем") + | ("|0|" : "нуль") + | ("|0|" : "нулю") + | ("|0|" : "нуля")] +; + +lex1 = CDRewrite[lexset1 I[space], "", "", SIGMA_STAR]; + +export LEX = Optimize[lex3 @ lex2 @ lex1]; + +export INDEPENDENT_EXPONENTS = "[E3]" | "[E6]" | "[E9]"; + +# END LANGUAGE SPECIFIC DATA +################################################################################ +# Inserts a marker after the Ms. +export INSERT_BOUNDARY = CDRewrite["" : "%", Ms, "", SIGMA_STAR]; + +# Deletes all powers and "+". +export DELETE_POWERS = CDRewrite[D[POWERS | "+"], "", "", SIGMA_STAR]; + +# Deletes trailing zeros at the beginning of a number, so that "0003" does not +# get treated as an ordinary number. +export DELETE_INITIAL_ZEROS = + CDRewrite[("0" POWERS "+") : "", "[BOS]", "", SIGMA_STAR] +; + +NonMs = Optimize[POWERS - Ms]; + +# Deletes (usually) zeros before a non-M. E.g., +0[E1] should be +# deleted +export DELETE_INTERMEDIATE_ZEROS1 = + CDRewrite[Zero["+0" NonMs], "", "", SIGMA_STAR] +; + +# Deletes (usually) zeros before an M, if there is no non-zero element between +# that and the previous boundary. Thus, if after the result of the rule above we +# end up with "%+0[E3]", then that gets deleted. Also (really) deletes a final +# zero. +export DELETE_INTERMEDIATE_ZEROS2 = Optimize[ + CDRewrite[Zero["%+0" Ms], "", "", SIGMA_STAR] + @ CDRewrite[D["+0"], "", "[EOS]", SIGMA_STAR]] +; + +# Final clean up of stray zeros. +export DELETE_REMAINING_ZEROS = Optimize[ + CDRewrite[Zero["+0"], "", "", SIGMA_STAR] + @ CDRewrite[Zero["0"], "", "", SIGMA_STAR]] +; + +# Applies the revaluation map. For example in English, change [E4] to [E1] as a +# modifier of [E3] +export REVALUE = CDRewrite[revaluations, "", "", SIGMA_STAR]; + +# Deletes the various marks and powers in the input and output. +export DELETE_MARKS = CDRewrite[D["%" | "+" | POWERS], "", "", SIGMA_STAR]; + +export CLEAN_SPACES = Optimize[ + CDRewrite[" "+ : " ", b.kNotSpace, b.kNotSpace, SIGMA_STAR] + @ CDRewrite[" "* : "", "[BOS]", "", SIGMA_STAR] + @ CDRewrite[" "* : "", "", "[EOS]", SIGMA_STAR]] +; + +d = b.kDigit; + +# Germanic inversion rule. +germanic = + (I["1+"] d "[E1]" D["+1"]) + | (I["2+"] d "[E1]" D["+2"]) + | (I["3+"] d "[E1]" D["+3"]) + | (I["4+"] d "[E1]" D["+4"]) + | (I["5+"] d "[E1]" D["+5"]) + | (I["6+"] d "[E1]" D["+6"]) + | (I["7+"] d "[E1]" D["+7"]) + | (I["8+"] d "[E1]" D["+8"]) + | (I["9+"] d "[E1]" D["+9"]) +; + +germanic_inversion = + CDRewrite[germanic, "", "", SIGMA_STAR, 'ltr', 'opt'] +; + +export GERMANIC_INVERSION = SIGMA_STAR; +export ORDINAL_RESTRICTION = + Optimize[((SIGMA - "@")* "@") @ CDRewrite[D["@"], "", "", SIGMA_STAR]] +; +nondigits = b.kBytes - b.kDigit; +export ORDINAL_SUFFIX = D[nondigits*]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals.tsv b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals.tsv new file mode 100644 index 000000000..367e14b11 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/ordinals.tsv @@ -0,0 +1,527 @@ +0 нулевая +0 нулевого +0 нулевое +0 нулевой +0 нулевом +0 нулевому +0 нулевую +0 нулевые +0 нулевым +0 нулевым +0 нулевыми +0 нулевых +1 первая +1 первого +1 первое +1 первой +1 первом +1 первому +1 первую +1 первые +1 первый +1 первым +1 первым +1 первыми +1 первых +2 вторая +2 второго +2 второе +2 второй +2 втором +2 второму +2 вторую +2 вторые +2 вторым +2 вторым +2 вторыми +2 вторых +3 третий +3 третье +3 третьего +3 третьей +3 третьем +3 третьему +3 третьи +3 третьим +3 третьим +3 третьими +3 третьих +3 третью +3 третья +4 четвертая +4 четвертого +4 четвертое +4 четвертой +4 четвертом +4 четвертому +4 четвертую +4 четвертые +4 четвертый +4 четвертым +4 четвертым +4 четвертыми +4 четвертых +4 четвёртая +4 четвёртого +4 четвёртое +4 четвёртой +4 четвёртом +4 четвёртому +4 четвёртую +4 четвёртые +4 четвёртый +4 четвёртым +4 четвёртым +4 четвёртыми +4 четвёртых +5 пятая +5 пятого +5 пятое +5 пятой +5 пятом +5 пятому +5 пятую +5 пятые +5 пятый +5 пятым +5 пятым +5 пятыми +5 пятых +6 шестая +6 шестого +6 шестое +6 шестой +6 шестом +6 шестому +6 шестую +6 шестые +6 шестым +6 шестым +6 шестыми +6 шестых +7 седьмая +7 седьмого +7 седьмое +7 седьмой +7 седьмом +7 седьмому +7 седьмую +7 седьмые +7 седьмым +7 седьмым +7 седьмыми +7 седьмых +8 восьмая +8 восьмого +8 восьмое +8 восьмой +8 восьмом +8 восьмому +8 восьмую +8 восьмые +8 восьмым +8 восьмым +8 восьмыми +8 восьмых +9 девятая +9 девятого +9 девятое +9 девятой +9 девятом +9 девятому +9 девятую +9 девятые +9 девятый +9 девятым +9 девятым +9 девятыми +9 девятых +10 десятая +10 десятого +10 десятое +10 десятой +10 десятом +10 десятому +10 десятую +10 десятые +10 десятый +10 десятым +10 десятым +10 десятыми +10 десятых +11 одиннадцатая +11 одиннадцатого +11 одиннадцатое +11 одиннадцатой +11 одиннадцатом +11 одиннадцатому +11 одиннадцатую +11 одиннадцатые +11 одиннадцатый +11 одиннадцатым +11 одиннадцатым +11 одиннадцатыми +11 одиннадцатых +12 двенадцатая +12 двенадцатого +12 двенадцатое +12 двенадцатой +12 двенадцатом +12 двенадцатому +12 двенадцатую +12 двенадцатые +12 двенадцатый +12 двенадцатым +12 двенадцатым +12 двенадцатыми +12 двенадцатых +13 тринадцатая +13 тринадцатого +13 тринадцатое +13 тринадцатой +13 тринадцатом +13 тринадцатому +13 тринадцатую +13 тринадцатые +13 тринадцатый +13 тринадцатым +13 тринадцатым +13 тринадцатыми +13 тринадцатых +14 четырнадцатая +14 четырнадцатого +14 четырнадцатое +14 четырнадцатой +14 четырнадцатом +14 четырнадцатому +14 четырнадцатую +14 четырнадцатые +14 четырнадцатый +14 четырнадцатым +14 четырнадцатым +14 четырнадцатыми +14 четырнадцатых +15 пятнадцатая +15 пятнадцатого +15 пятнадцатое +15 пятнадцатой +15 пятнадцатом +15 пятнадцатому +15 пятнадцатую +15 пятнадцатые +15 пятнадцатый +15 пятнадцатым +15 пятнадцатым +15 пятнадцатыми +15 пятнадцатых +16 шестнадцатая +16 шестнадцатого +16 шестнадцатое +16 шестнадцатой +16 шестнадцатом +16 шестнадцатому +16 шестнадцатую +16 шестнадцатые +16 шестнадцатый +16 шестнадцатым +16 шестнадцатым +16 шестнадцатыми +16 шестнадцатых +17 семнадцатая +17 семнадцатого +17 семнадцатое +17 семнадцатой +17 семнадцатом +17 семнадцатому +17 семнадцатую +17 семнадцатые +17 семнадцатый +17 семнадцатым +17 семнадцатым +17 семнадцатыми +17 семнадцатых +18 восемнадцатая +18 восемнадцатого +18 восемнадцатое +18 восемнадцатой +18 восемнадцатом +18 восемнадцатому +18 восемнадцатую +18 восемнадцатые +18 восемнадцатый +18 восемнадцатым +18 восемнадцатым +18 восемнадцатыми +18 восемнадцатых +19 девятнадцатая +19 девятнадцатого +19 девятнадцатое +19 девятнадцатой +19 девятнадцатом +19 девятнадцатому +19 девятнадцатую +19 девятнадцатые +19 девятнадцатый +19 девятнадцатым +19 девятнадцатым +19 девятнадцатыми +19 девятнадцатых +20 двадцатая +20 двадцатого +20 двадцатое +20 двадцатой +20 двадцатом +20 двадцатому +20 двадцатую +20 двадцатые +20 двадцатый +20 двадцатым +20 двадцатым +20 двадцатыми +20 двадцатых +30 тридцатая +30 тридцатого +30 тридцатое +30 тридцатой +30 тридцатом +30 тридцатому +30 тридцатую +30 тридцатые +30 тридцатый +30 тридцатым +30 тридцатым +30 тридцатыми +30 тридцатых +40 сороковая +40 сорокового +40 сороковое +40 сороковой +40 сороковом +40 сороковому +40 сороковую +40 сороковые +40 сороковым +40 сороковым +40 сороковыми +40 сороковых +50 пятидесятая +50 пятидесятого +50 пятидесятое +50 пятидесятой +50 пятидесятом +50 пятидесятому +50 пятидесятую +50 пятидесятые +50 пятидесятый +50 пятидесятым +50 пятидесятым +50 пятидесятыми +50 пятидесятых +60 шестидесятая +60 шестидесятого +60 шестидесятое +60 шестидесятой +60 шестидесятом +60 шестидесятому +60 шестидесятую +60 шестидесятые +60 шестидесятый +60 шестидесятым +60 шестидесятым +60 шестидесятыми +60 шестидесятых +70 семидесятая +70 семидесятого +70 семидесятое +70 семидесятой +70 семидесятом +70 семидесятому +70 семидесятую +70 семидесятые +70 семидесятый +70 семидесятым +70 семидесятым +70 семидесятыми +70 семидесятых +80 восьмидесятая +80 восьмидесятого +80 восьмидесятое +80 восьмидесятой +80 восьмидесятом +80 восьмидесятому +80 восьмидесятую +80 восьмидесятые +80 восьмидесятый +80 восьмидесятым +80 восьмидесятым +80 восьмидесятыми +80 восьмидесятых +90 девяностая +90 девяностого +90 девяностое +90 девяностой +90 девяностом +90 девяностому +90 девяностую +90 девяностые +90 девяностый +90 девяностым +90 девяностым +90 девяностыми +90 девяностых +100 сотая +100 сотого +100 сотое +100 сотой +100 сотом +100 сотому +100 сотую +100 сотые +100 сотый +100 сотым +100 сотым +100 сотыми +100 сотых +200 двухсотая +200 двухсотого +200 двухсотое +200 двухсотой +200 двухсотом +200 двухсотому +200 двухсотую +200 двухсотые +200 двухсотый +200 двухсотым +200 двухсотым +200 двухсотыми +200 двухсотых +300 трехсотая +300 трехсотого +300 трехсотое +300 трехсотой +300 трехсотом +300 трехсотому +300 трехсотую +300 трехсотые +300 трехсотый +300 трехсотым +300 трехсотым +300 трехсотыми +300 трехсотых +400 четырехсотая +400 четырехсотого +400 четырехсотое +400 четырехсотой +400 четырехсотом +400 четырехсотому +400 четырехсотую +400 четырехсотые +400 четырехсотый +400 четырехсотым +400 четырехсотым +400 четырехсотыми +400 четырехсотых +500 пятисотая +500 пятисотого +500 пятисотое +500 пятисотой +500 пятисотом +500 пятисотому +500 пятисотую +500 пятисотые +500 пятисотый +500 пятисотым +500 пятисотым +500 пятисотыми +500 пятисотых +600 шестисотая +600 шестисотого +600 шестисотое +600 шестисотой +600 шестисотом +600 шестисотому +600 шестисотую +600 шестисотые +600 шестисотый +600 шестисотым +600 шестисотым +600 шестисотыми +600 шестисотых +700 семисотая +700 семисотого +700 семисотое +700 семисотой +700 семисотом +700 семисотому +700 семисотую +700 семисотые +700 семисотый +700 семисотым +700 семисотым +700 семисотыми +700 семисотых +800 восьмисотая +800 восьмисотого +800 восьмисотое +800 восьмисотой +800 восьмисотом +800 восьмисотому +800 восьмисотую +800 восьмисотые +800 восьмисотый +800 восьмисотым +800 восьмисотым +800 восьмисотыми +800 восьмисотых +900 девятисотая +900 девятисотого +900 девятисотое +900 девятисотой +900 девятисотом +900 девятисотому +900 девятисотую +900 девятисотые +900 девятисотый +900 девятисотым +900 девятисотым +900 девятисотыми +900 девятисотых +1000 тысячная +1000 тысячного +1000 тысячное +1000 тысячной +1000 тысячном +1000 тысячному +1000 тысячную +1000 тысячные +1000 тысячный +1000 тысячным +1000 тысячным +1000 тысячными +1000 тысячных +1000000 миллионная +1000000 миллионного +1000000 миллионное +1000000 миллионной +1000000 миллионном +1000000 миллионному +1000000 миллионную +1000000 миллионные +1000000 миллионный +1000000 миллионным +1000000 миллионным +1000000 миллионными +1000000 миллионных +1000000000 миллиардная +1000000000 миллиардного +1000000000 миллиардное +1000000000 миллиардной +1000000000 миллиардном +1000000000 миллиардному +1000000000 миллиардную +1000000000 миллиардные +1000000000 миллиардный +1000000000 миллиардным +1000000000 миллиардным +1000000000 миллиардными +1000000000 миллиардных diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spelled.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spelled.grm new file mode 100644 index 000000000..123759ba9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spelled.grm @@ -0,0 +1,77 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This verbalizer is used whenever there is an LM symbol that consists of +# letters immediately followed by "{spelled}". This strips the "{spelled}" +# suffix. + +import 'util/byte.grm' as b; +import 'ru/classifier/cyrillic.grm' as c; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +digit = b.kDigit @ n.CARDINAL_NUMBERS; + +char_set = (("a" | "A") : "letter-a") + | (("b" | "B") : "letter-b") + | (("c" | "C") : "letter-c") + | (("d" | "D") : "letter-d") + | (("e" | "E") : "letter-e") + | (("f" | "F") : "letter-f") + | (("g" | "G") : "letter-g") + | (("h" | "H") : "letter-h") + | (("i" | "I") : "letter-i") + | (("j" | "J") : "letter-j") + | (("k" | "K") : "letter-k") + | (("l" | "L") : "letter-l") + | (("m" | "M") : "letter-m") + | (("n" | "N") : "letter-n") + | (("o" | "O") : "letter-o") + | (("p" | "P") : "letter-p") + | (("q" | "Q") : "letter-q") + | (("r" | "R") : "letter-r") + | (("s" | "S") : "letter-s") + | (("t" | "T") : "letter-t") + | (("u" | "U") : "letter-u") + | (("v" | "V") : "letter-v") + | (("w" | "W") : "letter-w") + | (("x" | "X") : "letter-x") + | (("y" | "Y") : "letter-y") + | (("z" | "Z") : "letter-z") + | (digit) + | ("&" : "@@AND@@") + | ("." : "") + | ("-" : "") + | ("_" : "") + | ("/" : "") + | (n.I["letter-"] c.kCyrillicAlpha) + ; + +ins_space = "" : " "; + +suffix = "{spelled}" : ""; + +spelled = Optimize[char_set (ins_space char_set)* suffix]; + +export SPELLED = Optimize[spelled @ l.LEXICAL_MAP]; + +sigma_star = b.kBytes*; + +# Gets rid of the letter- prefix since in some cases we don't want it. + +del_letter = CDRewrite[n.D["letter-"], "", "", sigma_star]; + +spelled_no_tag = Optimize[char_set (ins_space char_set)*]; + +export SPELLED_NO_LETTER = Optimize[spelled_no_tag @ del_letter]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spoken_punct.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spoken_punct.grm new file mode 100644 index 000000000..26a1bf27f --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/spoken_punct.grm @@ -0,0 +1,24 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'ru/verbalizer/lexical_map.grm' as l; + +punct = + ("." : "@@PERIOD@@") + | ("," : "@@COMMA@@") + | ("!" : "@@EXCLAMATION_MARK@@") + | ("?" : "@@QUESTION_MARK@@") +; + +export SPOKEN_PUNCT = Optimize[punct @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/time.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/time.grm new file mode 100644 index 000000000..a416aba7d --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/time.grm @@ -0,0 +1,108 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/byte.grm' as b; +import 'ru/verbalizer/lexical_map.grm' as l; +import 'ru/verbalizer/numbers.grm' as n; + +# Only handles 24-hour time with quarter-to, half-past and quarter-past. + +increment_hour = + ("0" : "1") + | ("1" : "2") + | ("2" : "3") + | ("3" : "4") + | ("4" : "5") + | ("5" : "6") + | ("6" : "7") + | ("7" : "8") + | ("8" : "9") + | ("9" : "10") + | ("10" : "11") + | ("11" : "12") + | ("12" : "1") # If someone uses 12, we assume 12-hour by default. + | ("13" : "14") + | ("14" : "15") + | ("15" : "16") + | ("16" : "17") + | ("17" : "18") + | ("18" : "19") + | ("19" : "20") + | ("20" : "21") + | ("21" : "22") + | ("22" : "23") + | ("23" : "12") +; + +hours = Project[increment_hour, 'input']; + +d = b.kDigit; +D = d - "0"; + +minutes09 = "0" D; + +minutes = ("1" | "2" | "3" | "4" | "5") d; + +__sep__ = ":"; +sep_space = __sep__ : " "; + +verbalize_hours = hours @ n.CARDINAL_NUMBERS; + +verbalize_minutes = + ("00" : "@@HOUR@@") + | (minutes09 @ (("0" : "@@TIME_ZERO@@") n.I[" "] n.CARDINAL_NUMBERS)) + | (minutes @ n.CARDINAL_NUMBERS) +; + +time_basic = Optimize[verbalize_hours sep_space verbalize_minutes]; + +# Special cases we handle right now. +# TODO: Need to allow for cases like +# +# half twelve (in the UK English sense) +# half twaalf (in the Dutch sense) + +time_quarter_past = + n.I["@@TIME_QUARTER@@ @@TIME_AFTER@@ "] + verbalize_hours + n.D[__sep__ "15"]; + +time_half_past = + n.I["@@TIME_HALF@@ @@TIME_AFTER@@ "] + verbalize_hours + n.D[__sep__ "30"]; + +time_quarter_to = + n.I["@@TIME_QUARTER@@ @@TIME_BEFORE@@ "] + (increment_hour @ verbalize_hours) + n.D[__sep__ "45"]; + +time_extra = Optimize[ + time_quarter_past | time_half_past | time_quarter_to] +; + +# Basic time periods which most languages can be expected to have. +__am__ = "a.m." | "am" | "AM" | "утра"; +__pm__ = "p.m." | "pm" | "PM" | "вечера"; + +period = (__am__ : "@@TIME_AM@@") | (__pm__ : "@@TIME_PM@@"); + +time_variants = time_basic | time_extra; + +time = Optimize[ + (period (" " | n.I[" "]))? time_variants + | time_variants ((" " | n.I[" "]) period)?] +; + +export TIME = Optimize[time @ l.LEXICAL_MAP]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/urls.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/urls.grm new file mode 100644 index 000000000..3039b6521 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/urls.grm @@ -0,0 +1,68 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Rules for URLs and email addresses. + +import 'util/byte.grm' as bytelib; +import 'ru/verbalizer/lexical_map.grm' as l; + +ins_space = "" : " "; +dot = "." : "@@URL_DOT_EXPRESSION@@"; +at = "@" : "@@AT@@"; + +url_suffix = + (".com" : dot ins_space "com") | + (".gov" : dot ins_space "gov") | + (".edu" : dot ins_space "e d u") | + (".org" : dot ins_space "org") | + (".net" : dot ins_space "net") +; + +letter_string = (bytelib.kAlnum)* bytelib.kAlnum; + +letter_string_dot = + ((letter_string ins_space dot ins_space)* letter_string) +; + +# Rules for URLs. +export URL = Optimize[ + ((letter_string_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +# Rules for email addresses. +letter_by_letter = ((bytelib.kAlnum ins_space)* bytelib.kAlnum); + +letter_by_letter_dot = + ((letter_by_letter ins_space dot ins_space)* + letter_by_letter) +; + +export EMAIL1 = Optimize[ + ((letter_by_letter) (ins_space) + (at) (ins_space) + (letter_by_letter_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +export EMAIL2 = Optimize[ + ((letter_by_letter) (ins_space) + (at) (ins_space) + (letter_string_dot) (ins_space) + (url_suffix)) @ l.LEXICAL_MAP +]; + +export EMAILS = Optimize[ + EMAIL1 | EMAIL2 +]; diff --git a/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/verbalizer.grm b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/verbalizer.grm new file mode 100644 index 000000000..ddd469685 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/ru/verbalizer/verbalizer.grm @@ -0,0 +1,42 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import 'util/util.grm' as util; +import 'ru/verbalizer/extra_numbers.grm' as e; +import 'ru/verbalizer/float.grm' as f; +import 'ru/verbalizer/math.grm' as ma; +import 'ru/verbalizer/miscellaneous.grm' as mi; +import 'ru/verbalizer/money.grm' as mo; +import 'ru/verbalizer/numbers.grm' as n; +import 'ru/verbalizer/numbers_plus.grm' as np; +import 'ru/verbalizer/spelled.grm' as s; +import 'ru/verbalizer/spoken_punct.grm' as sp; +import 'ru/verbalizer/time.grm' as t; +import 'ru/verbalizer/urls.grm' as u; + +export VERBALIZER = Optimize[RmWeight[ + ( e.MIXED_NUMBERS + | e.DIGITS + | f.FLOAT + | ma.ARITHMETIC + | mi.MISCELLANEOUS + | mo.MONEY + | n.CARDINAL_NUMBERS + | n.ORDINAL_NUMBERS + | np.NUMBERS_PLUS + | s.SPELLED + | sp.SPOKEN_PUNCT + | t.TIME + | u.URL) @ util.CLEAN_SPACES +]]; diff --git a/third_party/chinese_text_normalization/thrax/src/universal/README.md b/third_party/chinese_text_normalization/thrax/src/universal/README.md new file mode 100644 index 000000000..33225f6da --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/universal/README.md @@ -0,0 +1,3 @@ +# Language-universal grammar definitions + +This directory contains various language-universal grammar definitions. diff --git a/third_party/chinese_text_normalization/thrax/src/universal/roman_numerals.tsv b/third_party/chinese_text_normalization/thrax/src/universal/roman_numerals.tsv new file mode 100644 index 000000000..98a8d97d9 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/universal/roman_numerals.tsv @@ -0,0 +1,91 @@ +i 1 +ii 2 +iii 3 +iv 4 +v 5 +vi 6 +vii 7 +viii 8 +ix 9 +x 10 +xi 11 +xii 12 +xiii 13 +xiv 14 +xv 15 +xvi 16 +xvii 17 +xviii 18 +xix 19 +xx 20 +xxi 21 +xxii 22 +xxiii 23 +xxiv 24 +xxv 25 +xxvi 26 +xxvii 27 +xxviii 28 +xxix 29 +xxx 30 +xxxi 31 +xxxii 32 +xxxiii 33 +xxxiv 34 +xxxv 35 +xxxvi 36 +xxxvii 37 +xxxviii 38 +xxxix 39 +xl 40 +xli 41 +xlii 42 +xliii 43 +xliv 44 +xlv 45 +xlvi 46 +xlvii 47 +xlviii 48 +xlix 49 +mcmxciv 1994 +mcmxcv 1995 +mcmxcvi 1996 +mcmxcvii 1997 +mcmxcviii 1998 +mcmxcix 1999 +mm 2000 +mmi 2001 +mmii 2002 +mmiii 2003 +mmiv 2004 +mmv 2005 +mmvi 2006 +mmvii 2007 +mmviii 2008 +mmix 2009 +mmx 2010 +mmxi 2011 +mmxii 2012 +mmxiii 2013 +mmxiv 2014 +mmxv 2015 +mmxvi 2016 +mmxvii 2017 +mmxviii 2018 +mmxix 2019 +mmxx 2020 +mmxxi 2021 +mmxxii 2022 +mmxxiii 2023 +mmxxiv 2024 +mmxxv 2025 +mmxxvi 2026 +mmxxvii 2027 +mmxxviii 2028 +mmxxix 2029 +mmxxx 2030 +mmxxxi 2031 +mmxxxii 2032 +mmxxxiii 2033 +mmxxxiv 2034 +mmxxxv 2035 diff --git a/third_party/chinese_text_normalization/thrax/src/universal/thousands_punct.grm b/third_party/chinese_text_normalization/thrax/src/universal/thousands_punct.grm new file mode 100644 index 000000000..90ce4a115 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/universal/thousands_punct.grm @@ -0,0 +1,126 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Specifies common ways of delimiting thousands in digit strings. + +import 'util/byte.grm' as bytelib; +import 'util/util.grm' as util; + +killcomma = "," : ""; +dot2comma = "." : ","; +spaces2comma = " "+ : ","; + +zero = "0"; + +# no_delimiter = zero | "[1-9][0-9]*"; +export no_delimiter = zero | (util.d1to9 bytelib.kDigit*); + +# delim_map_dot = ("[0-9]" | ("\." : ","))*; +delim_map_dot = (bytelib.kDigit | dot2comma)*; + +# delim_map_space = ("[0-9]" | (" +" : ","))*; +delim_map_space = (bytelib.kDigit | spaces2comma)*; + +## Western systems group thousands. Korean goes this way too. + +# comma_thousands = zero | ("[1-9][0-9]?[0-9]?" (("," : "") "[0-9][0-9][0-9]")*); +export comma_thousands = zero | (util.d1to9 bytelib.kDigit{0,2} (killcomma bytelib.kDigit{3})*); + +# ComposeFst: 1st argument cannot match on output labels and 2nd argument +# cannot match on input labels (sort?). +export dot_thousands = delim_map_dot @ comma_thousands; + +# ComposeFst: 1st argument cannot match on output labels and 2nd argument +# cannot match on input labels (sort?). +export space_thousands = delim_map_space @ comma_thousands; + +## Chinese prefers grouping by fours (by ten-thousands). + +# chinese_comma = +# zero | ("[1-9][0-9]?[0-9]?[0-9]?" (("," : "") "[0-9][0-9][0-9][0-9]")*); +export chinese_comma = zero | (util.d1to9 (bytelib.kDigit{0,3}) (killcomma bytelib.kDigit{4})*); + +## The Indian system is more complex because of the Stravinskian alternation +## between lakhs and crores. +## +## According to Wikipedia: +## +## Indian English Value +## One 1 +## Ten 10 +## Hundred 100 +## Thousand 1,000 +## Lakh 1,00,000 +## Crore 1,00,00,000 +## Arab 1,00,00,00,000 +## Kharab 1,00,00,00,00,000 + +# indian_hundreds = "[1-9][0-9]?[0-9]?"; +indian_hundreds = util.d1to9 bytelib.kDigit{0,2}; + +## Up to 99,999. + +# indian_comma_thousands = "[1-9][0-9]?" ("," : "") "[0-9][0-9][0-9]"; +indian_comma_thousands = util.d1to9 bytelib.kDigit? killcomma bytelib.kDigit{3}; + +## Up to 99,99,999. + +# indian_comma_lakhs = "[1-9][0-9]?" ("," : "") "[0-9][0-9]" ("," : "") "[0-9][0-9][0-9]"; +indian_comma_lakhs = util.d1to9 bytelib.kDigit? killcomma bytelib.kDigit{2} killcomma bytelib.kDigit{3}; + +## Up to 999,99,99,999 + +indian_comma_crores = + util.d1to9 bytelib.kDigit? bytelib.kDigit? killcomma + (bytelib.kDigit{2} killcomma)? + bytelib.kDigit{2} killcomma + bytelib.kDigit{3} +; + +## Up to 99,999,99,99,999. + +indian_comma_thousand_crores = + util.d1to9 bytelib.kDigit? killcomma + bytelib.kDigit{3} killcomma + bytelib.kDigit{2} killcomma + bytelib.kDigit{2} killcomma + bytelib.kDigit{3} +; + +## Up to 999,99,999,99,99,999. + +indian_comma_lakh_crores = + util.d1to9 bytelib.kDigit? bytelib.kDigit? killcomma + bytelib.kDigit{2} killcomma + bytelib.kDigit{3} killcomma + bytelib.kDigit{2} killcomma + bytelib.kDigit{2} killcomma + bytelib.kDigit{3} +; + +export indian_comma = + zero + | indian_hundreds + | indian_comma_thousands + | indian_comma_lakhs + | indian_comma_crores + | indian_comma_thousand_crores + | indian_comma_lakh_crores +; + +# Indian number system with dots. +export indian_dot_number = delim_map_dot @ indian_comma; + +# Indian number system with spaces. +export indian_space_number = delim_map_space @ indian_comma; diff --git a/third_party/chinese_text_normalization/thrax/src/util/README.md b/third_party/chinese_text_normalization/thrax/src/util/README.md new file mode 100644 index 000000000..9df3c8035 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/README.md @@ -0,0 +1,3 @@ +# Utility grammar definitions + +This directory contains various utility grammar definitions. diff --git a/third_party/chinese_text_normalization/thrax/src/util/arithmetic.grm b/third_party/chinese_text_normalization/thrax/src/util/arithmetic.grm new file mode 100644 index 000000000..b1396db8d --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/arithmetic.grm @@ -0,0 +1,326 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Basic arithmetic on S-expressions. Exported arithmetic transducers may either: +# +# * Support weak vigesimal addition and multiplication... +# +# (+ 20 17 +) -> 37 +# (+ 20 10 7 +) -> 37 +# (* 4 20 *) -> 80 +# +# ...or not. +# +# * Support "Germanic decade flop" addition.... +# +# (+ 8 20 +) -> 28 +# (+ 4 60 +) -> 64 +# +# ...or not. +# +# * Support multiplication where the left-hand side multiplicand is of a higher +# order than the right-hand side multiplicand. +# +# (* 1000 100) -> 100000 +# +# ...or not. +# +# However, modulo these exceptions, arithmetic transducers do not support +# addition that requires "carrying", or multiplication where the right-hand +# side multiplicand is not a power of ten. So this is not a *generic* +# S-expression evaluator. +# +# LEAVES is a transducer that accepts symbols in delta but deletes symbols +# in sigma - delta. So it essentially removes markup. +# +# REPEAT_FILTER is an acceptor which blocks derivations of the form +# +# (+ (* 50 1000 *) (* 4 1000) ...) "fifty thousand four thousand..." +# +# in languages where that is not licensed. + +import 'util/byte.grm' as b; + +# Deleter FST. +func D[expr] { + return expr : ""; +} + +delta = b.kDigit; +sigma = delta | " " | "(" | ")" | "+" | "*"; + +sigmastar = sigma*; +deltastar = delta*; + +rparen = Optimize["+)" | "*)"]; +space_or_rparen = Optimize[" " | rparen]; + +## Multiplication. + +# Generic multiplication where the RHS is a power of ten. + +del_one = Optimize[delta+ D[" 1"] "0"+]; + +test1_1 = AssertEqual["2 10" @ del_one, "20"]; +test1_2 = AssertEqual["20 10" @ del_one, "200"]; +test1_3 = AssertEqual["2 100" @ del_one, "200"]; +test1_4 = AssertEqual["20 100" @ del_one, "2000"]; +test1_5 = AssertEqual["200 100" @ del_one, "20000"]; +test1_6 = AssertEqual["2 1000" @ del_one, "2000"]; +test1_7 = AssertEqual["20 1000" @ del_one, "20000"]; +test1_8 = AssertEqual["200 1000" @ del_one, "200000"]; +test1_9 = AssertEqual["2000 1000" @ del_one, "2000000"]; + +# Generic multiplication where the RHS is a power of ten and the LHS has fewer +# trailing zeros than the RHS. +del_one_restricted = Optimize[ # e.g., "2 x 10", "2 x 100", etc. + delta D[" 1"] "0"+ | + # e.g., "20 x 100", etc. + delta{1,2} D[" 1"] "0" "0"+ | + # e.g., "200" x 1000", etc. + delta{2,3} D[" 1"] "0"{2} "0"+ | + delta{3,4} D[" 1"] "0"{3} "0"+ | + delta{4,5} D[" 1"] "0"{4} "0"+]; + +test2_01 = AssertEqual["2 10" @ del_one_restricted, "20"]; +test2_02 = AssertNull["20 10" @ del_one_restricted]; +test2_03 = AssertEqual["2 100" @ del_one_restricted, "200"]; +test2_04 = AssertEqual["20 100" @ del_one_restricted, "2000"]; +test2_05 = AssertNull[ "200 100" @ del_one_restricted]; +test2_06 = AssertEqual["2 1000" @ del_one_restricted, "2000"]; +test2_07 = AssertEqual["20 1000" @ del_one_restricted, "20000"]; +test2_08 = AssertEqual["200 1000" @ del_one_restricted, "200000"]; +test2_09 = AssertNull["2000 1000" @ del_one_restricted]; +test2_10 = AssertEqual["1000 10000000" @ del_one_restricted, "10000000000"]; + +# Multiplication of vigesimal base for weak vigesimal systems + +vigesimal_times_map = ("1" : "2") | ("2" : "4") | ("3" : "6") | ("4" : "8"); + +del_two = Optimize[vigesimal_times_map D[" 2"] "0"+]; + +test3_1 = AssertEqual["1 20" @ del_two, "20"]; +test3_2 = AssertEqual["2 20" @ del_two, "40"]; +test3_3 = AssertEqual["3 20" @ del_two, "60"]; +test3_4 = AssertEqual["4 20" @ del_two, "80"]; + +# Multiplication of vigesimal base restricted to cases where the LHS is [1-4] +# and the RHS is a power of ten. + +del_two_restricted = Optimize[vigesimal_times_map D[" 2"] "0"+]; + +test4_1 = AssertEqual["1 20" @ del_two_restricted, "20"]; +test4_2 = AssertEqual["2 20" @ del_two_restricted, "40"]; +test4_3 = AssertEqual["3 20" @ del_two_restricted, "60"]; +test4_4 = AssertEqual["4 20" @ del_two_restricted, "80"]; +test4_5 = AssertNull["5 20" @ del_two_restricted]; +test4_6 = AssertNull["10 20" @ del_two_restricted]; + +products = del_one | del_two; +products_restricted = del_one_restricted | del_two_restricted; + +multiplication = CDRewrite[D["(* "] products D[" *)"], "", "", sigmastar]; +multiplication_restricted = CDRewrite[D["(* "] products_restricted D[" *)"], + "", "", sigmastar]; + +test5_1 = AssertEqual["(* 8 100 *)" @ multiplication, "800"]; +test5_2 = AssertEqual["(* 1 100 *)" @ multiplication, "100"]; +test5_3 = AssertEqual["(* 4 20 *)" @ multiplication, "80"]; +test5_4 = AssertEqual["(* 13 1000 *)" @ multiplication, "13000"]; +test5_5 = AssertEqual["(* 13000 10 *)" @ multiplication, "130000"]; +test5_6 = AssertEqual["(* 13000 10 *)" @ multiplication_restricted, + "(* 13000 10 *)"]; # Can't reduce this. + +## Addition. + +insum = "+" (sigma - "(")*; +rcon = insum deltastar; + +# Generic zero deletion up to 12. +del_zero = Optimize[ + # Handles lone zero inside a plus statement. + CDRewrite[D[" 0"], rcon, space_or_rparen, sigmastar] @ + # If we need to go any larger, we probably should switch to a PDT. + CDRewrite[D["0"{12} " "] delta{12}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{11} " "] delta{11}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{10} " "] delta{10}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{9} " "] delta{9}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{8} " "] delta{8}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{7} " "] delta{7}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{6} " "] delta{6}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{5} " "] delta{5}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{4} " "] delta{4}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{3} " "] delta{3}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0"{2} " "] delta{2}, rcon, space_or_rparen, sigmastar] @ + CDRewrite[D["0" " "] delta, rcon, space_or_rparen, sigmastar]]; + +## Weak vigesimal cases involving scores and teens. + +vigesimal_plus_map = Optimize[("20 1" : "3") delta | + ("40 1" : "5") delta | + ("60 1" : "7") delta | + ("80 1" : "9") delta]; + +vigesimal = CDRewrite[vigesimal_plus_map, insum, space_or_rparen, sigmastar]; + +## Germanic decade flop. + +germanic_map = StringFile['util/germanic.tsv']; + +germanic = CDRewrite[germanic_map, insum, space_or_rparen, sigmastar]; + +sums = Optimize[germanic @ vigesimal @ del_zero]; + +# Deletes the surrounding "(+ +)" around a successful reduction. + +del_plus = CDRewrite[D["(+ "] delta+ D[" +)"], "", "", sigmastar]; + +addition = Optimize[sums @ del_plus]; + +test6_1 = AssertEqual["(+ 30 2 +)" @ addition, "32"]; +test6_2 = AssertEqual["(+ 300 20 1 +)" @ addition, "321"]; +test6_3 = AssertEqual["(+ 80 17 +)" @ addition, "97"]; +test6_4 = AssertEqual["(+ 4 50 +)" @ addition, "54"]; +test6_5 = AssertEqual["(+ 3000 80 17 +)" @ addition, "3097"]; +test6_6 = AssertEqual["(+ 3000 4 50 +)" @ addition, "3054"]; +test6_7 = AssertEqual["(+ 0 10 +)" @ addition, "10"]; +test6_8 = AssertEqual["(+ 0 20 +)" @ addition, "20"]; +test6_9 = AssertEqual["(+ 200 (+ 0 20 +) +)" @ addition @ addition, "220"]; + +## Export statements. + +export ARITHMETIC = Optimize[multiplication @ addition]; +export ARITHMETIC_RESTRICTED = Optimize[multiplication_restricted @ addition]; + +# Lightweight versions that lack the vigesimal /vɪˈdʒɛsɪməl/ or Germanic decade +# flop, or both. + +export ARITHMETIC_BASIC = Optimize[multiplication @ del_zero @ del_plus]; +export ARITHMETIC_BASIC_RESTRICTED = Optimize[multiplication_restricted @ + del_zero @ del_plus]; + +export ARITHMETIC_GERMANIC = Optimize[multiplication @ germanic @ del_zero @ + del_plus]; + +export ARITHMETIC_GERMANIC_RESTRICTED = Optimize[multiplication_restricted @ + germanic @ del_zero @ + del_plus]; + +export ARITHMETIC_VIGESIMAL = Optimize[multiplication @ vigesimal @ del_zero @ + del_plus]; +export ARITHMETIC_VIGESIMAL_RESTRICTED = Optimize[multiplication_restricted @ + vigesimal @ del_zero @ + del_plus]; + +## LEAVES transducer. + +nonterm = "+" | "*"; +export LEAVES = Optimize[CDRewrite["(" nonterm " " | " " nonterm ")" : "", + "", "", sigmastar]]; + +test7 = AssertEqual["(* (+ (* 4 20 *) 10 7 +) 1000 *)" @ LEAVES, + "4 20 10 7 1000"]; + +## Optional filter for repeated large powers of ten, to be applied to leaves. + +func Filter[expr, sigstar] { + return Optimize[sigstar - (sigstar expr sigstar)]; +} + +func FilterMoreThanOne[expr, sigstar] { + return Filter[expr " " (sigstar " ")? expr, sigstar]; +} + +filter_sigstar = (delta | " ")*; + +export REPEAT_FILTER = + Optimize[FilterMoreThanOne["1000", filter_sigstar] @ + FilterMoreThanOne["10000", filter_sigstar] @ + FilterMoreThanOne["100000", filter_sigstar] @ + FilterMoreThanOne["1000000", filter_sigstar] @ + FilterMoreThanOne["1000000000", filter_sigstar] @ + FilterMoreThanOne["1000000000000", filter_sigstar]]; + +test8_1 = AssertNull["50 1000 4 1000" @ REPEAT_FILTER]; +test8_2 = AssertNull["50 1000000 4 1000000" @ REPEAT_FILTER]; +test8_3 = AssertEqual["50 100 1000" @ REPEAT_FILTER, "50 100 1000"]; +test8_4 = AssertNull["20 1000 1000 20" @ REPEAT_FILTER]; +test8_5 = AssertEqual[ + "70 1000000 400 0 70 0 7 1000 100 0 70" @ REPEAT_FILTER, + "70 1000000 400 0 70 0 7 1000 100 0 70" @ REPEAT_FILTER]; +test8_6 = AssertNull[ + "70 1000000 400 0 70 1000 0 7 1000 100 0 70" @ REPEAT_FILTER]; + +# Filters to force the output of *inverting* the arithmetic as applied to a +# digit string to be a well-formed sexpr: + +not_space = b.kNotSpace; + +# Things like (+ 1 +)(+ 9 +). + +bad_parens = + sigmastar ")" not_space sigmastar + | sigmastar not_space "(" sigmastar +; + +no_bad_parens = sigmastar - bad_parens; + +# Things like (+ 1 +) or (* 3 *). + +spurious_operators = + sigmastar "(+ " delta+ " +)" sigmastar + | sigmastar "(* " delta+ " *)" sigmastar +; + +no_spurious_operators = sigmastar - spurious_operators; + +no_strings_of_zeros = + sigmastar - (sigmastar " " "0"+ " " "0"+ " " sigmastar) +; + +no_bad_sequences = + Optimize[no_bad_parens @ no_strings_of_zeros] +; + +export SEXP_FILTER = Optimize[ + ( delta+ + | "(* " no_bad_sequences " *)" + | "(+ " no_bad_sequences " +)") @ no_spurious_operators] +; + +# For convenience adds inverses of the arithmetic rules: + +export IARITHMETIC = Invert[ARITHMETIC]; + +export IARITHMETIC_RESTRICTED = Invert[ARITHMETIC_RESTRICTED]; + +export IARITHMETIC_BASIC = Invert[ARITHMETIC_BASIC]; + +export IARITHMETIC_BASIC_RESTRICTED = Invert[ARITHMETIC_BASIC_RESTRICTED]; + +export IARITHMETIC_GERMANIC = Invert[ARITHMETIC_GERMANIC]; + +export IARITHMETIC_GERMANIC_RESTRICTED = + Invert[ARITHMETIC_GERMANIC_RESTRICTED] +; + +export IARITHMETIC_VIGESIMAL = Invert[ARITHMETIC_VIGESIMAL]; + +export IARITHMETIC_VIGESIMAL_RESTRICTED = + Invert[ARITHMETIC_VIGESIMAL_RESTRICTED] +; + +## This should be applied on the lefthand side of FG to ensure that the only +## digit input nis permitted. +export DELTA_STAR = deltastar; diff --git a/third_party/chinese_text_normalization/thrax/src/util/byte.grm b/third_party/chinese_text_normalization/thrax/src/util/byte.grm new file mode 100644 index 000000000..32e6ead75 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/byte.grm @@ -0,0 +1,75 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Standard constants for ASCII (byte) based strings. This mirrors the +# functions provided by C/C++'s ctype.h library. + +# Note that [0] is missing; matching the string-termination character is kinda weird. +export kBytes = Optimize[ + "[1]" | "[2]" | "[3]" | "[4]" | "[5]" | "[6]" | "[7]" | "[8]" | "[9]" | "[10]" | + "[11]" | "[12]" | "[13]" | "[14]" | "[15]" | "[16]" | "[17]" | "[18]" | "[19]" | "[20]" | + "[21]" | "[22]" | "[23]" | "[24]" | "[25]" | "[26]" | "[27]" | "[28]" | "[29]" | "[30]" | + "[31]" | "[32]" | "[33]" | "[34]" | "[35]" | "[36]" | "[37]" | "[38]" | "[39]" | "[40]" | + "[41]" | "[42]" | "[43]" | "[44]" | "[45]" | "[46]" | "[47]" | "[48]" | "[49]" | "[50]" | + "[51]" | "[52]" | "[53]" | "[54]" | "[55]" | "[56]" | "[57]" | "[58]" | "[59]" | "[60]" | + "[61]" | "[62]" | "[63]" | "[64]" | "[65]" | "[66]" | "[67]" | "[68]" | "[69]" | "[70]" | + "[71]" | "[72]" | "[73]" | "[74]" | "[75]" | "[76]" | "[77]" | "[78]" | "[79]" | "[80]" | + "[81]" | "[82]" | "[83]" | "[84]" | "[85]" | "[86]" | "[87]" | "[88]" | "[89]" | "[90]" | + "[91]" | "[92]" | "[93]" | "[94]" | "[95]" | "[96]" | "[97]" | "[98]" | "[99]" | "[100]" | +"[101]" | "[102]" | "[103]" | "[104]" | "[105]" | "[106]" | "[107]" | "[108]" | "[109]" | "[110]" | +"[111]" | "[112]" | "[113]" | "[114]" | "[115]" | "[116]" | "[117]" | "[118]" | "[119]" | "[120]" | +"[121]" | "[122]" | "[123]" | "[124]" | "[125]" | "[126]" | "[127]" | "[128]" | "[129]" | "[130]" | +"[131]" | "[132]" | "[133]" | "[134]" | "[135]" | "[136]" | "[137]" | "[138]" | "[139]" | "[140]" | +"[141]" | "[142]" | "[143]" | "[144]" | "[145]" | "[146]" | "[147]" | "[148]" | "[149]" | "[150]" | +"[151]" | "[152]" | "[153]" | "[154]" | "[155]" | "[156]" | "[157]" | "[158]" | "[159]" | "[160]" | +"[161]" | "[162]" | "[163]" | "[164]" | "[165]" | "[166]" | "[167]" | "[168]" | "[169]" | "[170]" | +"[171]" | "[172]" | "[173]" | "[174]" | "[175]" | "[176]" | "[177]" | "[178]" | "[179]" | "[180]" | +"[181]" | "[182]" | "[183]" | "[184]" | "[185]" | "[186]" | "[187]" | "[188]" | "[189]" | "[190]" | +"[191]" | "[192]" | "[193]" | "[194]" | "[195]" | "[196]" | "[197]" | "[198]" | "[199]" | "[200]" | +"[201]" | "[202]" | "[203]" | "[204]" | "[205]" | "[206]" | "[207]" | "[208]" | "[209]" | "[210]" | +"[211]" | "[212]" | "[213]" | "[214]" | "[215]" | "[216]" | "[217]" | "[218]" | "[219]" | "[220]" | +"[221]" | "[222]" | "[223]" | "[224]" | "[225]" | "[226]" | "[227]" | "[228]" | "[229]" | "[230]" | +"[231]" | "[232]" | "[233]" | "[234]" | "[235]" | "[236]" | "[237]" | "[238]" | "[239]" | "[240]" | +"[241]" | "[242]" | "[243]" | "[244]" | "[245]" | "[246]" | "[247]" | "[248]" | "[249]" | "[250]" | +"[251]" | "[252]" | "[253]" | "[254]" | "[255]" +]; + +export kDigit = Optimize[ + "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" +]; + +export kLower = Optimize[ + "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | + "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" +]; +export kUpper = Optimize[ + "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | + "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" +]; +export kAlpha = Optimize[kLower | kUpper]; + +export kAlnum = Optimize[kDigit | kAlpha]; + +export kSpace = Optimize[ + " " | "\t" | "\n" | "\r" +]; +export kNotSpace = Optimize[kBytes - kSpace]; + +export kPunct = Optimize[ + "!" | "\"" | "#" | "$" | "%" | "&" | "'" | "(" | ")" | "*" | "+" | "," | + "-" | "." | "/" | ":" | ";" | "<" | "=" | ">" | "?" | "@" | "\[" | "\\" | + "\]" | "^" | "_" | "`" | "{" | "|" | "}" | "~" +]; + +export kGraph = Optimize[kAlnum | kPunct]; diff --git a/third_party/chinese_text_normalization/thrax/src/util/case.grm b/third_party/chinese_text_normalization/thrax/src/util/case.grm new file mode 100644 index 000000000..ff10354b7 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/case.grm @@ -0,0 +1,3383 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Case-conversion functions. + +import 'util/byte.grm' as bytelib; + +export UPPER = + "A" + | "B" + | "C" + | "D" + | "E" + | "F" + | "G" + | "H" + | "I" + | "J" + | "K" + | "L" + | "M" + | "N" + | "O" + | "P" + | "Q" + | "R" + | "S" + | "T" + | "U" + | "V" + | "W" + | "X" + | "Y" + | "Z" + | "À" + | "Á" + | "Â" + | "Ã" + | "Ä" + | "Å" + | "Æ" + | "Ç" + | "È" + | "É" + | "Ê" + | "Ë" + | "Ì" + | "Í" + | "Î" + | "Ï" + | "Ð" + | "Ñ" + | "Ò" + | "Ó" + | "Ô" + | "Õ" + | "Ö" + | "Ø" + | "Ù" + | "Ú" + | "Û" + | "Ü" + | "Ý" + | "Þ" + | "Ā" + | "Ă" + | "Ą" + | "Ć" + | "Ĉ" + | "Ċ" + | "Č" + | "Ď" + | "Đ" + | "Ē" + | "Ĕ" + | "Ė" + | "Ę" + | "Ě" + | "Ĝ" + | "Ğ" + | "Ġ" + | "Ģ" + | "Ĥ" + | "Ħ" + | "Ĩ" + | "Ī" + | "Ĭ" + | "Į" + | "İ" + | "IJ" + | "Ĵ" + | "Ķ" + | "Ĺ" + | "Ļ" + | "Ľ" + | "Ŀ" + | "Ł" + | "Ń" + | "Ņ" + | "Ň" + | "Ŋ" + | "Ō" + | "Ŏ" + | "Ő" + | "Œ" + | "Ŕ" + | "Ŗ" + | "Ř" + | "Ś" + | "Ŝ" + | "Ş" + | "Š" + | "Ţ" + | "Ť" + | "Ŧ" + | "Ũ" + | "Ū" + | "Ŭ" + | "Ů" + | "Ű" + | "Ų" + | "Ŵ" + | "Ŷ" + | "Ÿ" + | "Ź" + | "Ż" + | "Ž" + | "Ɓ" + | "Ƃ" + | "Ƅ" + | "Ɔ" + | "Ƈ" + | "Ɖ" + | "Ɗ" + | "Ƌ" + | "Ǝ" + | "Ə" + | "Ɛ" + | "Ƒ" + | "Ɠ" + | "Ɣ" + | "Ɩ" + | "Ɨ" + | "Ƙ" + | "Ɯ" + | "Ɲ" + | "Ɵ" + | "Ơ" + | "Ƣ" + | "Ƥ" + | "Ƨ" + | "Ʃ" + | "Ƭ" + | "Ʈ" + | "Ư" + | "Ʊ" + | "Ʋ" + | "Ƴ" + | "Ƶ" + | "Ʒ" + | "Ƹ" + | "Ƽ" + | "DŽ" + | "Dž" + | "LJ" + | "Lj" + | "NJ" + | "Nj" + | "Ǎ" + | "Ǐ" + | "Ǒ" + | "Ǔ" + | "Ǖ" + | "Ǘ" + | "Ǚ" + | "Ǜ" + | "Ǟ" + | "Ǡ" + | "Ǣ" + | "Ǥ" + | "Ǧ" + | "Ǩ" + | "Ǫ" + | "Ǭ" + | "Ǯ" + | "DZ" + | "Dz" + | "Ǵ" + | "Ƕ" + | "Ƿ" + | "Ǹ" + | "Ǻ" + | "Ǽ" + | "Ǿ" + | "Ȁ" + | "Ȃ" + | "Ȅ" + | "Ȇ" + | "Ȉ" + | "Ȋ" + | "Ȍ" + | "Ȏ" + | "Ȑ" + | "Ȓ" + | "Ȕ" + | "Ȗ" + | "Ș" + | "Ț" + | "Ȝ" + | "Ȟ" + | "Ƞ" + | "Ȣ" + | "Ȥ" + | "Ȧ" + | "Ȩ" + | "Ȫ" + | "Ȭ" + | "Ȯ" + | "Ȱ" + | "Ȳ" + | "Ȼ" + | "Ƚ" + | "Ɂ" + | "Ά" + | "Έ" + | "Ή" + | "Ί" + | "Ό" + | "Ύ" + | "Ώ" + | "Α" + | "Β" + | "Γ" + | "Δ" + | "Ε" + | "Ζ" + | "Η" + | "Θ" + | "Ι" + | "Κ" + | "Λ" + | "Μ" + | "Ν" + | "Ξ" + | "Ο" + | "Π" + | "Ρ" + | "Σ" + | "Τ" + | "Υ" + | "Φ" + | "Χ" + | "Ψ" + | "Ω" + | "Ϊ" + | "Ϋ" + | "Ϣ" + | "Ϥ" + | "Ϧ" + | "Ϩ" + | "Ϫ" + | "Ϭ" + | "Ϯ" + | "ϴ" + | "Ϸ" + | "Ϲ" + | "Ϻ" + | "Ѐ" + | "Ё" + | "Ђ" + | "Ѓ" + | "Є" + | "Ѕ" + | "І" + | "Ї" + | "Ј" + | "Љ" + | "Њ" + | "Ћ" + | "Ќ" + | "Ѝ" + | "Ў" + | "Џ" + | "А" + | "Б" + | "В" + | "Г" + | "Д" + | "Е" + | "Ж" + | "З" + | "И" + | "Й" + | "К" + | "Л" + | "М" + | "Н" + | "О" + | "П" + | "Р" + | "С" + | "Т" + | "У" + | "Ф" + | "Х" + | "Ц" + | "Ч" + | "Ш" + | "Щ" + | "Ъ" + | "Ы" + | "Ь" + | "Э" + | "Ю" + | "Я" + | "Ѡ" + | "Ѣ" + | "Ѥ" + | "Ѧ" + | "Ѩ" + | "Ѫ" + | "Ѭ" + | "Ѯ" + | "Ѱ" + | "Ѳ" + | "Ѵ" + | "Ѷ" + | "Ѹ" + | "Ѻ" + | "Ѽ" + | "Ѿ" + | "Ҁ" + | "Ҋ" + | "Ҍ" + | "Ҏ" + | "Ґ" + | "Ғ" + | "Ҕ" + | "Җ" + | "Ҙ" + | "Қ" + | "Ҝ" + | "Ҟ" + | "Ҡ" + | "Ң" + | "Ҥ" + | "Ҧ" + | "Ҩ" + | "Ҫ" + | "Ҭ" + | "Ү" + | "Ұ" + | "Ҳ" + | "Ҵ" + | "Ҷ" + | "Ҹ" + | "Һ" + | "Ҽ" + | "Ҿ" + | "Ӂ" + | "Ӄ" + | "Ӆ" + | "Ӈ" + | "Ӊ" + | "Ӌ" + | "Ӎ" + | "Ӑ" + | "Ӓ" + | "Ӕ" + | "Ӗ" + | "Ә" + | "Ӛ" + | "Ӝ" + | "Ӟ" + | "Ӡ" + | "Ӣ" + | "Ӥ" + | "Ӧ" + | "Ө" + | "Ӫ" + | "Ӭ" + | "Ӯ" + | "Ӱ" + | "Ӳ" + | "Ӵ" + | "Ӷ" + | "Ӹ" + | "Ԁ" + | "Ԃ" + | "Ԅ" + | "Ԇ" + | "Ԉ" + | "Ԋ" + | "Ԍ" + | "Ԏ" + | "Ա" + | "Բ" + | "Գ" + | "Դ" + | "Ե" + | "Զ" + | "Է" + | "Ը" + | "Թ" + | "Ժ" + | "Ի" + | "Լ" + | "Խ" + | "Ծ" + | "Կ" + | "Հ" + | "Ձ" + | "Ղ" + | "Ճ" + | "Մ" + | "Յ" + | "Ն" + | "Շ" + | "Ո" + | "Չ" + | "Պ" + | "Ջ" + | "Ռ" + | "Ս" + | "Վ" + | "Տ" + | "Ր" + | "Ց" + | "Ւ" + | "Փ" + | "Ք" + | "Օ" + | "Ֆ" + | "Ⴀ" + | "Ⴁ" + | "Ⴂ" + | "Ⴃ" + | "Ⴄ" + | "Ⴅ" + | "Ⴆ" + | "Ⴇ" + | "Ⴈ" + | "Ⴉ" + | "Ⴊ" + | "Ⴋ" + | "Ⴌ" + | "Ⴍ" + | "Ⴎ" + | "Ⴏ" + | "Ⴐ" + | "Ⴑ" + | "Ⴒ" + | "Ⴓ" + | "Ⴔ" + | "Ⴕ" + | "Ⴖ" + | "Ⴗ" + | "Ⴘ" + | "Ⴙ" + | "Ⴚ" + | "Ⴛ" + | "Ⴜ" + | "Ⴝ" + | "Ⴞ" + | "Ⴟ" + | "Ⴠ" + | "Ⴡ" + | "Ⴢ" + | "Ⴣ" + | "Ⴤ" + | "Ⴥ" + | "Ḁ" + | "Ḃ" + | "Ḅ" + | "Ḇ" + | "Ḉ" + | "Ḋ" + | "Ḍ" + | "Ḏ" + | "Ḑ" + | "Ḓ" + | "Ḕ" + | "Ḗ" + | "Ḙ" + | "Ḛ" + | "Ḝ" + | "Ḟ" + | "Ḡ" + | "Ḣ" + | "Ḥ" + | "Ḧ" + | "Ḩ" + | "Ḫ" + | "Ḭ" + | "Ḯ" + | "Ḱ" + | "Ḳ" + | "Ḵ" + | "Ḷ" + | "Ḹ" + | "Ḻ" + | "Ḽ" + | "Ḿ" + | "Ṁ" + | "Ṃ" + | "Ṅ" + | "Ṇ" + | "Ṉ" + | "Ṋ" + | "Ṍ" + | "Ṏ" + | "Ṑ" + | "Ṓ" + | "Ṕ" + | "Ṗ" + | "Ṙ" + | "Ṛ" + | "Ṝ" + | "Ṟ" + | "Ṡ" + | "Ṣ" + | "Ṥ" + | "Ṧ" + | "Ṩ" + | "Ṫ" + | "Ṭ" + | "Ṯ" + | "Ṱ" + | "Ṳ" + | "Ṵ" + | "Ṷ" + | "Ṹ" + | "Ṻ" + | "Ṽ" + | "Ṿ" + | "Ẁ" + | "Ẃ" + | "Ẅ" + | "Ẇ" + | "Ẉ" + | "Ẋ" + | "Ẍ" + | "Ẏ" + | "Ẑ" + | "Ẓ" + | "Ẕ" + | "Ạ" + | "Ả" + | "Ấ" + | "Ầ" + | "Ẩ" + | "Ẫ" + | "Ậ" + | "Ắ" + | "Ằ" + | "Ẳ" + | "Ẵ" + | "Ặ" + | "Ẹ" + | "Ẻ" + | "Ẽ" + | "Ế" + | "Ề" + | "Ể" + | "Ễ" + | "Ệ" + | "Ỉ" + | "Ị" + | "Ọ" + | "Ỏ" + | "Ố" + | "Ồ" + | "Ổ" + | "Ỗ" + | "Ộ" + | "Ớ" + | "Ờ" + | "Ở" + | "Ỡ" + | "Ợ" + | "Ụ" + | "Ủ" + | "Ứ" + | "Ừ" + | "Ử" + | "Ữ" + | "Ự" + | "Ỳ" + | "Ỵ" + | "Ỷ" + | "Ỹ" + | "Ἀ" + | "Ἁ" + | "Ἂ" + | "Ἃ" + | "Ἄ" + | "Ἅ" + | "Ἆ" + | "Ἇ" + | "Ἐ" + | "Ἑ" + | "Ἒ" + | "Ἓ" + | "Ἔ" + | "Ἕ" + | "Ἠ" + | "Ἡ" + | "Ἢ" + | "Ἣ" + | "Ἤ" + | "Ἥ" + | "Ἦ" + | "Ἧ" + | "Ἰ" + | "Ἱ" + | "Ἲ" + | "Ἳ" + | "Ἴ" + | "Ἵ" + | "Ἶ" + | "Ἷ" + | "Ὀ" + | "Ὁ" + | "Ὂ" + | "Ὃ" + | "Ὄ" + | "Ὅ" + | "Ὑ" + | "Ὓ" + | "Ὕ" + | "Ὗ" + | "Ὠ" + | "Ὡ" + | "Ὢ" + | "Ὣ" + | "Ὤ" + | "Ὥ" + | "Ὦ" + | "Ὧ" + | "ᾈ" + | "ᾉ" + | "ᾊ" + | "ᾋ" + | "ᾌ" + | "ᾍ" + | "ᾎ" + | "ᾏ" + | "ᾘ" + | "ᾙ" + | "ᾚ" + | "ᾛ" + | "ᾜ" + | "ᾝ" + | "ᾞ" + | "ᾟ" + | "ᾨ" + | "ᾩ" + | "ᾪ" + | "ᾫ" + | "ᾬ" + | "ᾭ" + | "ᾮ" + | "ᾯ" + | "Ᾰ" + | "Ᾱ" + | "Ὰ" + | "Ά" + | "ᾼ" + | "Ὲ" + | "Έ" + | "Ὴ" + | "Ή" + | "ῌ" + | "Ῐ" + | "Ῑ" + | "Ὶ" + | "Ί" + | "Ῠ" + | "Ῡ" + | "Ὺ" + | "Ύ" + | "Ῥ" + | "Ὸ" + | "Ό" + | "Ὼ" + | "Ώ" + | "ῼ" + | "Ⓐ" + | "Ⓑ" + | "Ⓒ" + | "Ⓓ" + | "Ⓔ" + | "Ⓕ" + | "Ⓖ" + | "Ⓗ" + | "Ⓘ" + | "Ⓙ" + | "Ⓚ" + | "Ⓛ" + | "Ⓜ" + | "Ⓝ" + | "Ⓞ" + | "Ⓟ" + | "Ⓠ" + | "Ⓡ" + | "Ⓢ" + | "Ⓣ" + | "Ⓤ" + | "Ⓥ" + | "Ⓦ" + | "Ⓧ" + | "Ⓨ" + | "Ⓩ" + | "Ⰰ" + | "Ⰱ" + | "Ⰲ" + | "Ⰳ" + | "Ⰴ" + | "Ⰵ" + | "Ⰶ" + | "Ⰷ" + | "Ⰸ" + | "Ⰹ" + | "Ⰺ" + | "Ⰻ" + | "Ⰼ" + | "Ⰽ" + | "Ⰾ" + | "Ⰿ" + | "Ⱀ" + | "Ⱁ" + | "Ⱂ" + | "Ⱃ" + | "Ⱄ" + | "Ⱅ" + | "Ⱆ" + | "Ⱇ" + | "Ⱈ" + | "Ⱉ" + | "Ⱊ" + | "Ⱋ" + | "Ⱌ" + | "Ⱍ" + | "Ⱎ" + | "Ⱏ" + | "Ⱐ" + | "Ⱑ" + | "Ⱒ" + | "Ⱓ" + | "Ⱔ" + | "Ⱕ" + | "Ⱖ" + | "Ⱗ" + | "Ⱘ" + | "Ⱙ" + | "Ⱚ" + | "Ⱛ" + | "Ⱜ" + | "Ⱝ" + | "Ⱞ" + | "Ⲁ" + | "Ⲃ" + | "Ⲅ" + | "Ⲇ" + | "Ⲉ" + | "Ⲋ" + | "Ⲍ" + | "Ⲏ" + | "Ⲑ" + | "Ⲓ" + | "Ⲕ" + | "Ⲗ" + | "Ⲙ" + | "Ⲛ" + | "Ⲝ" + | "Ⲟ" + | "Ⲡ" + | "Ⲣ" + | "Ⲥ" + | "Ⲧ" + | "Ⲩ" + | "Ⲫ" + | "Ⲭ" + | "Ⲯ" + | "Ⲱ" + | "Ⲳ" + | "Ⲵ" + | "Ⲷ" + | "Ⲹ" + | "Ⲻ" + | "Ⲽ" + | "Ⲿ" + | "Ⳁ" + | "Ⳃ" + | "Ⳅ" + | "Ⳇ" + | "Ⳉ" + | "Ⳋ" + | "Ⳍ" + | "Ⳏ" + | "Ⳑ" + | "Ⳓ" + | "Ⳕ" + | "Ⳗ" + | "Ⳙ" + | "Ⳛ" + | "Ⳝ" + | "Ⳟ" + | "Ⳡ" + | "Ⳣ" + | "A" + | "B" + | "C" + | "D" + | "E" + | "F" + | "G" + | "H" + | "I" + | "J" + | "K" + | "L" + | "M" + | "N" + | "O" + | "P" + | "Q" + | "R" + | "S" + | "T" + | "U" + | "V" + | "W" + | "X" + | "Y" + | "Z" +; + +export LOWER = + "a" + | "b" + | "c" + | "d" + | "e" + | "f" + | "g" + | "h" + | "i" + | "j" + | "k" + | "l" + | "m" + | "n" + | "o" + | "p" + | "q" + | "r" + | "s" + | "t" + | "u" + | "v" + | "w" + | "x" + | "y" + | "z" + | "à" + | "á" + | "â" + | "ã" + | "ä" + | "å" + | "æ" + | "ç" + | "è" + | "é" + | "ê" + | "ë" + | "ì" + | "í" + | "î" + | "ï" + | "ð" + | "ñ" + | "ò" + | "ó" + | "ô" + | "õ" + | "ö" + | "ø" + | "ù" + | "ú" + | "û" + | "ü" + | "ý" + | "þ" + | "ā" + | "ă" + | "ą" + | "ć" + | "ĉ" + | "ċ" + | "č" + | "ď" + | "đ" + | "ē" + | "ĕ" + | "ė" + | "ę" + | "ě" + | "ĝ" + | "ğ" + | "ġ" + | "ģ" + | "ĥ" + | "ħ" + | "ĩ" + | "ī" + | "ĭ" + | "į" + | "i" + | "ij" + | "ĵ" + | "ķ" + | "ĺ" + | "ļ" + | "ľ" + | "ŀ" + | "ł" + | "ń" + | "ņ" + | "ň" + | "ŋ" + | "ō" + | "ŏ" + | "ő" + | "œ" + | "ŕ" + | "ŗ" + | "ř" + | "ś" + | "ŝ" + | "ş" + | "ß" + | "š" + | "ţ" + | "ť" + | "ŧ" + | "ũ" + | "ū" + | "ŭ" + | "ů" + | "ű" + | "ų" + | "ŵ" + | "ŷ" + | "ÿ" + | "ź" + | "ż" + | "ž" + | "ɓ" + | "ƃ" + | "ƅ" + | "ɔ" + | "ƈ" + | "ɖ" + | "ɗ" + | "ƌ" + | "ǝ" + | "ə" + | "ɛ" + | "ƒ" + | "ɠ" + | "ɣ" + | "ɩ" + | "ɨ" + | "ƙ" + | "ɯ" + | "ɲ" + | "ɵ" + | "ơ" + | "ƣ" + | "ƥ" + | "ƨ" + | "ʃ" + | "ƭ" + | "ʈ" + | "ư" + | "ʊ" + | "ʋ" + | "ƴ" + | "ƶ" + | "ʒ" + | "ƹ" + | "ƽ" + | "dž" + | "dž" + | "lj" + | "lj" + | "nj" + | "nj" + | "ǎ" + | "ǐ" + | "ǒ" + | "ǔ" + | "ǖ" + | "ǘ" + | "ǚ" + | "ǜ" + | "ǟ" + | "ǡ" + | "ǣ" + | "ǥ" + | "ǧ" + | "ǩ" + | "ǫ" + | "ǭ" + | "ǯ" + | "dz" + | "dz" + | "ǵ" + | "ƕ" + | "ƿ" + | "ǹ" + | "ǻ" + | "ǽ" + | "ǿ" + | "ȁ" + | "ȃ" + | "ȅ" + | "ȇ" + | "ȉ" + | "ȋ" + | "ȍ" + | "ȏ" + | "ȑ" + | "ȓ" + | "ȕ" + | "ȗ" + | "ș" + | "ț" + | "ȝ" + | "ȟ" + | "ƞ" + | "ȣ" + | "ȥ" + | "ȧ" + | "ȩ" + | "ȫ" + | "ȭ" + | "ȯ" + | "ȱ" + | "ȳ" + | "ȼ" + | "ƚ" + | "ʔ" + | "ά" + | "έ" + | "ή" + | "ί" + | "ό" + | "ύ" + | "ώ" + | "α" + | "β" + | "γ" + | "δ" + | "ε" + | "ζ" + | "η" + | "θ" + | "ι" + | "κ" + | "λ" + | "μ" + | "ν" + | "ξ" + | "ο" + | "π" + | "ρ" + | "σ" + | "ς" + | "τ" + | "υ" + | "φ" + | "χ" + | "ψ" + | "ω" + | "ϊ" + | "ϋ" + | "ϣ" + | "ϥ" + | "ϧ" + | "ϩ" + | "ϫ" + | "ϭ" + | "ϯ" + | "θ" + | "ϸ" + | "ϲ" + | "ϻ" + | "ѐ" + | "ё" + | "ђ" + | "ѓ" + | "є" + | "ѕ" + | "і" + | "ї" + | "ј" + | "љ" + | "њ" + | "ћ" + | "ќ" + | "ѝ" + | "ў" + | "џ" + | "а" + | "б" + | "в" + | "г" + | "д" + | "е" + | "ж" + | "з" + | "и" + | "й" + | "к" + | "л" + | "м" + | "н" + | "о" + | "п" + | "р" + | "с" + | "т" + | "у" + | "ф" + | "х" + | "ц" + | "ч" + | "ш" + | "щ" + | "ъ" + | "ы" + | "ь" + | "э" + | "ю" + | "я" + | "ѡ" + | "ѣ" + | "ѥ" + | "ѧ" + | "ѩ" + | "ѫ" + | "ѭ" + | "ѯ" + | "ѱ" + | "ѳ" + | "ѵ" + | "ѷ" + | "ѹ" + | "ѻ" + | "ѽ" + | "ѿ" + | "ҁ" + | "ҋ" + | "ҍ" + | "ҏ" + | "ґ" + | "ғ" + | "ҕ" + | "җ" + | "ҙ" + | "қ" + | "ҝ" + | "ҟ" + | "ҡ" + | "ң" + | "ҥ" + | "ҧ" + | "ҩ" + | "ҫ" + | "ҭ" + | "ү" + | "ұ" + | "ҳ" + | "ҵ" + | "ҷ" + | "ҹ" + | "һ" + | "ҽ" + | "ҿ" + | "ӂ" + | "ӄ" + | "ӆ" + | "ӈ" + | "ӊ" + | "ӌ" + | "ӎ" + | "ӑ" + | "ӓ" + | "ӕ" + | "ӗ" + | "ә" + | "ӛ" + | "ӝ" + | "ӟ" + | "ӡ" + | "ӣ" + | "ӥ" + | "ӧ" + | "ө" + | "ӫ" + | "ӭ" + | "ӯ" + | "ӱ" + | "ӳ" + | "ӵ" + | "ӷ" + | "ӹ" + | "ԁ" + | "ԃ" + | "ԅ" + | "ԇ" + | "ԉ" + | "ԋ" + | "ԍ" + | "ԏ" + | "ա" + | "բ" + | "գ" + | "դ" + | "ե" + | "զ" + | "է" + | "ը" + | "թ" + | "ժ" + | "ի" + | "լ" + | "խ" + | "ծ" + | "կ" + | "հ" + | "ձ" + | "ղ" + | "ճ" + | "մ" + | "յ" + | "ն" + | "շ" + | "ո" + | "չ" + | "պ" + | "ջ" + | "ռ" + | "ս" + | "վ" + | "տ" + | "ր" + | "ց" + | "ւ" + | "փ" + | "ք" + | "օ" + | "ֆ" + | "ⴀ" + | "ⴁ" + | "ⴂ" + | "ⴃ" + | "ⴄ" + | "ⴅ" + | "ⴆ" + | "ⴇ" + | "ⴈ" + | "ⴉ" + | "ⴊ" + | "ⴋ" + | "ⴌ" + | "ⴍ" + | "ⴎ" + | "ⴏ" + | "ⴐ" + | "ⴑ" + | "ⴒ" + | "ⴓ" + | "ⴔ" + | "ⴕ" + | "ⴖ" + | "ⴗ" + | "ⴘ" + | "ⴙ" + | "ⴚ" + | "ⴛ" + | "ⴜ" + | "ⴝ" + | "ⴞ" + | "ⴟ" + | "ⴠ" + | "ⴡ" + | "ⴢ" + | "ⴣ" + | "ⴤ" + | "ⴥ" + | "ḁ" + | "ḃ" + | "ḅ" + | "ḇ" + | "ḉ" + | "ḋ" + | "ḍ" + | "ḏ" + | "ḑ" + | "ḓ" + | "ḕ" + | "ḗ" + | "ḙ" + | "ḛ" + | "ḝ" + | "ḟ" + | "ḡ" + | "ḣ" + | "ḥ" + | "ḧ" + | "ḩ" + | "ḫ" + | "ḭ" + | "ḯ" + | "ḱ" + | "ḳ" + | "ḵ" + | "ḷ" + | "ḹ" + | "ḻ" + | "ḽ" + | "ḿ" + | "ṁ" + | "ṃ" + | "ṅ" + | "ṇ" + | "ṉ" + | "ṋ" + | "ṍ" + | "ṏ" + | "ṑ" + | "ṓ" + | "ṕ" + | "ṗ" + | "ṙ" + | "ṛ" + | "ṝ" + | "ṟ" + | "ṡ" + | "ṣ" + | "ṥ" + | "ṧ" + | "ṩ" + | "ṫ" + | "ṭ" + | "ṯ" + | "ṱ" + | "ṳ" + | "ṵ" + | "ṷ" + | "ṹ" + | "ṻ" + | "ṽ" + | "ṿ" + | "ẁ" + | "ẃ" + | "ẅ" + | "ẇ" + | "ẉ" + | "ẋ" + | "ẍ" + | "ẏ" + | "ẑ" + | "ẓ" + | "ẕ" + | "ạ" + | "ả" + | "ấ" + | "ầ" + | "ẩ" + | "ẫ" + | "ậ" + | "ắ" + | "ằ" + | "ẳ" + | "ẵ" + | "ặ" + | "ẹ" + | "ẻ" + | "ẽ" + | "ế" + | "ề" + | "ể" + | "ễ" + | "ệ" + | "ỉ" + | "ị" + | "ọ" + | "ỏ" + | "ố" + | "ồ" + | "ổ" + | "ỗ" + | "ộ" + | "ớ" + | "ờ" + | "ở" + | "ỡ" + | "ợ" + | "ụ" + | "ủ" + | "ứ" + | "ừ" + | "ử" + | "ữ" + | "ự" + | "ỳ" + | "ỵ" + | "ỷ" + | "ỹ" + | "ἀ" + | "ἁ" + | "ἂ" + | "ἃ" + | "ἄ" + | "ἅ" + | "ἆ" + | "ἇ" + | "ἐ" + | "ἑ" + | "ἒ" + | "ἓ" + | "ἔ" + | "ἕ" + | "ἠ" + | "ἡ" + | "ἢ" + | "ἣ" + | "ἤ" + | "ἥ" + | "ἦ" + | "ἧ" + | "ἰ" + | "ἱ" + | "ἲ" + | "ἳ" + | "ἴ" + | "ἵ" + | "ἶ" + | "ἷ" + | "ὀ" + | "ὁ" + | "ὂ" + | "ὃ" + | "ὄ" + | "ὅ" + | "ὑ" + | "ὓ" + | "ὕ" + | "ὗ" + | "ὠ" + | "ὡ" + | "ὢ" + | "ὣ" + | "ὤ" + | "ὥ" + | "ὦ" + | "ὧ" + | "ᾀ" + | "ᾁ" + | "ᾂ" + | "ᾃ" + | "ᾄ" + | "ᾅ" + | "ᾆ" + | "ᾇ" + | "ᾐ" + | "ᾑ" + | "ᾒ" + | "ᾓ" + | "ᾔ" + | "ᾕ" + | "ᾖ" + | "ᾗ" + | "ᾠ" + | "ᾡ" + | "ᾢ" + | "ᾣ" + | "ᾤ" + | "ᾥ" + | "ᾦ" + | "ᾧ" + | "ᾰ" + | "ᾱ" + | "ὰ" + | "ά" + | "ᾳ" + | "ὲ" + | "έ" + | "ὴ" + | "ή" + | "ῃ" + | "ῐ" + | "ῑ" + | "ὶ" + | "ί" + | "ῠ" + | "ῡ" + | "ὺ" + | "ύ" + | "ῥ" + | "ὸ" + | "ό" + | "ὼ" + | "ώ" + | "ῳ" + | "ⓐ" + | "ⓑ" + | "ⓒ" + | "ⓓ" + | "ⓔ" + | "ⓕ" + | "ⓖ" + | "ⓗ" + | "ⓘ" + | "ⓙ" + | "ⓚ" + | "ⓛ" + | "ⓜ" + | "ⓝ" + | "ⓞ" + | "ⓟ" + | "ⓠ" + | "ⓡ" + | "ⓢ" + | "ⓣ" + | "ⓤ" + | "ⓥ" + | "ⓦ" + | "ⓧ" + | "ⓨ" + | "ⓩ" + | "ⰰ" + | "ⰱ" + | "ⰲ" + | "ⰳ" + | "ⰴ" + | "ⰵ" + | "ⰶ" + | "ⰷ" + | "ⰸ" + | "ⰹ" + | "ⰺ" + | "ⰻ" + | "ⰼ" + | "ⰽ" + | "ⰾ" + | "ⰿ" + | "ⱀ" + | "ⱁ" + | "ⱂ" + | "ⱃ" + | "ⱄ" + | "ⱅ" + | "ⱆ" + | "ⱇ" + | "ⱈ" + | "ⱉ" + | "ⱊ" + | "ⱋ" + | "ⱌ" + | "ⱍ" + | "ⱎ" + | "ⱏ" + | "ⱐ" + | "ⱑ" + | "ⱒ" + | "ⱓ" + | "ⱔ" + | "ⱕ" + | "ⱖ" + | "ⱗ" + | "ⱘ" + | "ⱙ" + | "ⱚ" + | "ⱛ" + | "ⱜ" + | "ⱝ" + | "ⱞ" + | "ⲁ" + | "ⲃ" + | "ⲅ" + | "ⲇ" + | "ⲉ" + | "ⲋ" + | "ⲍ" + | "ⲏ" + | "ⲑ" + | "ⲓ" + | "ⲕ" + | "ⲗ" + | "ⲙ" + | "ⲛ" + | "ⲝ" + | "ⲟ" + | "ⲡ" + | "ⲣ" + | "ⲥ" + | "ⲧ" + | "ⲩ" + | "ⲫ" + | "ⲭ" + | "ⲯ" + | "ⲱ" + | "ⲳ" + | "ⲵ" + | "ⲷ" + | "ⲹ" + | "ⲻ" + | "ⲽ" + | "ⲿ" + | "ⳁ" + | "ⳃ" + | "ⳅ" + | "ⳇ" + | "ⳉ" + | "ⳋ" + | "ⳍ" + | "ⳏ" + | "ⳑ" + | "ⳓ" + | "ⳕ" + | "ⳗ" + | "ⳙ" + | "ⳛ" + | "ⳝ" + | "ⳟ" + | "ⳡ" + | "ⳣ" + | "a" + | "b" + | "c" + | "d" + | "e" + | "f" + | "g" + | "h" + | "i" + | "j" + | "k" + | "l" + | "m" + | "n" + | "o" + | "p" + | "q" + | "r" + | "s" + | "t" + | "u" + | "v" + | "w" + | "x" + | "y" + | "z" +; + +export toupper_deterministic = Determinize[ + ("a" : "A") + | ("b" : "B") + | ("c" : "C") + | ("d" : "D") + | ("e" : "E") + | ("f" : "F") + | ("g" : "G") + | ("h" : "H") + | ("i" : "I") + | ("j" : "J") + | ("k" : "K") + | ("l" : "L") + | ("m" : "M") + | ("n" : "N") + | ("o" : "O") + | ("p" : "P") + | ("q" : "Q") + | ("r" : "R") + | ("s" : "S") + | ("t" : "T") + | ("u" : "U") + | ("v" : "V") + | ("w" : "W") + | ("x" : "X") + | ("y" : "Y") + | ("z" : "Z") + | ("à" : "À") + | ("á" : "Á") + | ("â" : "Â") + | ("ã" : "Ã") + | ("ä" : "Ä") + | ("å" : "Å") + | ("æ" : "Æ") + | ("ç" : "Ç") + | ("è" : "È") + | ("é" : "É") + | ("ê" : "Ê") + | ("ë" : "Ë") + | ("ì" : "Ì") + | ("í" : "Í") + | ("î" : "Î") + | ("ï" : "Ï") + | ("ð" : "Ð") + | ("ñ" : "Ñ") + | ("ò" : "Ò") + | ("ó" : "Ó") + | ("ô" : "Ô") + | ("õ" : "Õ") + | ("ö" : "Ö") + | ("ø" : "Ø") + | ("ù" : "Ù") + | ("ú" : "Ú") + | ("û" : "Û") + | ("ü" : "Ü") + | ("ý" : "Ý") + | ("þ" : "Þ") + | ("ā" : "Ā") + | ("ă" : "Ă") + | ("ą" : "Ą") + | ("ć" : "Ć") + | ("ĉ" : "Ĉ") + | ("ċ" : "Ċ") + | ("č" : "Č") + | ("ď" : "Ď") + | ("đ" : "Đ") + | ("ē" : "Ē") + | ("ĕ" : "Ĕ") + | ("ė" : "Ė") + | ("ę" : "Ę") + | ("ě" : "Ě") + | ("ĝ" : "Ĝ") + | ("ğ" : "Ğ") + | ("ġ" : "Ġ") + | ("ģ" : "Ģ") + | ("ĥ" : "Ĥ") + | ("ħ" : "Ħ") + | ("ĩ" : "Ĩ") + | ("ī" : "Ī") + | ("ĭ" : "Ĭ") + | ("į" : "Į") + | ("ij" : "IJ") + | ("ĵ" : "Ĵ") + | ("ķ" : "Ķ") + | ("ĺ" : "Ĺ") + | ("ļ" : "Ļ") + | ("ľ" : "Ľ") + | ("ŀ" : "Ŀ") + | ("ł" : "Ł") + | ("ń" : "Ń") + | ("ņ" : "Ņ") + | ("ň" : "Ň") + | ("ŋ" : "Ŋ") + | ("ō" : "Ō") + | ("ŏ" : "Ŏ") + | ("ő" : "Ő") + | ("œ" : "Œ") + | ("ŕ" : "Ŕ") + | ("ŗ" : "Ŗ") + | ("ř" : "Ř") + | ("ś" : "Ś") + | ("ŝ" : "Ŝ") + | ("ş" : "Ş") + | ("š" : "Š") + | ("ţ" : "Ţ") + | ("ť" : "Ť") + | ("ŧ" : "Ŧ") + | ("ũ" : "Ũ") + | ("ū" : "Ū") + | ("ŭ" : "Ŭ") + | ("ů" : "Ů") + | ("ű" : "Ű") + | ("ų" : "Ų") + | ("ŵ" : "Ŵ") + | ("ŷ" : "Ŷ") + | ("ÿ" : "Ÿ") + | ("ź" : "Ź") + | ("ż" : "Ż") + | ("ž" : "Ž") + | ("ɓ" : "Ɓ") + | ("ƃ" : "Ƃ") + | ("ƅ" : "Ƅ") + | ("ɔ" : "Ɔ") + | ("ƈ" : "Ƈ") + | ("ɖ" : "Ɖ") + | ("ɗ" : "Ɗ") + | ("ƌ" : "Ƌ") + | ("ǝ" : "Ǝ") + | ("ə" : "Ə") + | ("ɛ" : "Ɛ") + | ("ƒ" : "Ƒ") + | ("ɠ" : "Ɠ") + | ("ɣ" : "Ɣ") + | ("ɩ" : "Ɩ") + | ("ɨ" : "Ɨ") + | ("ƙ" : "Ƙ") + | ("ɯ" : "Ɯ") + | ("ɲ" : "Ɲ") + | ("ɵ" : "Ɵ") + | ("ơ" : "Ơ") + | ("ƣ" : "Ƣ") + | ("ƥ" : "Ƥ") + | ("ƨ" : "Ƨ") + | ("ʃ" : "Ʃ") + | ("ƭ" : "Ƭ") + | ("ʈ" : "Ʈ") + | ("ư" : "Ư") + | ("ʊ" : "Ʊ") + | ("ʋ" : "Ʋ") + | ("ƴ" : "Ƴ") + | ("ƶ" : "Ƶ") + | ("ʒ" : "Ʒ") + | ("ƹ" : "Ƹ") + | ("ƽ" : "Ƽ") + | ("dž" : "DŽ") + | ("lj" : "LJ") + | ("nj" : "NJ") + | ("ǎ" : "Ǎ") + | ("ǐ" : "Ǐ") + | ("ǒ" : "Ǒ") + | ("ǔ" : "Ǔ") + | ("ǖ" : "Ǖ") + | ("ǘ" : "Ǘ") + | ("ǚ" : "Ǚ") + | ("ǜ" : "Ǜ") + | ("ǟ" : "Ǟ") + | ("ǡ" : "Ǡ") + | ("ǣ" : "Ǣ") + | ("ǥ" : "Ǥ") + | ("ǧ" : "Ǧ") + | ("ǩ" : "Ǩ") + | ("ǫ" : "Ǫ") + | ("ǭ" : "Ǭ") + | ("ǯ" : "Ǯ") + | ("dz" : "DZ") + | ("ǵ" : "Ǵ") + | ("ƕ" : "Ƕ") + | ("ƿ" : "Ƿ") + | ("ǹ" : "Ǹ") + | ("ǻ" : "Ǻ") + | ("ǽ" : "Ǽ") + | ("ǿ" : "Ǿ") + | ("ȁ" : "Ȁ") + | ("ȃ" : "Ȃ") + | ("ȅ" : "Ȅ") + | ("ȇ" : "Ȇ") + | ("ȉ" : "Ȉ") + | ("ȋ" : "Ȋ") + | ("ȍ" : "Ȍ") + | ("ȏ" : "Ȏ") + | ("ȑ" : "Ȑ") + | ("ȓ" : "Ȓ") + | ("ȕ" : "Ȕ") + | ("ȗ" : "Ȗ") + | ("ș" : "Ș") + | ("ț" : "Ț") + | ("ȝ" : "Ȝ") + | ("ȟ" : "Ȟ") + | ("ƞ" : "Ƞ") + | ("ȣ" : "Ȣ") + | ("ȥ" : "Ȥ") + | ("ȧ" : "Ȧ") + | ("ȩ" : "Ȩ") + | ("ȫ" : "Ȫ") + | ("ȭ" : "Ȭ") + | ("ȯ" : "Ȯ") + | ("ȱ" : "Ȱ") + | ("ȳ" : "Ȳ") + | ("ȼ" : "Ȼ") + | ("ƚ" : "Ƚ") + | ("ʔ" : "Ɂ") + | ("ά" : "Ά") + | ("έ" : "Έ") + | ("ή" : "Ή") + | ("ί" : "Ί") + | ("ό" : "Ό") + | ("ύ" : "Ύ") + | ("ώ" : "Ώ") + | ("α" : "Α") + | ("β" : "Β") + | ("γ" : "Γ") + | ("δ" : "Δ") + | ("ε" : "Ε") + | ("ζ" : "Ζ") + | ("η" : "Η") + | ("θ" : "Θ") + | ("ι" : "Ι") + | ("κ" : "Κ") + | ("λ" : "Λ") + | ("μ" : "Μ") + | ("ν" : "Ν") + | ("ξ" : "Ξ") + | ("ο" : "Ο") + | ("π" : "Π") + | ("ρ" : "Ρ") + | ("σ" : "Σ") + | ("τ" : "Τ") + | ("υ" : "Υ") + | ("φ" : "Φ") + | ("χ" : "Χ") + | ("ψ" : "Ψ") + | ("ω" : "Ω") + | ("ϊ" : "Ϊ") + | ("ϋ" : "Ϋ") + | ("ϣ" : "Ϣ") + | ("ϥ" : "Ϥ") + | ("ϧ" : "Ϧ") + | ("ϩ" : "Ϩ") + | ("ϫ" : "Ϫ") + | ("ϭ" : "Ϭ") + | ("ϯ" : "Ϯ") + | ("ϸ" : "Ϸ") + | ("ϲ" : "Ϲ") + | ("ϻ" : "Ϻ") + | ("ѐ" : "Ѐ") + | ("ё" : "Ё") + | ("ђ" : "Ђ") + | ("ѓ" : "Ѓ") + | ("є" : "Є") + | ("ѕ" : "Ѕ") + | ("і" : "І") + | ("ї" : "Ї") + | ("ј" : "Ј") + | ("љ" : "Љ") + | ("њ" : "Њ") + | ("ћ" : "Ћ") + | ("ќ" : "Ќ") + | ("ѝ" : "Ѝ") + | ("ў" : "Ў") + | ("џ" : "Џ") + | ("а" : "А") + | ("б" : "Б") + | ("в" : "В") + | ("г" : "Г") + | ("д" : "Д") + | ("е" : "Е") + | ("ж" : "Ж") + | ("з" : "З") + | ("и" : "И") + | ("й" : "Й") + | ("к" : "К") + | ("л" : "Л") + | ("м" : "М") + | ("н" : "Н") + | ("о" : "О") + | ("п" : "П") + | ("р" : "Р") + | ("с" : "С") + | ("т" : "Т") + | ("у" : "У") + | ("ф" : "Ф") + | ("х" : "Х") + | ("ц" : "Ц") + | ("ч" : "Ч") + | ("ш" : "Ш") + | ("щ" : "Щ") + | ("ъ" : "Ъ") + | ("ы" : "Ы") + | ("ь" : "Ь") + | ("э" : "Э") + | ("ю" : "Ю") + | ("я" : "Я") + | ("ѡ" : "Ѡ") + | ("ѣ" : "Ѣ") + | ("ѥ" : "Ѥ") + | ("ѧ" : "Ѧ") + | ("ѩ" : "Ѩ") + | ("ѫ" : "Ѫ") + | ("ѭ" : "Ѭ") + | ("ѯ" : "Ѯ") + | ("ѱ" : "Ѱ") + | ("ѳ" : "Ѳ") + | ("ѵ" : "Ѵ") + | ("ѷ" : "Ѷ") + | ("ѹ" : "Ѹ") + | ("ѻ" : "Ѻ") + | ("ѽ" : "Ѽ") + | ("ѿ" : "Ѿ") + | ("ҁ" : "Ҁ") + | ("ҋ" : "Ҋ") + | ("ҍ" : "Ҍ") + | ("ҏ" : "Ҏ") + | ("ґ" : "Ґ") + | ("ғ" : "Ғ") + | ("ҕ" : "Ҕ") + | ("җ" : "Җ") + | ("ҙ" : "Ҙ") + | ("қ" : "Қ") + | ("ҝ" : "Ҝ") + | ("ҟ" : "Ҟ") + | ("ҡ" : "Ҡ") + | ("ң" : "Ң") + | ("ҥ" : "Ҥ") + | ("ҧ" : "Ҧ") + | ("ҩ" : "Ҩ") + | ("ҫ" : "Ҫ") + | ("ҭ" : "Ҭ") + | ("ү" : "Ү") + | ("ұ" : "Ұ") + | ("ҳ" : "Ҳ") + | ("ҵ" : "Ҵ") + | ("ҷ" : "Ҷ") + | ("ҹ" : "Ҹ") + | ("һ" : "Һ") + | ("ҽ" : "Ҽ") + | ("ҿ" : "Ҿ") + | ("ӂ" : "Ӂ") + | ("ӄ" : "Ӄ") + | ("ӆ" : "Ӆ") + | ("ӈ" : "Ӈ") + | ("ӊ" : "Ӊ") + | ("ӌ" : "Ӌ") + | ("ӎ" : "Ӎ") + | ("ӑ" : "Ӑ") + | ("ӓ" : "Ӓ") + | ("ӕ" : "Ӕ") + | ("ӗ" : "Ӗ") + | ("ә" : "Ә") + | ("ӛ" : "Ӛ") + | ("ӝ" : "Ӝ") + | ("ӟ" : "Ӟ") + | ("ӡ" : "Ӡ") + | ("ӣ" : "Ӣ") + | ("ӥ" : "Ӥ") + | ("ӧ" : "Ӧ") + | ("ө" : "Ө") + | ("ӫ" : "Ӫ") + | ("ӭ" : "Ӭ") + | ("ӯ" : "Ӯ") + | ("ӱ" : "Ӱ") + | ("ӳ" : "Ӳ") + | ("ӵ" : "Ӵ") + | ("ӷ" : "Ӷ") + | ("ӹ" : "Ӹ") + | ("ԁ" : "Ԁ") + | ("ԃ" : "Ԃ") + | ("ԅ" : "Ԅ") + | ("ԇ" : "Ԇ") + | ("ԉ" : "Ԉ") + | ("ԋ" : "Ԋ") + | ("ԍ" : "Ԍ") + | ("ԏ" : "Ԏ") + | ("ա" : "Ա") + | ("բ" : "Բ") + | ("գ" : "Գ") + | ("դ" : "Դ") + | ("ե" : "Ե") + | ("զ" : "Զ") + | ("է" : "Է") + | ("ը" : "Ը") + | ("թ" : "Թ") + | ("ժ" : "Ժ") + | ("ի" : "Ի") + | ("լ" : "Լ") + | ("խ" : "Խ") + | ("ծ" : "Ծ") + | ("կ" : "Կ") + | ("հ" : "Հ") + | ("ձ" : "Ձ") + | ("ղ" : "Ղ") + | ("ճ" : "Ճ") + | ("մ" : "Մ") + | ("յ" : "Յ") + | ("ն" : "Ն") + | ("շ" : "Շ") + | ("ո" : "Ո") + | ("չ" : "Չ") + | ("պ" : "Պ") + | ("ջ" : "Ջ") + | ("ռ" : "Ռ") + | ("ս" : "Ս") + | ("վ" : "Վ") + | ("տ" : "Տ") + | ("ր" : "Ր") + | ("ց" : "Ց") + | ("ւ" : "Ւ") + | ("փ" : "Փ") + | ("ք" : "Ք") + | ("օ" : "Օ") + | ("ֆ" : "Ֆ") + | ("ⴀ" : "Ⴀ") + | ("ⴁ" : "Ⴁ") + | ("ⴂ" : "Ⴂ") + | ("ⴃ" : "Ⴃ") + | ("ⴄ" : "Ⴄ") + | ("ⴅ" : "Ⴅ") + | ("ⴆ" : "Ⴆ") + | ("ⴇ" : "Ⴇ") + | ("ⴈ" : "Ⴈ") + | ("ⴉ" : "Ⴉ") + | ("ⴊ" : "Ⴊ") + | ("ⴋ" : "Ⴋ") + | ("ⴌ" : "Ⴌ") + | ("ⴍ" : "Ⴍ") + | ("ⴎ" : "Ⴎ") + | ("ⴏ" : "Ⴏ") + | ("ⴐ" : "Ⴐ") + | ("ⴑ" : "Ⴑ") + | ("ⴒ" : "Ⴒ") + | ("ⴓ" : "Ⴓ") + | ("ⴔ" : "Ⴔ") + | ("ⴕ" : "Ⴕ") + | ("ⴖ" : "Ⴖ") + | ("ⴗ" : "Ⴗ") + | ("ⴘ" : "Ⴘ") + | ("ⴙ" : "Ⴙ") + | ("ⴚ" : "Ⴚ") + | ("ⴛ" : "Ⴛ") + | ("ⴜ" : "Ⴜ") + | ("ⴝ" : "Ⴝ") + | ("ⴞ" : "Ⴞ") + | ("ⴟ" : "Ⴟ") + | ("ⴠ" : "Ⴠ") + | ("ⴡ" : "Ⴡ") + | ("ⴢ" : "Ⴢ") + | ("ⴣ" : "Ⴣ") + | ("ⴤ" : "Ⴤ") + | ("ⴥ" : "Ⴥ") + | ("ḁ" : "Ḁ") + | ("ḃ" : "Ḃ") + | ("ḅ" : "Ḅ") + | ("ḇ" : "Ḇ") + | ("ḉ" : "Ḉ") + | ("ḋ" : "Ḋ") + | ("ḍ" : "Ḍ") + | ("ḏ" : "Ḏ") + | ("ḑ" : "Ḑ") + | ("ḓ" : "Ḓ") + | ("ḕ" : "Ḕ") + | ("ḗ" : "Ḗ") + | ("ḙ" : "Ḙ") + | ("ḛ" : "Ḛ") + | ("ḝ" : "Ḝ") + | ("ḟ" : "Ḟ") + | ("ḡ" : "Ḡ") + | ("ḣ" : "Ḣ") + | ("ḥ" : "Ḥ") + | ("ḧ" : "Ḧ") + | ("ḩ" : "Ḩ") + | ("ḫ" : "Ḫ") + | ("ḭ" : "Ḭ") + | ("ḯ" : "Ḯ") + | ("ḱ" : "Ḱ") + | ("ḳ" : "Ḳ") + | ("ḵ" : "Ḵ") + | ("ḷ" : "Ḷ") + | ("ḹ" : "Ḹ") + | ("ḻ" : "Ḻ") + | ("ḽ" : "Ḽ") + | ("ḿ" : "Ḿ") + | ("ṁ" : "Ṁ") + | ("ṃ" : "Ṃ") + | ("ṅ" : "Ṅ") + | ("ṇ" : "Ṇ") + | ("ṉ" : "Ṉ") + | ("ṋ" : "Ṋ") + | ("ṍ" : "Ṍ") + | ("ṏ" : "Ṏ") + | ("ṑ" : "Ṑ") + | ("ṓ" : "Ṓ") + | ("ṕ" : "Ṕ") + | ("ṗ" : "Ṗ") + | ("ṙ" : "Ṙ") + | ("ṛ" : "Ṛ") + | ("ṝ" : "Ṝ") + | ("ṟ" : "Ṟ") + | ("ṡ" : "Ṡ") + | ("ṣ" : "Ṣ") + | ("ṥ" : "Ṥ") + | ("ṧ" : "Ṧ") + | ("ṩ" : "Ṩ") + | ("ṫ" : "Ṫ") + | ("ṭ" : "Ṭ") + | ("ṯ" : "Ṯ") + | ("ṱ" : "Ṱ") + | ("ṳ" : "Ṳ") + | ("ṵ" : "Ṵ") + | ("ṷ" : "Ṷ") + | ("ṹ" : "Ṹ") + | ("ṻ" : "Ṻ") + | ("ṽ" : "Ṽ") + | ("ṿ" : "Ṿ") + | ("ẁ" : "Ẁ") + | ("ẃ" : "Ẃ") + | ("ẅ" : "Ẅ") + | ("ẇ" : "Ẇ") + | ("ẉ" : "Ẉ") + | ("ẋ" : "Ẋ") + | ("ẍ" : "Ẍ") + | ("ẏ" : "Ẏ") + | ("ẑ" : "Ẑ") + | ("ẓ" : "Ẓ") + | ("ẕ" : "Ẕ") + | ("ạ" : "Ạ") + | ("ả" : "Ả") + | ("ấ" : "Ấ") + | ("ầ" : "Ầ") + | ("ẩ" : "Ẩ") + | ("ẫ" : "Ẫ") + | ("ậ" : "Ậ") + | ("ắ" : "Ắ") + | ("ằ" : "Ằ") + | ("ẳ" : "Ẳ") + | ("ẵ" : "Ẵ") + | ("ặ" : "Ặ") + | ("ẹ" : "Ẹ") + | ("ẻ" : "Ẻ") + | ("ẽ" : "Ẽ") + | ("ế" : "Ế") + | ("ề" : "Ề") + | ("ể" : "Ể") + | ("ễ" : "Ễ") + | ("ệ" : "Ệ") + | ("ỉ" : "Ỉ") + | ("ị" : "Ị") + | ("ọ" : "Ọ") + | ("ỏ" : "Ỏ") + | ("ố" : "Ố") + | ("ồ" : "Ồ") + | ("ổ" : "Ổ") + | ("ỗ" : "Ỗ") + | ("ộ" : "Ộ") + | ("ớ" : "Ớ") + | ("ờ" : "Ờ") + | ("ở" : "Ở") + | ("ỡ" : "Ỡ") + | ("ợ" : "Ợ") + | ("ụ" : "Ụ") + | ("ủ" : "Ủ") + | ("ứ" : "Ứ") + | ("ừ" : "Ừ") + | ("ử" : "Ử") + | ("ữ" : "Ữ") + | ("ự" : "Ự") + | ("ỳ" : "Ỳ") + | ("ỵ" : "Ỵ") + | ("ỷ" : "Ỷ") + | ("ỹ" : "Ỹ") + | ("ἀ" : "Ἀ") + | ("ἁ" : "Ἁ") + | ("ἂ" : "Ἂ") + | ("ἃ" : "Ἃ") + | ("ἄ" : "Ἄ") + | ("ἅ" : "Ἅ") + | ("ἆ" : "Ἆ") + | ("ἇ" : "Ἇ") + | ("ἐ" : "Ἐ") + | ("ἑ" : "Ἑ") + | ("ἒ" : "Ἒ") + | ("ἓ" : "Ἓ") + | ("ἔ" : "Ἔ") + | ("ἕ" : "Ἕ") + | ("ἠ" : "Ἠ") + | ("ἡ" : "Ἡ") + | ("ἢ" : "Ἢ") + | ("ἣ" : "Ἣ") + | ("ἤ" : "Ἤ") + | ("ἥ" : "Ἥ") + | ("ἦ" : "Ἦ") + | ("ἧ" : "Ἧ") + | ("ἰ" : "Ἰ") + | ("ἱ" : "Ἱ") + | ("ἲ" : "Ἲ") + | ("ἳ" : "Ἳ") + | ("ἴ" : "Ἴ") + | ("ἵ" : "Ἵ") + | ("ἶ" : "Ἶ") + | ("ἷ" : "Ἷ") + | ("ὀ" : "Ὀ") + | ("ὁ" : "Ὁ") + | ("ὂ" : "Ὂ") + | ("ὃ" : "Ὃ") + | ("ὄ" : "Ὄ") + | ("ὅ" : "Ὅ") + | ("ὑ" : "Ὑ") + | ("ὓ" : "Ὓ") + | ("ὕ" : "Ὕ") + | ("ὗ" : "Ὗ") + | ("ὠ" : "Ὠ") + | ("ὡ" : "Ὡ") + | ("ὢ" : "Ὢ") + | ("ὣ" : "Ὣ") + | ("ὤ" : "Ὤ") + | ("ὥ" : "Ὥ") + | ("ὦ" : "Ὦ") + | ("ὧ" : "Ὧ") + | ("ᾀ" : "ᾈ") + | ("ᾁ" : "ᾉ") + | ("ᾂ" : "ᾊ") + | ("ᾃ" : "ᾋ") + | ("ᾄ" : "ᾌ") + | ("ᾅ" : "ᾍ") + | ("ᾆ" : "ᾎ") + | ("ᾇ" : "ᾏ") + | ("ᾐ" : "ᾘ") + | ("ᾑ" : "ᾙ") + | ("ᾒ" : "ᾚ") + | ("ᾓ" : "ᾛ") + | ("ᾔ" : "ᾜ") + | ("ᾕ" : "ᾝ") + | ("ᾖ" : "ᾞ") + | ("ᾗ" : "ᾟ") + | ("ᾠ" : "ᾨ") + | ("ᾡ" : "ᾩ") + | ("ᾢ" : "ᾪ") + | ("ᾣ" : "ᾫ") + | ("ᾤ" : "ᾬ") + | ("ᾥ" : "ᾭ") + | ("ᾦ" : "ᾮ") + | ("ᾧ" : "ᾯ") + | ("ᾰ" : "Ᾰ") + | ("ᾱ" : "Ᾱ") + | ("ὰ" : "Ὰ") + | ("ά" : "Ά") + | ("ᾳ" : "ᾼ") + | ("ὲ" : "Ὲ") + | ("έ" : "Έ") + | ("ὴ" : "Ὴ") + | ("ή" : "Ή") + | ("ῃ" : "ῌ") + | ("ῐ" : "Ῐ") + | ("ῑ" : "Ῑ") + | ("ὶ" : "Ὶ") + | ("ί" : "Ί") + | ("ῠ" : "Ῠ") + | ("ῡ" : "Ῡ") + | ("ὺ" : "Ὺ") + | ("ύ" : "Ύ") + | ("ῥ" : "Ῥ") + | ("ὸ" : "Ὸ") + | ("ό" : "Ό") + | ("ὼ" : "Ὼ") + | ("ώ" : "Ώ") + | ("ῳ" : "ῼ") + | ("ⓐ" : "Ⓐ") + | ("ⓑ" : "Ⓑ") + | ("ⓒ" : "Ⓒ") + | ("ⓓ" : "Ⓓ") + | ("ⓔ" : "Ⓔ") + | ("ⓕ" : "Ⓕ") + | ("ⓖ" : "Ⓖ") + | ("ⓗ" : "Ⓗ") + | ("ⓘ" : "Ⓘ") + | ("ⓙ" : "Ⓙ") + | ("ⓚ" : "Ⓚ") + | ("ⓛ" : "Ⓛ") + | ("ⓜ" : "Ⓜ") + | ("ⓝ" : "Ⓝ") + | ("ⓞ" : "Ⓞ") + | ("ⓟ" : "Ⓟ") + | ("ⓠ" : "Ⓠ") + | ("ⓡ" : "Ⓡ") + | ("ⓢ" : "Ⓢ") + | ("ⓣ" : "Ⓣ") + | ("ⓤ" : "Ⓤ") + | ("ⓥ" : "Ⓥ") + | ("ⓦ" : "Ⓦ") + | ("ⓧ" : "Ⓧ") + | ("ⓨ" : "Ⓨ") + | ("ⓩ" : "Ⓩ") + | ("ⰰ" : "Ⰰ") + | ("ⰱ" : "Ⰱ") + | ("ⰲ" : "Ⰲ") + | ("ⰳ" : "Ⰳ") + | ("ⰴ" : "Ⰴ") + | ("ⰵ" : "Ⰵ") + | ("ⰶ" : "Ⰶ") + | ("ⰷ" : "Ⰷ") + | ("ⰸ" : "Ⰸ") + | ("ⰹ" : "Ⰹ") + | ("ⰺ" : "Ⰺ") + | ("ⰻ" : "Ⰻ") + | ("ⰼ" : "Ⰼ") + | ("ⰽ" : "Ⰽ") + | ("ⰾ" : "Ⰾ") + | ("ⰿ" : "Ⰿ") + | ("ⱀ" : "Ⱀ") + | ("ⱁ" : "Ⱁ") + | ("ⱂ" : "Ⱂ") + | ("ⱃ" : "Ⱃ") + | ("ⱄ" : "Ⱄ") + | ("ⱅ" : "Ⱅ") + | ("ⱆ" : "Ⱆ") + | ("ⱇ" : "Ⱇ") + | ("ⱈ" : "Ⱈ") + | ("ⱉ" : "Ⱉ") + | ("ⱊ" : "Ⱊ") + | ("ⱋ" : "Ⱋ") + | ("ⱌ" : "Ⱌ") + | ("ⱍ" : "Ⱍ") + | ("ⱎ" : "Ⱎ") + | ("ⱏ" : "Ⱏ") + | ("ⱐ" : "Ⱐ") + | ("ⱑ" : "Ⱑ") + | ("ⱒ" : "Ⱒ") + | ("ⱓ" : "Ⱓ") + | ("ⱔ" : "Ⱔ") + | ("ⱕ" : "Ⱕ") + | ("ⱖ" : "Ⱖ") + | ("ⱗ" : "Ⱗ") + | ("ⱘ" : "Ⱘ") + | ("ⱙ" : "Ⱙ") + | ("ⱚ" : "Ⱚ") + | ("ⱛ" : "Ⱛ") + | ("ⱜ" : "Ⱜ") + | ("ⱝ" : "Ⱝ") + | ("ⱞ" : "Ⱞ") + | ("ⲁ" : "Ⲁ") + | ("ⲃ" : "Ⲃ") + | ("ⲅ" : "Ⲅ") + | ("ⲇ" : "Ⲇ") + | ("ⲉ" : "Ⲉ") + | ("ⲋ" : "Ⲋ") + | ("ⲍ" : "Ⲍ") + | ("ⲏ" : "Ⲏ") + | ("ⲑ" : "Ⲑ") + | ("ⲓ" : "Ⲓ") + | ("ⲕ" : "Ⲕ") + | ("ⲗ" : "Ⲗ") + | ("ⲙ" : "Ⲙ") + | ("ⲛ" : "Ⲛ") + | ("ⲝ" : "Ⲝ") + | ("ⲟ" : "Ⲟ") + | ("ⲡ" : "Ⲡ") + | ("ⲣ" : "Ⲣ") + | ("ⲥ" : "Ⲥ") + | ("ⲧ" : "Ⲧ") + | ("ⲩ" : "Ⲩ") + | ("ⲫ" : "Ⲫ") + | ("ⲭ" : "Ⲭ") + | ("ⲯ" : "Ⲯ") + | ("ⲱ" : "Ⲱ") + | ("ⲳ" : "Ⲳ") + | ("ⲵ" : "Ⲵ") + | ("ⲷ" : "Ⲷ") + | ("ⲹ" : "Ⲹ") + | ("ⲻ" : "Ⲻ") + | ("ⲽ" : "Ⲽ") + | ("ⲿ" : "Ⲿ") + | ("ⳁ" : "Ⳁ") + | ("ⳃ" : "Ⳃ") + | ("ⳅ" : "Ⳅ") + | ("ⳇ" : "Ⳇ") + | ("ⳉ" : "Ⳉ") + | ("ⳋ" : "Ⳋ") + | ("ⳍ" : "Ⳍ") + | ("ⳏ" : "Ⳏ") + | ("ⳑ" : "Ⳑ") + | ("ⳓ" : "Ⳓ") + | ("ⳕ" : "Ⳕ") + | ("ⳗ" : "Ⳗ") + | ("ⳙ" : "Ⳙ") + | ("ⳛ" : "Ⳛ") + | ("ⳝ" : "Ⳝ") + | ("ⳟ" : "Ⳟ") + | ("ⳡ" : "Ⳡ") + | ("ⳣ" : "Ⳣ") + | ("a" : "A") + | ("b" : "B") + | ("c" : "C") + | ("d" : "D") + | ("e" : "E") + | ("f" : "F") + | ("g" : "G") + | ("h" : "H") + | ("i" : "I") + | ("j" : "J") + | ("k" : "K") + | ("l" : "L") + | ("m" : "M") + | ("n" : "N") + | ("o" : "O") + | ("p" : "P") + | ("q" : "Q") + | ("r" : "R") + | ("s" : "S") + | ("t" : "T") + | ("u" : "U") + | ("v" : "V") + | ("w" : "W") + | ("x" : "X") + | ("y" : "Y") + | ("z" : "Z") +]; + +export toupper = toupper_deterministic + | ("i" : "İ") + | ("dž" : "Dž") + | ("lj" : "Lj") + | ("nj" : "Nj") + | ("dz" : "Dz") + | ("θ" : "ϴ"); + +export tolower = + ("A" : "a") + | ("B" : "b") + | ("C" : "c") + | ("D" : "d") + | ("E" : "e") + | ("F" : "f") + | ("G" : "g") + | ("H" : "h") + | ("I" : "i") + | ("J" : "j") + | ("K" : "k") + | ("L" : "l") + | ("M" : "m") + | ("N" : "n") + | ("O" : "o") + | ("P" : "p") + | ("Q" : "q") + | ("R" : "r") + | ("S" : "s") + | ("T" : "t") + | ("U" : "u") + | ("V" : "v") + | ("W" : "w") + | ("X" : "x") + | ("Y" : "y") + | ("Z" : "z") + | ("À" : "à") + | ("Á" : "á") + | ("Â" : "â") + | ("Ã" : "ã") + | ("Ä" : "ä") + | ("Å" : "å") + | ("Æ" : "æ") + | ("Ç" : "ç") + | ("È" : "è") + | ("É" : "é") + | ("Ê" : "ê") + | ("Ë" : "ë") + | ("Ì" : "ì") + | ("Í" : "í") + | ("Î" : "î") + | ("Ï" : "ï") + | ("Ð" : "ð") + | ("Ñ" : "ñ") + | ("Ò" : "ò") + | ("Ó" : "ó") + | ("Ô" : "ô") + | ("Õ" : "õ") + | ("Ö" : "ö") + | ("Ø" : "ø") + | ("Ù" : "ù") + | ("Ú" : "ú") + | ("Û" : "û") + | ("Ü" : "ü") + | ("Ý" : "ý") + | ("Þ" : "þ") + | ("Ā" : "ā") + | ("Ă" : "ă") + | ("Ą" : "ą") + | ("Ć" : "ć") + | ("Ĉ" : "ĉ") + | ("Ċ" : "ċ") + | ("Č" : "č") + | ("Ď" : "ď") + | ("Đ" : "đ") + | ("Ē" : "ē") + | ("Ĕ" : "ĕ") + | ("Ė" : "ė") + | ("Ę" : "ę") + | ("Ě" : "ě") + | ("Ĝ" : "ĝ") + | ("Ğ" : "ğ") + | ("Ġ" : "ġ") + | ("Ģ" : "ģ") + | ("Ĥ" : "ĥ") + | ("Ħ" : "ħ") + | ("Ĩ" : "ĩ") + | ("Ī" : "ī") + | ("Ĭ" : "ĭ") + | ("Į" : "į") + | ("İ" : "i") + | ("IJ" : "ij") + | ("Ĵ" : "ĵ") + | ("Ķ" : "ķ") + | ("Ĺ" : "ĺ") + | ("Ļ" : "ļ") + | ("Ľ" : "ľ") + | ("Ŀ" : "ŀ") + | ("Ł" : "ł") + | ("Ń" : "ń") + | ("Ņ" : "ņ") + | ("Ň" : "ň") + | ("Ŋ" : "ŋ") + | ("Ō" : "ō") + | ("Ŏ" : "ŏ") + | ("Ő" : "ő") + | ("Œ" : "œ") + | ("Ŕ" : "ŕ") + | ("Ŗ" : "ŗ") + | ("Ř" : "ř") + | ("Ś" : "ś") + | ("Ŝ" : "ŝ") + | ("Ş" : "ş") + | ("Š" : "š") + | ("Ţ" : "ţ") + | ("Ť" : "ť") + | ("Ŧ" : "ŧ") + | ("Ũ" : "ũ") + | ("Ū" : "ū") + | ("Ŭ" : "ŭ") + | ("Ů" : "ů") + | ("Ű" : "ű") + | ("Ų" : "ų") + | ("Ŵ" : "ŵ") + | ("Ŷ" : "ŷ") + | ("Ÿ" : "ÿ") + | ("Ź" : "ź") + | ("Ż" : "ż") + | ("Ž" : "ž") + | ("Ɓ" : "ɓ") + | ("Ƃ" : "ƃ") + | ("Ƅ" : "ƅ") + | ("Ɔ" : "ɔ") + | ("Ƈ" : "ƈ") + | ("Ɖ" : "ɖ") + | ("Ɗ" : "ɗ") + | ("Ƌ" : "ƌ") + | ("Ǝ" : "ǝ") + | ("Ə" : "ə") + | ("Ɛ" : "ɛ") + | ("Ƒ" : "ƒ") + | ("Ɠ" : "ɠ") + | ("Ɣ" : "ɣ") + | ("Ɩ" : "ɩ") + | ("Ɨ" : "ɨ") + | ("Ƙ" : "ƙ") + | ("Ɯ" : "ɯ") + | ("Ɲ" : "ɲ") + | ("Ɵ" : "ɵ") + | ("Ơ" : "ơ") + | ("Ƣ" : "ƣ") + | ("Ƥ" : "ƥ") + | ("Ƨ" : "ƨ") + | ("Ʃ" : "ʃ") + | ("Ƭ" : "ƭ") + | ("Ʈ" : "ʈ") + | ("Ư" : "ư") + | ("Ʊ" : "ʊ") + | ("Ʋ" : "ʋ") + | ("Ƴ" : "ƴ") + | ("Ƶ" : "ƶ") + | ("Ʒ" : "ʒ") + | ("Ƹ" : "ƹ") + | ("Ƽ" : "ƽ") + | ("DŽ" : "dž") + | ("Dž" : "dž") + | ("LJ" : "lj") + | ("Lj" : "lj") + | ("NJ" : "nj") + | ("Nj" : "nj") + | ("Ǎ" : "ǎ") + | ("Ǐ" : "ǐ") + | ("Ǒ" : "ǒ") + | ("Ǔ" : "ǔ") + | ("Ǖ" : "ǖ") + | ("Ǘ" : "ǘ") + | ("Ǚ" : "ǚ") + | ("Ǜ" : "ǜ") + | ("Ǟ" : "ǟ") + | ("Ǡ" : "ǡ") + | ("Ǣ" : "ǣ") + | ("Ǥ" : "ǥ") + | ("Ǧ" : "ǧ") + | ("Ǩ" : "ǩ") + | ("Ǫ" : "ǫ") + | ("Ǭ" : "ǭ") + | ("Ǯ" : "ǯ") + | ("DZ" : "dz") + | ("Dz" : "dz") + | ("Ǵ" : "ǵ") + | ("Ƕ" : "ƕ") + | ("Ƿ" : "ƿ") + | ("Ǹ" : "ǹ") + | ("Ǻ" : "ǻ") + | ("Ǽ" : "ǽ") + | ("Ǿ" : "ǿ") + | ("Ȁ" : "ȁ") + | ("Ȃ" : "ȃ") + | ("Ȅ" : "ȅ") + | ("Ȇ" : "ȇ") + | ("Ȉ" : "ȉ") + | ("Ȋ" : "ȋ") + | ("Ȍ" : "ȍ") + | ("Ȏ" : "ȏ") + | ("Ȑ" : "ȑ") + | ("Ȓ" : "ȓ") + | ("Ȕ" : "ȕ") + | ("Ȗ" : "ȗ") + | ("Ș" : "ș") + | ("Ț" : "ț") + | ("Ȝ" : "ȝ") + | ("Ȟ" : "ȟ") + | ("Ƞ" : "ƞ") + | ("Ȣ" : "ȣ") + | ("Ȥ" : "ȥ") + | ("Ȧ" : "ȧ") + | ("Ȩ" : "ȩ") + | ("Ȫ" : "ȫ") + | ("Ȭ" : "ȭ") + | ("Ȯ" : "ȯ") + | ("Ȱ" : "ȱ") + | ("Ȳ" : "ȳ") + | ("Ȼ" : "ȼ") + | ("Ƚ" : "ƚ") + | ("Ɂ" : "ʔ") + | ("Ά" : "ά") + | ("Έ" : "έ") + | ("Ή" : "ή") + | ("Ί" : "ί") + | ("Ό" : "ό") + | ("Ύ" : "ύ") + | ("Ώ" : "ώ") + | ("Α" : "α") + | ("Β" : "β") + | ("Γ" : "γ") + | ("Δ" : "δ") + | ("Ε" : "ε") + | ("Ζ" : "ζ") + | ("Η" : "η") + | ("Θ" : "θ") + | ("Ι" : "ι") + | ("Κ" : "κ") + | ("Λ" : "λ") + | ("Μ" : "μ") + | ("Ν" : "ν") + | ("Ξ" : "ξ") + | ("Ο" : "ο") + | ("Π" : "π") + | ("Ρ" : "ρ") + | ("Σ" : "σ") + | ("Τ" : "τ") + | ("Υ" : "υ") + | ("Φ" : "φ") + | ("Χ" : "χ") + | ("Ψ" : "ψ") + | ("Ω" : "ω") + | ("Ϊ" : "ϊ") + | ("Ϋ" : "ϋ") + | ("Ϣ" : "ϣ") + | ("Ϥ" : "ϥ") + | ("Ϧ" : "ϧ") + | ("Ϩ" : "ϩ") + | ("Ϫ" : "ϫ") + | ("Ϭ" : "ϭ") + | ("Ϯ" : "ϯ") + | ("ϴ" : "θ") + | ("Ϸ" : "ϸ") + | ("Ϲ" : "ϲ") + | ("Ϻ" : "ϻ") + | ("Ѐ" : "ѐ") + | ("Ё" : "ё") + | ("Ђ" : "ђ") + | ("Ѓ" : "ѓ") + | ("Є" : "є") + | ("Ѕ" : "ѕ") + | ("І" : "і") + | ("Ї" : "ї") + | ("Ј" : "ј") + | ("Љ" : "љ") + | ("Њ" : "њ") + | ("Ћ" : "ћ") + | ("Ќ" : "ќ") + | ("Ѝ" : "ѝ") + | ("Ў" : "ў") + | ("Џ" : "џ") + | ("А" : "а") + | ("Б" : "б") + | ("В" : "в") + | ("Г" : "г") + | ("Д" : "д") + | ("Е" : "е") + | ("Ж" : "ж") + | ("З" : "з") + | ("И" : "и") + | ("Й" : "й") + | ("К" : "к") + | ("Л" : "л") + | ("М" : "м") + | ("Н" : "н") + | ("О" : "о") + | ("П" : "п") + | ("Р" : "р") + | ("С" : "с") + | ("Т" : "т") + | ("У" : "у") + | ("Ф" : "ф") + | ("Х" : "х") + | ("Ц" : "ц") + | ("Ч" : "ч") + | ("Ш" : "ш") + | ("Щ" : "щ") + | ("Ъ" : "ъ") + | ("Ы" : "ы") + | ("Ь" : "ь") + | ("Э" : "э") + | ("Ю" : "ю") + | ("Я" : "я") + | ("Ѡ" : "ѡ") + | ("Ѣ" : "ѣ") + | ("Ѥ" : "ѥ") + | ("Ѧ" : "ѧ") + | ("Ѩ" : "ѩ") + | ("Ѫ" : "ѫ") + | ("Ѭ" : "ѭ") + | ("Ѯ" : "ѯ") + | ("Ѱ" : "ѱ") + | ("Ѳ" : "ѳ") + | ("Ѵ" : "ѵ") + | ("Ѷ" : "ѷ") + | ("Ѹ" : "ѹ") + | ("Ѻ" : "ѻ") + | ("Ѽ" : "ѽ") + | ("Ѿ" : "ѿ") + | ("Ҁ" : "ҁ") + | ("Ҋ" : "ҋ") + | ("Ҍ" : "ҍ") + | ("Ҏ" : "ҏ") + | ("Ґ" : "ґ") + | ("Ғ" : "ғ") + | ("Ҕ" : "ҕ") + | ("Җ" : "җ") + | ("Ҙ" : "ҙ") + | ("Қ" : "қ") + | ("Ҝ" : "ҝ") + | ("Ҟ" : "ҟ") + | ("Ҡ" : "ҡ") + | ("Ң" : "ң") + | ("Ҥ" : "ҥ") + | ("Ҧ" : "ҧ") + | ("Ҩ" : "ҩ") + | ("Ҫ" : "ҫ") + | ("Ҭ" : "ҭ") + | ("Ү" : "ү") + | ("Ұ" : "ұ") + | ("Ҳ" : "ҳ") + | ("Ҵ" : "ҵ") + | ("Ҷ" : "ҷ") + | ("Ҹ" : "ҹ") + | ("Һ" : "һ") + | ("Ҽ" : "ҽ") + | ("Ҿ" : "ҿ") + | ("Ӂ" : "ӂ") + | ("Ӄ" : "ӄ") + | ("Ӆ" : "ӆ") + | ("Ӈ" : "ӈ") + | ("Ӊ" : "ӊ") + | ("Ӌ" : "ӌ") + | ("Ӎ" : "ӎ") + | ("Ӑ" : "ӑ") + | ("Ӓ" : "ӓ") + | ("Ӕ" : "ӕ") + | ("Ӗ" : "ӗ") + | ("Ә" : "ә") + | ("Ӛ" : "ӛ") + | ("Ӝ" : "ӝ") + | ("Ӟ" : "ӟ") + | ("Ӡ" : "ӡ") + | ("Ӣ" : "ӣ") + | ("Ӥ" : "ӥ") + | ("Ӧ" : "ӧ") + | ("Ө" : "ө") + | ("Ӫ" : "ӫ") + | ("Ӭ" : "ӭ") + | ("Ӯ" : "ӯ") + | ("Ӱ" : "ӱ") + | ("Ӳ" : "ӳ") + | ("Ӵ" : "ӵ") + | ("Ӷ" : "ӷ") + | ("Ӹ" : "ӹ") + | ("Ԁ" : "ԁ") + | ("Ԃ" : "ԃ") + | ("Ԅ" : "ԅ") + | ("Ԇ" : "ԇ") + | ("Ԉ" : "ԉ") + | ("Ԋ" : "ԋ") + | ("Ԍ" : "ԍ") + | ("Ԏ" : "ԏ") + | ("Ա" : "ա") + | ("Բ" : "բ") + | ("Գ" : "գ") + | ("Դ" : "դ") + | ("Ե" : "ե") + | ("Զ" : "զ") + | ("Է" : "է") + | ("Ը" : "ը") + | ("Թ" : "թ") + | ("Ժ" : "ժ") + | ("Ի" : "ի") + | ("Լ" : "լ") + | ("Խ" : "խ") + | ("Ծ" : "ծ") + | ("Կ" : "կ") + | ("Հ" : "հ") + | ("Ձ" : "ձ") + | ("Ղ" : "ղ") + | ("Ճ" : "ճ") + | ("Մ" : "մ") + | ("Յ" : "յ") + | ("Ն" : "ն") + | ("Շ" : "շ") + | ("Ո" : "ո") + | ("Չ" : "չ") + | ("Պ" : "պ") + | ("Ջ" : "ջ") + | ("Ռ" : "ռ") + | ("Ս" : "ս") + | ("Վ" : "վ") + | ("Տ" : "տ") + | ("Ր" : "ր") + | ("Ց" : "ց") + | ("Ւ" : "ւ") + | ("Փ" : "փ") + | ("Ք" : "ք") + | ("Օ" : "օ") + | ("Ֆ" : "ֆ") + | ("Ⴀ" : "ⴀ") + | ("Ⴁ" : "ⴁ") + | ("Ⴂ" : "ⴂ") + | ("Ⴃ" : "ⴃ") + | ("Ⴄ" : "ⴄ") + | ("Ⴅ" : "ⴅ") + | ("Ⴆ" : "ⴆ") + | ("Ⴇ" : "ⴇ") + | ("Ⴈ" : "ⴈ") + | ("Ⴉ" : "ⴉ") + | ("Ⴊ" : "ⴊ") + | ("Ⴋ" : "ⴋ") + | ("Ⴌ" : "ⴌ") + | ("Ⴍ" : "ⴍ") + | ("Ⴎ" : "ⴎ") + | ("Ⴏ" : "ⴏ") + | ("Ⴐ" : "ⴐ") + | ("Ⴑ" : "ⴑ") + | ("Ⴒ" : "ⴒ") + | ("Ⴓ" : "ⴓ") + | ("Ⴔ" : "ⴔ") + | ("Ⴕ" : "ⴕ") + | ("Ⴖ" : "ⴖ") + | ("Ⴗ" : "ⴗ") + | ("Ⴘ" : "ⴘ") + | ("Ⴙ" : "ⴙ") + | ("Ⴚ" : "ⴚ") + | ("Ⴛ" : "ⴛ") + | ("Ⴜ" : "ⴜ") + | ("Ⴝ" : "ⴝ") + | ("Ⴞ" : "ⴞ") + | ("Ⴟ" : "ⴟ") + | ("Ⴠ" : "ⴠ") + | ("Ⴡ" : "ⴡ") + | ("Ⴢ" : "ⴢ") + | ("Ⴣ" : "ⴣ") + | ("Ⴤ" : "ⴤ") + | ("Ⴥ" : "ⴥ") + | ("Ḁ" : "ḁ") + | ("Ḃ" : "ḃ") + | ("Ḅ" : "ḅ") + | ("Ḇ" : "ḇ") + | ("Ḉ" : "ḉ") + | ("Ḋ" : "ḋ") + | ("Ḍ" : "ḍ") + | ("Ḏ" : "ḏ") + | ("Ḑ" : "ḑ") + | ("Ḓ" : "ḓ") + | ("Ḕ" : "ḕ") + | ("Ḗ" : "ḗ") + | ("Ḙ" : "ḙ") + | ("Ḛ" : "ḛ") + | ("Ḝ" : "ḝ") + | ("Ḟ" : "ḟ") + | ("Ḡ" : "ḡ") + | ("Ḣ" : "ḣ") + | ("Ḥ" : "ḥ") + | ("Ḧ" : "ḧ") + | ("Ḩ" : "ḩ") + | ("Ḫ" : "ḫ") + | ("Ḭ" : "ḭ") + | ("Ḯ" : "ḯ") + | ("Ḱ" : "ḱ") + | ("Ḳ" : "ḳ") + | ("Ḵ" : "ḵ") + | ("Ḷ" : "ḷ") + | ("Ḹ" : "ḹ") + | ("Ḻ" : "ḻ") + | ("Ḽ" : "ḽ") + | ("Ḿ" : "ḿ") + | ("Ṁ" : "ṁ") + | ("Ṃ" : "ṃ") + | ("Ṅ" : "ṅ") + | ("Ṇ" : "ṇ") + | ("Ṉ" : "ṉ") + | ("Ṋ" : "ṋ") + | ("Ṍ" : "ṍ") + | ("Ṏ" : "ṏ") + | ("Ṑ" : "ṑ") + | ("Ṓ" : "ṓ") + | ("Ṕ" : "ṕ") + | ("Ṗ" : "ṗ") + | ("Ṙ" : "ṙ") + | ("Ṛ" : "ṛ") + | ("Ṝ" : "ṝ") + | ("Ṟ" : "ṟ") + | ("Ṡ" : "ṡ") + | ("Ṣ" : "ṣ") + | ("Ṥ" : "ṥ") + | ("Ṧ" : "ṧ") + | ("Ṩ" : "ṩ") + | ("Ṫ" : "ṫ") + | ("Ṭ" : "ṭ") + | ("Ṯ" : "ṯ") + | ("Ṱ" : "ṱ") + | ("Ṳ" : "ṳ") + | ("Ṵ" : "ṵ") + | ("Ṷ" : "ṷ") + | ("Ṹ" : "ṹ") + | ("Ṻ" : "ṻ") + | ("Ṽ" : "ṽ") + | ("Ṿ" : "ṿ") + | ("Ẁ" : "ẁ") + | ("Ẃ" : "ẃ") + | ("Ẅ" : "ẅ") + | ("Ẇ" : "ẇ") + | ("Ẉ" : "ẉ") + | ("Ẋ" : "ẋ") + | ("Ẍ" : "ẍ") + | ("Ẏ" : "ẏ") + | ("Ẑ" : "ẑ") + | ("Ẓ" : "ẓ") + | ("Ẕ" : "ẕ") + | ("Ạ" : "ạ") + | ("Ả" : "ả") + | ("Ấ" : "ấ") + | ("Ầ" : "ầ") + | ("Ẩ" : "ẩ") + | ("Ẫ" : "ẫ") + | ("Ậ" : "ậ") + | ("Ắ" : "ắ") + | ("Ằ" : "ằ") + | ("Ẳ" : "ẳ") + | ("Ẵ" : "ẵ") + | ("Ặ" : "ặ") + | ("Ẹ" : "ẹ") + | ("Ẻ" : "ẻ") + | ("Ẽ" : "ẽ") + | ("Ế" : "ế") + | ("Ề" : "ề") + | ("Ể" : "ể") + | ("Ễ" : "ễ") + | ("Ệ" : "ệ") + | ("Ỉ" : "ỉ") + | ("Ị" : "ị") + | ("Ọ" : "ọ") + | ("Ỏ" : "ỏ") + | ("Ố" : "ố") + | ("Ồ" : "ồ") + | ("Ổ" : "ổ") + | ("Ỗ" : "ỗ") + | ("Ộ" : "ộ") + | ("Ớ" : "ớ") + | ("Ờ" : "ờ") + | ("Ở" : "ở") + | ("Ỡ" : "ỡ") + | ("Ợ" : "ợ") + | ("Ụ" : "ụ") + | ("Ủ" : "ủ") + | ("Ứ" : "ứ") + | ("Ừ" : "ừ") + | ("Ử" : "ử") + | ("Ữ" : "ữ") + | ("Ự" : "ự") + | ("Ỳ" : "ỳ") + | ("Ỵ" : "ỵ") + | ("Ỷ" : "ỷ") + | ("Ỹ" : "ỹ") + | ("Ἀ" : "ἀ") + | ("Ἁ" : "ἁ") + | ("Ἂ" : "ἂ") + | ("Ἃ" : "ἃ") + | ("Ἄ" : "ἄ") + | ("Ἅ" : "ἅ") + | ("Ἆ" : "ἆ") + | ("Ἇ" : "ἇ") + | ("Ἐ" : "ἐ") + | ("Ἑ" : "ἑ") + | ("Ἒ" : "ἒ") + | ("Ἓ" : "ἓ") + | ("Ἔ" : "ἔ") + | ("Ἕ" : "ἕ") + | ("Ἠ" : "ἠ") + | ("Ἡ" : "ἡ") + | ("Ἢ" : "ἢ") + | ("Ἣ" : "ἣ") + | ("Ἤ" : "ἤ") + | ("Ἥ" : "ἥ") + | ("Ἦ" : "ἦ") + | ("Ἧ" : "ἧ") + | ("Ἰ" : "ἰ") + | ("Ἱ" : "ἱ") + | ("Ἲ" : "ἲ") + | ("Ἳ" : "ἳ") + | ("Ἴ" : "ἴ") + | ("Ἵ" : "ἵ") + | ("Ἶ" : "ἶ") + | ("Ἷ" : "ἷ") + | ("Ὀ" : "ὀ") + | ("Ὁ" : "ὁ") + | ("Ὂ" : "ὂ") + | ("Ὃ" : "ὃ") + | ("Ὄ" : "ὄ") + | ("Ὅ" : "ὅ") + | ("Ὑ" : "ὑ") + | ("Ὓ" : "ὓ") + | ("Ὕ" : "ὕ") + | ("Ὗ" : "ὗ") + | ("Ὠ" : "ὠ") + | ("Ὡ" : "ὡ") + | ("Ὢ" : "ὢ") + | ("Ὣ" : "ὣ") + | ("Ὤ" : "ὤ") + | ("Ὥ" : "ὥ") + | ("Ὦ" : "ὦ") + | ("Ὧ" : "ὧ") + | ("ᾈ" : "ᾀ") + | ("ᾉ" : "ᾁ") + | ("ᾊ" : "ᾂ") + | ("ᾋ" : "ᾃ") + | ("ᾌ" : "ᾄ") + | ("ᾍ" : "ᾅ") + | ("ᾎ" : "ᾆ") + | ("ᾏ" : "ᾇ") + | ("ᾘ" : "ᾐ") + | ("ᾙ" : "ᾑ") + | ("ᾚ" : "ᾒ") + | ("ᾛ" : "ᾓ") + | ("ᾜ" : "ᾔ") + | ("ᾝ" : "ᾕ") + | ("ᾞ" : "ᾖ") + | ("ᾟ" : "ᾗ") + | ("ᾨ" : "ᾠ") + | ("ᾩ" : "ᾡ") + | ("ᾪ" : "ᾢ") + | ("ᾫ" : "ᾣ") + | ("ᾬ" : "ᾤ") + | ("ᾭ" : "ᾥ") + | ("ᾮ" : "ᾦ") + | ("ᾯ" : "ᾧ") + | ("Ᾰ" : "ᾰ") + | ("Ᾱ" : "ᾱ") + | ("Ὰ" : "ὰ") + | ("Ά" : "ά") + | ("ᾼ" : "ᾳ") + | ("Ὲ" : "ὲ") + | ("Έ" : "έ") + | ("Ὴ" : "ὴ") + | ("Ή" : "ή") + | ("ῌ" : "ῃ") + | ("Ῐ" : "ῐ") + | ("Ῑ" : "ῑ") + | ("Ὶ" : "ὶ") + | ("Ί" : "ί") + | ("Ῠ" : "ῠ") + | ("Ῡ" : "ῡ") + | ("Ὺ" : "ὺ") + | ("Ύ" : "ύ") + | ("Ῥ" : "ῥ") + | ("Ὸ" : "ὸ") + | ("Ό" : "ό") + | ("Ὼ" : "ὼ") + | ("Ώ" : "ώ") + | ("ῼ" : "ῳ") + | ("Ⓐ" : "ⓐ") + | ("Ⓑ" : "ⓑ") + | ("Ⓒ" : "ⓒ") + | ("Ⓓ" : "ⓓ") + | ("Ⓔ" : "ⓔ") + | ("Ⓕ" : "ⓕ") + | ("Ⓖ" : "ⓖ") + | ("Ⓗ" : "ⓗ") + | ("Ⓘ" : "ⓘ") + | ("Ⓙ" : "ⓙ") + | ("Ⓚ" : "ⓚ") + | ("Ⓛ" : "ⓛ") + | ("Ⓜ" : "ⓜ") + | ("Ⓝ" : "ⓝ") + | ("Ⓞ" : "ⓞ") + | ("Ⓟ" : "ⓟ") + | ("Ⓠ" : "ⓠ") + | ("Ⓡ" : "ⓡ") + | ("Ⓢ" : "ⓢ") + | ("Ⓣ" : "ⓣ") + | ("Ⓤ" : "ⓤ") + | ("Ⓥ" : "ⓥ") + | ("Ⓦ" : "ⓦ") + | ("Ⓧ" : "ⓧ") + | ("Ⓨ" : "ⓨ") + | ("Ⓩ" : "ⓩ") + | ("Ⰰ" : "ⰰ") + | ("Ⰱ" : "ⰱ") + | ("Ⰲ" : "ⰲ") + | ("Ⰳ" : "ⰳ") + | ("Ⰴ" : "ⰴ") + | ("Ⰵ" : "ⰵ") + | ("Ⰶ" : "ⰶ") + | ("Ⰷ" : "ⰷ") + | ("Ⰸ" : "ⰸ") + | ("Ⰹ" : "ⰹ") + | ("Ⰺ" : "ⰺ") + | ("Ⰻ" : "ⰻ") + | ("Ⰼ" : "ⰼ") + | ("Ⰽ" : "ⰽ") + | ("Ⰾ" : "ⰾ") + | ("Ⰿ" : "ⰿ") + | ("Ⱀ" : "ⱀ") + | ("Ⱁ" : "ⱁ") + | ("Ⱂ" : "ⱂ") + | ("Ⱃ" : "ⱃ") + | ("Ⱄ" : "ⱄ") + | ("Ⱅ" : "ⱅ") + | ("Ⱆ" : "ⱆ") + | ("Ⱇ" : "ⱇ") + | ("Ⱈ" : "ⱈ") + | ("Ⱉ" : "ⱉ") + | ("Ⱊ" : "ⱊ") + | ("Ⱋ" : "ⱋ") + | ("Ⱌ" : "ⱌ") + | ("Ⱍ" : "ⱍ") + | ("Ⱎ" : "ⱎ") + | ("Ⱏ" : "ⱏ") + | ("Ⱐ" : "ⱐ") + | ("Ⱑ" : "ⱑ") + | ("Ⱒ" : "ⱒ") + | ("Ⱓ" : "ⱓ") + | ("Ⱔ" : "ⱔ") + | ("Ⱕ" : "ⱕ") + | ("Ⱖ" : "ⱖ") + | ("Ⱗ" : "ⱗ") + | ("Ⱘ" : "ⱘ") + | ("Ⱙ" : "ⱙ") + | ("Ⱚ" : "ⱚ") + | ("Ⱛ" : "ⱛ") + | ("Ⱜ" : "ⱜ") + | ("Ⱝ" : "ⱝ") + | ("Ⱞ" : "ⱞ") + | ("Ⲁ" : "ⲁ") + | ("Ⲃ" : "ⲃ") + | ("Ⲅ" : "ⲅ") + | ("Ⲇ" : "ⲇ") + | ("Ⲉ" : "ⲉ") + | ("Ⲋ" : "ⲋ") + | ("Ⲍ" : "ⲍ") + | ("Ⲏ" : "ⲏ") + | ("Ⲑ" : "ⲑ") + | ("Ⲓ" : "ⲓ") + | ("Ⲕ" : "ⲕ") + | ("Ⲗ" : "ⲗ") + | ("Ⲙ" : "ⲙ") + | ("Ⲛ" : "ⲛ") + | ("Ⲝ" : "ⲝ") + | ("Ⲟ" : "ⲟ") + | ("Ⲡ" : "ⲡ") + | ("Ⲣ" : "ⲣ") + | ("Ⲥ" : "ⲥ") + | ("Ⲧ" : "ⲧ") + | ("Ⲩ" : "ⲩ") + | ("Ⲫ" : "ⲫ") + | ("Ⲭ" : "ⲭ") + | ("Ⲯ" : "ⲯ") + | ("Ⲱ" : "ⲱ") + | ("Ⲳ" : "ⲳ") + | ("Ⲵ" : "ⲵ") + | ("Ⲷ" : "ⲷ") + | ("Ⲹ" : "ⲹ") + | ("Ⲻ" : "ⲻ") + | ("Ⲽ" : "ⲽ") + | ("Ⲿ" : "ⲿ") + | ("Ⳁ" : "ⳁ") + | ("Ⳃ" : "ⳃ") + | ("Ⳅ" : "ⳅ") + | ("Ⳇ" : "ⳇ") + | ("Ⳉ" : "ⳉ") + | ("Ⳋ" : "ⳋ") + | ("Ⳍ" : "ⳍ") + | ("Ⳏ" : "ⳏ") + | ("Ⳑ" : "ⳑ") + | ("Ⳓ" : "ⳓ") + | ("Ⳕ" : "ⳕ") + | ("Ⳗ" : "ⳗ") + | ("Ⳙ" : "ⳙ") + | ("Ⳛ" : "ⳛ") + | ("Ⳝ" : "ⳝ") + | ("Ⳟ" : "ⳟ") + | ("Ⳡ" : "ⳡ") + | ("Ⳣ" : "ⳣ") + | ("A" : "a") + | ("B" : "b") + | ("C" : "c") + | ("D" : "d") + | ("E" : "e") + | ("F" : "f") + | ("G" : "g") + | ("H" : "h") + | ("I" : "i") + | ("J" : "j") + | ("K" : "k") + | ("L" : "l") + | ("M" : "m") + | ("N" : "n") + | ("O" : "o") + | ("P" : "p") + | ("Q" : "q") + | ("R" : "r") + | ("S" : "s") + | ("T" : "t") + | ("U" : "u") + | ("V" : "v") + | ("W" : "w") + | ("X" : "x") + | ("Y" : "y") + | ("Z" : "z") +; + +sigma_star = Optimize[bytelib.kBytes*] ; + +export TOUPPER_DETERMINISTIC = + CDRewrite[toupper_deterministic, "", "", sigma_star, 'ltr', 'obl'] ; + +export TOUPPER = CDRewrite[toupper, "", "", sigma_star, 'ltr', 'obl'] ; + +export TOLOWER = CDRewrite[tolower, "", "", sigma_star, 'ltr', 'obl'] ; + +export a_through_z_toupper = Optimize[ + ("a" : "A") + | ("b" : "B") + | ("c" : "C") + | ("d" : "D") + | ("e" : "E") + | ("f" : "F") + | ("g" : "G") + | ("h" : "H") + | ("i" : "I") + | ("j" : "J") + | ("k" : "K") + | ("l" : "L") + | ("m" : "M") + | ("n" : "N") + | ("o" : "O") + | ("p" : "P") + | ("q" : "Q") + | ("r" : "R") + | ("s" : "S") + | ("t" : "T") + | ("u" : "U") + | ("v" : "V") + | ("w" : "W") + | ("x" : "X") + | ("y" : "Y") + | ("z" : "Z") +]; diff --git a/third_party/chinese_text_normalization/thrax/src/util/germanic.tsv b/third_party/chinese_text_normalization/thrax/src/util/germanic.tsv new file mode 100644 index 000000000..6285e0106 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/germanic.tsv @@ -0,0 +1,81 @@ +1 10 11 +2 10 12 +3 10 13 +4 10 14 +5 10 15 +6 10 16 +7 10 17 +8 10 18 +9 10 19 +1 20 21 +2 20 22 +3 20 23 +4 20 24 +5 20 25 +6 20 26 +7 20 27 +8 20 28 +9 20 29 +1 30 31 +2 30 32 +3 30 33 +4 30 34 +5 30 35 +6 30 36 +7 30 37 +8 30 38 +9 30 39 +1 40 41 +2 40 42 +3 40 43 +4 40 44 +5 40 45 +6 40 46 +7 40 47 +8 40 48 +9 40 49 +1 50 51 +2 50 52 +3 50 53 +4 50 54 +5 50 55 +6 50 56 +7 50 57 +8 50 58 +9 50 59 +1 60 61 +2 60 62 +3 60 63 +4 60 64 +5 60 65 +6 60 66 +7 60 67 +8 60 68 +9 60 69 +1 70 71 +2 70 72 +3 70 73 +4 70 74 +5 70 75 +6 70 76 +7 70 77 +8 70 78 +9 70 79 +1 80 81 +2 80 82 +3 80 83 +4 80 84 +5 80 85 +6 80 86 +7 80 87 +8 80 88 +9 80 89 +1 90 91 +2 90 92 +3 90 93 +4 90 94 +5 90 95 +6 90 96 +7 90 97 +8 90 98 +9 90 99 diff --git a/third_party/chinese_text_normalization/thrax/src/util/util.grm b/third_party/chinese_text_normalization/thrax/src/util/util.grm new file mode 100644 index 000000000..bb559235f --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/src/util/util.grm @@ -0,0 +1,528 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Utility functions. + +import 'util/byte.grm' as bytelib; +import 'util/case.grm' as case; + +# A simplification helper function that encapsulates the left-to-right and +# obligatory options. +func CDR[t, l, r, s] { + return CDRewrite[t, l, r, s, 'ltr', 'obl']; +} + +# Useful insertion and deletion functions. + +func I[expr] { + return "" : expr; +} + +func D[expr] { + return expr : ""; +} + +# A machine that accepts nothing. +export NULL = Optimize["" - ""]; + +export d1to9 = Optimize[bytelib.kDigit - "0"]; +export d02to9 = Optimize[bytelib.kDigit - "1"]; +export d2to9 = Optimize[d02to9 - "0"]; +# Any number that isn't zero. May have leading zeroes. +export non_zero_number = Optimize["0"* d1to9 bytelib.kDigit*]; +# Any number, allowing for factorization markers. +export factorized_number = Optimize[(bytelib.kDigit | "\[" | "E" | "\]")*]; +export non_zero_factorized_number = Optimize["0"* d1to9 factorized_number]; + +export ins_space = "" : " "; +export ins_sil = "" : " sil "; +export ins_short_sil = "" : " sil|short "; +export ins_quote = "" : "\""; + +# Caveat: pass_anything does not pass stuff like "[~~]". +export pass_anything = bytelib.kBytes*; +export pass_any_word = bytelib.kNotSpace+; + +export pass_space_plus = bytelib.kSpace+; +export pass_space_star = bytelib.kSpace*; + +export clear_space = bytelib.kSpace : ""; +export clear_space_plus = bytelib.kSpace+ : ""; +export clear_space_star = bytelib.kSpace* : ""; + +export space_to_underscore = (bytelib.kAlnum | (" " : "_"))*; +export one_space = clear_space_star ins_space; + +export CLEAN_SPACES = Optimize[ + "" | (clear_space_star + (pass_any_word (bytelib.kSpace+ : " "))* + pass_any_word clear_space_star)] +; + +export del_space_star = " "* : ""; +export del_space_plus = " "+ : ""; + +export sigma_star = Optimize[pass_anything]; + +export DELETE_SPACES = + CDRewrite[clear_space_plus, "", "", sigma_star]; + +export REMOVE_LEADING_SPACES = + CDRewrite[clear_space_plus, "[BOS]", "", sigma_star]; + +export REMOVE_FINAL_SPACES = + CDRewrite[clear_space_plus, "", "[EOS]", sigma_star]; + +export REMOVE_BOUNDARY_SPACES = REMOVE_LEADING_SPACES @ REMOVE_FINAL_SPACES; + +export delete_initial_zero = + CDRewrite["0" : "", "[BOS]", bytelib.kDigit, sigma_star]; + +export lower_case_letter = Optimize[case.tolower | case.LOWER | bytelib.kLower]; +export lower_case = Optimize[lower_case_letter+]; +export lower_case_anything = case.TOLOWER; + +export upper_case_letter = Optimize[case.toupper | case.UPPER | bytelib.kUpper]; +export upper_case = Optimize[upper_case_letter+]; +export upper_case_anything = case.TOUPPER; + +export opening_brace = del_space_star ("{" : "") del_space_star; +export closing_brace = del_space_star ("}" : "") del_space_star; + +export quote = del_space_star ("\"" : "") del_space_star; +export double_quote = del_space_star ("\"\"" : "") del_space_star; + +export VOWELS = Optimize["a" | "e" | "i" | "o" | "u"]; +export VOWELS_Y = Optimize["a" | "e" | "i" | "o" | "u" | "y"]; +export VOWELS_INSENSITIVE = Optimize[VOWELS_Y | "A" | "E" | "I" + | "O" | "U" | "Y"]; +export CONSONANTS = Optimize[bytelib.kLower - VOWELS]; +export CONSONANTS_INSENSITIVE = Optimize[bytelib.kAlpha - VOWELS_INSENSITIVE]; + +# LSEQs that can be used for URL verbalization for all languages; +# mainly protocol names & file extensions. +export URL_LSEQS = Optimize["www" | "edu" | "ftp" | "htm" | "html" | "imdb" | + "php" | "asp" | "aspx" | "bbc" | "cgi" | "xhtml" | + "shtml" | "jsp"]; + +# Rule for swapping cardinal to decimal; useful for measures where +# both can appear in the proto but may be handled similarly. +export CARDINAL_TO_DECIMAL = Optimize[ + CDRewrite["cardinal" : "decimal", "", "", sigma_star] @ + CDRewrite["integer:" : "integer_part:", "", "", sigma_star] +]; + +export escape_quotes_and_backslashes = + ((bytelib.kBytes - "\"" - "\\") | ("\"" : "\\\"") | ("\\" : "\\\\"))* +; + +## Generally useful definition: + +export hours = + "0" + | "1" + | "2" + | "3" + | "4" + | "5" + | "6" + | "7" + | "8" + | "9" + | "10" + | "11" + | "12" + | "13" + | "14" + | "15" + | "16" + | "17" + | "18" + | "19" + | "20" + | "21" + | "22" + | "23" + | "24" +; + +export hours_shift = + ("0" : "1") + | ("1" : "2") + | ("2" : "3") + | ("3" : "4") + | ("4" : "5") + | ("5" : "6") + | ("6" : "7") + | ("7" : "8") + | ("8" : "9") + | ("9" : "10") + | ("10" : "11") + | ("11" : "12") + | ("12" : "13") + | ("13" : "14") + | ("14" : "15") + | ("15" : "16") + | ("16" : "17") + | ("17" : "18") + | ("18" : "19") + | ("19" : "20") + | ("20" : "21") + | ("21" : "22") + | ("22" : "23") + | ("23" : "24") + | ("24" : "1") +; + +export hours_24_to_12 = + ("0" : "12") + | "1" + | "2" + | "3" + | "4" + | "5" + | "6" + | "7" + | "8" + | "9" + | "10" + | "11" + | "12" + | ("13" : "1") + | ("14" : "2") + | ("15" : "3") + | ("16" : "4") + | ("17" : "5") + | ("18" : "6") + | ("19" : "7") + | ("20" : "8") + | ("21" : "9") + | ("22" : "10") + | ("23" : "11") + | ("24" : "12") +; + +export hours_24_to_12_next = + ("0" : "1") + | ("1" : "2") + | ("2" : "3") + | ("3" : "4") + | ("4" : "5") + | ("5" : "6") + | ("6" : "7") + | ("7" : "8") + | ("8" : "9") + | ("9" : "10") + | ("10" : "11") + | ("11" : "12") + | ("12" : "1") + | ("13" : "2") + | ("14" : "3") + | ("15" : "4") + | ("16" : "5") + | ("17" : "6") + | ("18" : "7") + | ("19" : "8") + | ("20" : "9") + | ("21" : "10") + | ("22" : "11") + | ("23" : "12") + | ("24" : "1") +; + +export minutes = + "0" + | "1" + | "2" + | "3" + | "4" + | "5" + | "6" + | "7" + | "8" + | "9" + | "10" + | "11" + | "12" + | "13" + | "14" + | "15" + | "16" + | "17" + | "18" + | "19" + | "20" + | "21" + | "22" + | "23" + | "24" + | "25" + | "26" + | "27" + | "28" + | "29" + | "30" + | "31" + | "32" + | "33" + | "34" + | "35" + | "36" + | "37" + | "38" + | "39" + | "40" + | "41" + | "42" + | "43" + | "44" + | "45" + | "46" + | "47" + | "48" + | "49" + | "50" + | "51" + | "52" + | "53" + | "54" + | "55" + | "56" + | "57" + | "58" + | "59" +; + +export round_minutes = + ("1" : "0") + | ("2" : "0") + | ("3" : "5") + | ("4" : "5") + | ("6" : "5") + | ("7" : "5") + | ("8" : "10") + | ("9" : "10") + | ("11" : "10") + | ("12" : "10") + | ("13" : "15") + | ("14" : "15") + | ("16" : "15") + | ("17" : "15") + | ("18" : "20") + | ("19" : "20") + | ("21" : "20") + | ("22" : "20") + | ("23" : "25") + | ("24" : "25") + | ("26" : "25") + | ("27" : "25") + | ("28" : "30") + | ("29" : "30") + | ("31" : "30") + | ("32" : "30") + | ("33" : "35") + | ("34" : "35") + | ("36" : "35") + | ("37" : "35") + | ("38" : "40") + | ("39" : "40") + | ("41" : "40") + | ("42" : "40") + | ("43" : "45") + | ("44" : "45") + | ("46" : "45") + | ("47" : "45") + | ("48" : "50") + | ("49" : "50") + | ("51" : "50") + | ("52" : "50") + | ("53" : "55") + | ("54" : "55") + | ("56" : "55") + | ("57" : "55") +; + +export unrounded_minutes = + ("0" : "0") + | ("5" : "5") + | ("10" : "10") + | ("15" : "15") + | ("20" : "20") + | ("25" : "25") + | ("30" : "30") + | ("35" : "35") + | ("40" : "40") + | ("45" : "45") + | ("50" : "50") + | ("55" : "55") +; + +export round_minutes_next_hour = + ("58" : "0") + | ("59" : "0") +; + +export subtract_from_60 = + "30" + | ("31" : "29" ) + | ("32" : "28" ) + | ("33" : "27" ) + | ("34" : "26" ) + | ("35" : "25" ) + | ("36" : "24" ) + | ("37" : "23" ) + | ("38" : "22" ) + | ("39" : "21" ) + | ("40" : "20" ) + | ("41" : "19" ) + | ("42" : "18" ) + | ("43" : "17" ) + | ("44" : "16" ) + | ("45" : "15" ) + | ("46" : "14" ) + | ("47" : "13" ) + | ("48" : "12" ) + | ("49" : "11" ) + | ("50" : "10" ) + | ("51" : "9" ) + | ("52" : "8" ) + | ("53" : "7" ) + | ("54" : "6" ) + | ("55" : "5" ) + | ("56" : "4" ) + | ("57" : "3" ) + | ("58" : "2" ) + | ("59" : "1" ) +; + +export any_month = + (("0" : "")? + ( + "1" + | "2" + | "3" + | "4" + | "5" + | "6" + | "7" + | "8" + | "9" + )) + | "10" + | "11" + | "12" +; + +export any_day = + (("0" : "")? + ( + "1" + | "2" + | "3" + | "4" + | "5" + | "6" + | "7" + | "8" + | "9" + )) + | "10" + | "11" + | "12" + | "13" + | "14" + | "15" + | "16" + | "17" + | "18" + | "19" + | "20" + | "21" + | "22" + | "23" + | "24" + | "25" + | "26" + | "27" + | "28" + | "29" + | "30" + | "31" +; + +## TODO: These rules need to be coordinated with the markup since that may +## change. + +export approximately = "[~~]"; + +## Rounded: say "approximately". + +approx1 = Optimize[ + "minutes:" + ("" : approximately) (minutes @ round_minutes) + "|" + "hours:" + hours + "|" + pass_anything] +; + +## Rounded to next hour. + +approx2 = Optimize[ + "minutes:" + ("" : approximately) round_minutes_next_hour + "|" + "hours:" + hours_shift + "|" + pass_anything] +; + +## Not rounded: don't say "approximately". + +approx3 = Optimize[ + "minutes:" + (minutes @ unrounded_minutes) + "|" + "hours:" + hours + "|" + pass_anything] +; + +export approx = Optimize[ + approx1 | approx2 | approx3 +]; + +# "|" and "\" are escaped in the new serialization scheme using a backslash, so +# we need to adjust these in the verbatim mappings. + +func EscapedMappings[raw_mappings] { + escapes = ("\\\\" : "\\") | ("\\|" : "|"); + return Optimize[ + ((Project[raw_mappings, 'input'] - Project[escapes, 'output']) | escapes) + @ raw_mappings + ]; +} + +# Allows verbatim grammars to be more permissive by accepting all inputs, it +# simply consumes the input if it is not present in the raw mappings. + +func ConsumeUnmapped[raw_mappings] { + unmapped = bytelib.kBytes - Project[raw_mappings, 'input']; + return Optimize[ + D[unmapped]<20> + ]; +} diff --git a/third_party/chinese_text_normalization/thrax/testcase_cn.txt b/third_party/chinese_text_normalization/thrax/testcase_cn.txt new file mode 100644 index 000000000..688456e86 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/testcase_cn.txt @@ -0,0 +1,54 @@ +一 +二 +三 +四 +五 +六 +七 +八 +九 +十 +十九 +二十 +二十八 +三十 +三十七 +四十 +四十六 +五十 +五十五 +六十 +六十四 +七十 +七十三 +八十 +八十二 +九十 +九十一 +一百 +一百零一 +一百一 +一百一十二 +两百二 +二百二十三 +三百三 +三百三十四 +四百四 +四百四十五 +一千五百五 +两千五百五十六 +三千六百六 +四千六百六十七 +五千七百七 +六千七百七十八 +七千八百八 +八千八百八十九 +九千九百九 +九千九百九十一 +二零一九年九月十二日 +两千零五年八月五号 +八五年二月二十七日 +公元一六三年 +零六年一月二号 +有百分之六十二的人认为 + diff --git a/third_party/chinese_text_normalization/thrax/testcase_en.txt b/third_party/chinese_text_normalization/thrax/testcase_en.txt new file mode 100644 index 000000000..b5c1312b3 --- /dev/null +++ b/third_party/chinese_text_normalization/thrax/testcase_en.txt @@ -0,0 +1,14 @@ +23,000 +1980 +8:35 +14.5 +1/4 +2/15 +5% +$10086 +www.google.com +5:50 a.m. +4:30 PM +www.interspeech.edu +www.iccasp.net +jiayu@gmail.com

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