Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -180,63 +180,68 @@ def is_numword(x):
|
|
180 |
return True
|
181 |
return False
|
182 |
|
183 |
-
def from_numword(x):
|
184 |
-
if is_number(x):
|
185 |
-
scale = 0
|
186 |
-
increment = int(x.replace(',', ''))
|
187 |
-
return scale, increment
|
188 |
-
return numwords[x]
|
189 |
-
|
190 |
-
for word in textnum.split():
|
191 |
-
if word in ordinal_words:
|
192 |
-
scale, increment = (1, ordinal_words[word])
|
193 |
-
current = current * scale + increment
|
194 |
-
if scale > 100:
|
195 |
-
result += current
|
196 |
-
current = 0
|
197 |
-
onnumber = True
|
198 |
-
lastunit = False
|
199 |
-
lastscale = False
|
200 |
-
else:
|
201 |
-
for ending, replacement in ordinal_endings:
|
202 |
-
if word.endswith(ending):
|
203 |
-
word = "%s%s" % (word[:-len(ending)], replacement)
|
204 |
-
|
205 |
-
if (not is_numword(word)) or (word == 'and' and not lastscale):
|
206 |
-
if onnumber:
|
207 |
-
curstring += repr(result + current) + " "
|
208 |
-
curstring += word + " "
|
209 |
-
result = current = 0
|
210 |
-
onnumber = False
|
211 |
-
lastunit = False
|
212 |
-
lastscale = False
|
213 |
-
else:
|
214 |
-
scale, increment = from_numword(word)
|
215 |
-
onnumber = True
|
216 |
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
|
|
|
|
|
|
|
224 |
current = current * scale + increment
|
225 |
if scale > 100:
|
226 |
result += current
|
227 |
current = 0
|
228 |
-
|
229 |
-
lastscale = False
|
230 |
lastunit = False
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
|
236 |
-
if onnumber:
|
237 |
-
curstring += repr(result + current)
|
238 |
-
|
239 |
-
return curstring
|
240 |
|
241 |
# Convert sentence to transcript using Soundex
|
242 |
def sentence_to_transcript(sentence, word_to_code_map):
|
|
|
180 |
return True
|
181 |
return False
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
+
def from_numword(x):
|
185 |
+
if is_number(x):
|
186 |
+
scale = 0
|
187 |
+
increment = int(x.replace(',', ''))
|
188 |
+
return scale, increment
|
189 |
+
return numwords[x]
|
190 |
|
191 |
+
for word in textnum.split():
|
192 |
+
if word in ordinal_words:
|
193 |
+
scale, increment = (1, ordinal_words[word])
|
194 |
current = current * scale + increment
|
195 |
if scale > 100:
|
196 |
result += current
|
197 |
current = 0
|
198 |
+
onnumber = True
|
|
|
199 |
lastunit = False
|
200 |
+
lastscale = False
|
201 |
+
else:
|
202 |
+
for ending, replacement in ordinal_endings:
|
203 |
+
if word.endswith(ending):
|
204 |
+
word = "%s%s" % (word[:-len(ending)], replacement)
|
205 |
+
|
206 |
+
if (not is_numword(word)) or (word == 'and' and not lastscale):
|
207 |
+
if onnumber:
|
208 |
+
# Flush the current number we are building
|
209 |
+
curstring += repr(result + current) + " "
|
210 |
+
curstring += word + " "
|
211 |
+
result = current = 0
|
212 |
+
onnumber = False
|
213 |
+
lastunit = False
|
214 |
+
lastscale = False
|
215 |
+
else:
|
216 |
+
scale, increment = from_numword(word)
|
217 |
+
onnumber = True
|
218 |
+
|
219 |
+
if lastunit and (word not in scales):
|
220 |
+
# Assume this is part of a string of individual numbers to
|
221 |
+
# be flushed, such as a zipcode "one two three four five"
|
222 |
+
curstring += repr(result + current)
|
223 |
+
result = current = 0
|
224 |
+
|
225 |
+
if scale > 1:
|
226 |
+
current = max(1, current)
|
227 |
+
|
228 |
+
current = current * scale + increment
|
229 |
+
if scale > 100:
|
230 |
+
result += current
|
231 |
+
current = 0
|
232 |
+
|
233 |
+
lastscale = False
|
234 |
+
lastunit = False
|
235 |
+
if word in scales:
|
236 |
+
lastscale = True
|
237 |
+
elif word in units:
|
238 |
+
lastunit = True
|
239 |
+
|
240 |
+
if onnumber:
|
241 |
+
curstring += repr(result + current)
|
242 |
+
|
243 |
+
return curstring
|
244 |
|
|
|
|
|
|
|
|
|
245 |
|
246 |
# Convert sentence to transcript using Soundex
|
247 |
def sentence_to_transcript(sentence, word_to_code_map):
|