in T5DST/create_data_2_1.py [0:0]
def get_summary_bstate(bstate, get_domain=False):
"""Based on the mturk annotations we form multi-domain belief state"""
domains = [u'taxi',u'restaurant', u'hospital', u'hotel',u'attraction', u'train', u'police']
summary_bstate = []
summary_bvalue = []
active_domain = []
for domain in domains:
domain_active = False
booking = []
#print(domain,len(bstate[domain]['book'].keys()))
for slot in sorted(bstate[domain]['book'].keys()):
if slot == 'booked':
if len(bstate[domain]['book']['booked'])!=0:
booking.append(1)
# summary_bvalue.append("book {} {}:{}".format(domain, slot, "Yes"))
else:
booking.append(0)
else:
if bstate[domain]['book'][slot] != "":
booking.append(1)
summary_bvalue.append(["{}-book {}".format(domain, slot.strip().lower()), normalize(bstate[domain]['book'][slot].strip().lower(), False)]) #(["book", domain, slot, bstate[domain]['book'][slot]])
else:
booking.append(0)
if domain == 'train':
if 'people' not in bstate[domain]['book'].keys():
booking.append(0)
if 'ticket' not in bstate[domain]['book'].keys():
booking.append(0)
summary_bstate += booking
for slot in bstate[domain]['semi']:
slot_enc = [0, 0, 0] # not mentioned, dontcare, filled
if bstate[domain]['semi'][slot] == 'not mentioned':
slot_enc[0] = 1
elif bstate[domain]['semi'][slot] in ['dont care', 'dontcare', "don't care", "do not care"]:
slot_enc[1] = 1
summary_bvalue.append(["{}-{}".format(domain, slot.strip().lower()), "dontcare"]) #(["semi", domain, slot, "dontcare"])
elif bstate[domain]['semi'][slot]:
summary_bvalue.append(["{}-{}".format(domain, slot.strip().lower()), normalize(bstate[domain]['semi'][slot].strip().lower(), False)]) #(["semi", domain, slot, bstate[domain]['semi'][slot]])
if slot_enc != [0, 0, 0]:
domain_active = True
summary_bstate += slot_enc
# quasi domain-tracker
if domain_active:
summary_bstate += [1]
active_domain.append(domain)
else:
summary_bstate += [0]
#print(len(summary_bstate))
assert len(summary_bstate) == 94
if get_domain:
return active_domain
else:
return summary_bstate, summary_bvalue