Spaces:
Running on Zero
Running on Zero
Became able to read fractions.
#1
by nugjii - opened
app.py
CHANGED
|
@@ -26,6 +26,7 @@ units = ["", "нэгэн", "хоёрон", "гурван", "дөрвөн", "та
|
|
| 26 |
tens = ["", "араван", "хорь", "гуч", "дөч", "тавь", "жар", "дал", "ная", "ер"]
|
| 27 |
hundreds = ["", "нэг зуун", "хоёр зуун", "гурав зуун", "дөрөв зуун",
|
| 28 |
"тав зуун", "зургаа зуун", "долоо зуун", "найм зуун", "ес зуун"]
|
|
|
|
| 29 |
|
| 30 |
def number_to_words(n):
|
| 31 |
if n == 0:
|
|
@@ -51,7 +52,27 @@ def number_to_words(n):
|
|
| 51 |
return " ".join(parts)
|
| 52 |
|
| 53 |
def replace_numbers(text):
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
def preprocess_mongolian(text):
|
| 57 |
text = text.lower()
|
|
@@ -231,7 +252,8 @@ examples = [
|
|
| 231 |
["Хиймэл оюун ухааны салбарт ажиллаж буй залуу", "Bataa", 0.01, 0.95, 1.6, 1500],
|
| 232 |
["Иргэдийн хувьд төлөвлөгөөт хязгаарлалтад бухимдалтай байгаагаас гадна хязгаарлалт нь урьдчилсан мэдэгдсэн цагаас өөр байгаа зэргээс шалтгаалан урьдчилан бэлтгэл хангах боломжгүй!!!", "Bataa", 0.1, 0.95, 1.6, 1500],
|
| 233 |
["Тэрээр мэргэжлийн сүмогийн түүхэнд хамгийн олон удаа нэг ч өнжилгүй дараалан барилдсан бөхөөр тодорч, ийнхүү дэлхийн дээд амжилтын эзэн болсон байна.", "Bataa", 0.01, 0.95, 1.6, 1500],
|
| 234 |
-
["Үүний улмаас ид ажлын үе болох зургаа, долоодугаар сард тусгай зөвшөөрлөө авч чадаагүй, уулын ажлын төлөвлөгөөгөө батлуулж амжаагүй тохиолдлууд гарч байсан.", "Bataa", 0.01, 0.95, 1.6, 1500]
|
|
|
|
| 235 |
]
|
| 236 |
|
| 237 |
VOICES = ["Bataa"]
|
|
|
|
| 26 |
tens = ["", "араван", "хорь", "гуч", "дөч", "тавь", "жар", "дал", "ная", "ер"]
|
| 27 |
hundreds = ["", "нэг зуун", "хоёр зуун", "гурав зуун", "дөрөв зуун",
|
| 28 |
"тав зуун", "зургаа зуун", "долоо зуун", "найм зуун", "ес зуун"]
|
| 29 |
+
decimals = ["арваны", "зууны", "мянганы"]
|
| 30 |
|
| 31 |
def number_to_words(n):
|
| 32 |
if n == 0:
|
|
|
|
| 52 |
return " ".join(parts)
|
| 53 |
|
| 54 |
def replace_numbers(text):
|
| 55 |
+
def convert_numbers(match):
|
| 56 |
+
num_str = match.group()
|
| 57 |
+
if '.' in num_str:
|
| 58 |
+
parts = num_str.split('.')
|
| 59 |
+
before_decimal = parts[0]
|
| 60 |
+
after_decimal = parts[1] if len(parts) > 1 else ""
|
| 61 |
+
|
| 62 |
+
before_words = number_to_words(int(before_decimal))
|
| 63 |
+
|
| 64 |
+
after_words = ""
|
| 65 |
+
if after_decimal and not all(digit == '0' for digit in after_decimal):
|
| 66 |
+
decimals_words = decimals[len(after_decimal) -1]
|
| 67 |
+
after_words = number_to_words(int(after_decimal))
|
| 68 |
+
|
| 69 |
+
return f"{before_words} {decimals_words} {after_words}"
|
| 70 |
+
else:
|
| 71 |
+
return before_words
|
| 72 |
+
else:
|
| 73 |
+
return number_to_words(int(num_str))
|
| 74 |
+
|
| 75 |
+
return re.sub(r'\d+\.?\d*', convert_numbers, text)
|
| 76 |
|
| 77 |
def preprocess_mongolian(text):
|
| 78 |
text = text.lower()
|
|
|
|
| 252 |
["Хиймэл оюун ухааны салбарт ажиллаж буй залуу", "Bataa", 0.01, 0.95, 1.6, 1500],
|
| 253 |
["Иргэдийн хувьд төлөвлөгөөт хязгаарлалтад бухимдалтай байгаагаас гадна хязгаарлалт нь урьдчилсан мэдэгдсэн цагаас өөр байгаа зэргээс шалтгаалан урьдчилан бэлтгэл хангах боломжгүй!!!", "Bataa", 0.1, 0.95, 1.6, 1500],
|
| 254 |
["Тэрээр мэргэжлийн сүмогийн түүхэнд хамгийн олон удаа нэг ч өнжилгүй дараалан барилдсан бөхөөр тодорч, ийнхүү дэлхийн дээд амжилтын эзэн болсон байна.", "Bataa", 0.01, 0.95, 1.6, 1500],
|
| 255 |
+
["Үүний улмаас ид ажлын үе болох зургаа, долоодугаар сард тусгай зөвшөөрлөө авч чадаагүй, уулын ажлын төлөвлөгөөгөө батлуулж амжаагүй тохиолдлууд гарч байсан.", "Bataa", 0.01, 0.95, 1.6, 1500],
|
| 256 |
+
["Өөрөөр хэлбэл, жижиг, дунд бизнесүүдийг дэмжих, татварын суурийг тэлэх зорилгоор 90 хувийн татварыг хөнгөлж 1 хувийн орлогын татвар төлдөг босго 1.5 тэрбум байгааг 2.5 тэрбум болгон нэмэгдүүлнэ.", 0.01, 0.95, 1.6, 1500]
|
| 257 |
]
|
| 258 |
|
| 259 |
VOICES = ["Bataa"]
|