[addresses] Adding base class for numeric phrases (appended to a number using numeric/numeric_affix), using probability 1.0 if only one of numeric/numeric_affix/ordinal is specified

This commit is contained in:
Al
2016-04-19 11:07:25 -04:00
parent efc40c5698
commit f026e8a764

View File

@@ -38,10 +38,12 @@ def sample_alphabet(alphabet, b=1.5):
latin_alphabet = [chr(i) for i in range(ord('A'), ord('Z') + 1)] latin_alphabet = [chr(i) for i in range(ord('A'), ord('Z') + 1)]
class NumberPhrases(object): class NumericPhrase(object):
key = None
@classmethod @classmethod
def phrase(cls, number, language, country=None): def phrase(cls, number, language, country=None):
values, probs = address_config.alternative_probabilities('numbers', language, dictionaries=['number'], country=country) values, probs = address_config.alternative_probabilities(cls.key, language, dictionaries=['number'], country=country)
if not values: if not values:
return safe_decode(number) return safe_decode(number)
@@ -92,6 +94,10 @@ class NumberPhrases(object):
return safe_decode(number) return safe_decode(number)
class Number(NumericPhrase):
key = 'numbers'
class NumberedComponent(object): class NumberedComponent(object):
@classmethod @classmethod
def numeric_phrase(cls, key, num, language, country=None, dictionaries=()): def numeric_phrase(cls, key, num, language, country=None, dictionaries=()):
@@ -137,6 +143,10 @@ class NumberedComponent(object):
have_null = True have_null = True
values.append(num_type) values.append(num_type)
probs.append(prob) probs.append(prob)
elif num_type in phrase_props:
values.append(num_type)
probs.append(1.0)
break
if not probs: if not probs:
return phrase return phrase
@@ -180,7 +190,7 @@ class NumberedComponent(object):
# Do we add the numeric phrase e.g. Floor No 1 # Do we add the numeric phrase e.g. Floor No 1
add_number_phrase = props.get('add_number_phrase', False) add_number_phrase = props.get('add_number_phrase', False)
if add_number_phrase and random.random() < props['add_number_phrase_probability']: if add_number_phrase and random.random() < props['add_number_phrase_probability']:
num = NumberPhrases.phrase(num, language, country=country) num = Number.phrase(num, language, country=country)
whitespace_default = True whitespace_default = True