[dictionaries] Updates to German dictionaries

This commit is contained in:
Al
2016-06-01 12:35:48 -04:00
parent 0bbced4966
commit 22be892635
7 changed files with 43 additions and 31 deletions

View File

@@ -5,8 +5,10 @@ g
h
i
k
l
n
o
r
s
u
v

View File

@@ -0,0 +1 @@
eingang

View File

@@ -1 +1,3 @@
obergeschoss|og|o g
etage
obergeschoss|og|o g
stock

View File

@@ -1 +1,2 @@
stiege|stg
stiege|stg
treppe

View File

@@ -0,0 +1,2 @@
links|l
rechts|r

View File

@@ -1,5 +1,5 @@
abteilung|abt
appartement|apt|app
büro|buro|buero
top
wohnung|whg|w
wohnung|whg|w|/ w|/ / w
zimmer|zi

View File

@@ -399,40 +399,44 @@ class AddressComponents(object):
def combine_fields(self, address_components, language, country=None, generated_components=None):
combo_config = address_config.get_property('components.combinations', language, country=country, default={})
values = []
probs = []
combos = []
probs = {}
generated_components = generated_components or set()
for k, v in six.iteritems(combo_config):
values.append(v)
probs.append(v['probability'])
if not isclose(sum(probs), 1.0):
values.append(None)
probs.append(1.0 - sum(probs))
probs = cdf(probs)
combo = weighted_choice(values, probs)
if combo is not None:
for k, combo in six.iteritems(combo_config):
components = OrderedDict.fromkeys(combo['components']).keys()
if not all((c in address_components and (c in generated_components or self.is_numeric(address_components[c])) for c in components)):
return None
continue
values = []
probs = []
for s in combo['separators']:
values.append(s['separator'])
probs.append(s['probability'])
combos.append((len(components), combo))
probs = cdf(probs)
separator = weighted_choice(values, probs)
if not combos:
return None
new_label = combo['label']
new_value = separator.join([address_components.pop(c) for c in components])
address_components[new_label] = new_value
return new_label
return None
combos.sort(key=operator.itemgetter(0), reverse=True)
for num_components, combo in combos:
prob = combo['probability']
if random.random() < prob:
break
else:
return None
components = OrderedDict.fromkeys(combo['components']).keys()
values = []
probs = []
for s in combo['separators']:
values.append(s['separator'])
probs.append(s['probability'])
probs = cdf(probs)
separator = weighted_choice(values, probs)
new_label = combo['label']
new_value = separator.join([address_components.pop(c) for c in components])
address_components[new_label] = new_value
return new_label
def generated_type(self, component, existing_components, language, country=None):
component_config = address_config.get_property('components.{}'.format(component), language, country=country)