newer number normalization

This commit is contained in:
erogol 2020-07-08 10:26:20 +02:00
parent 512188469b
commit 7c671cae5a
1 changed files with 40 additions and 41 deletions

View File

@ -1,10 +1,8 @@
# -*- coding: utf-8 -*-
""" from https://github.com/keithito/tacotron """
import inflect
import re
_inflect = inflect.engine()
_comma_number_re = re.compile(r'([0-9][0-9\,]+[0-9])')
_decimal_number_re = re.compile(r'([0-9]+\.[0-9]+)')
@ -49,16 +47,17 @@ def _expand_ordinal(m):
def _expand_number(m):
num = int(m.group(0))
if num > 1000 and num < 3000:
if 1000 < num < 3000:
if num == 2000:
return 'two thousand'
elif num > 2000 and num < 2010:
if 2000 < num < 2010:
return 'two thousand ' + _inflect.number_to_words(num % 100)
elif num % 100 == 0:
if num % 100 == 0:
return _inflect.number_to_words(num // 100) + ' hundred'
else:
return _inflect.number_to_words(num, andword='', zero='oh', group=2).replace(', ', ' ')
else:
return _inflect.number_to_words(num,
andword='',
zero='oh',
group=2).replace(', ', ' ')
return _inflect.number_to_words(num, andword='')