aitech-sd-lab/NLG_lab_11/NLG.py

59 lines
3.2 KiB
Python
Raw Normal View History

2022-05-25 13:14:24 +02:00
import json
value_dict = json.load(open('../DST_DP_lab_9-10/value_dict.json'))
2022-05-30 12:00:09 +02:00
class NLG:
def __init__(self):
self.answer = ''
2022-05-25 13:14:24 +02:00
2022-05-30 12:00:09 +02:00
def update(self, system_act):
for domain, intent, slot, value in system_act:
if domain == 'Cinema' and intent == 'Inform' and slot == 'Seat':
if value == '':
self.answer += f'Nie znalazłem miejsca.'
elif value == "top":
self.answer += f'Wolne miejsca na górze w rzędzie 10 miejsca od 5 do 10 i od 12 do 14. '
elif value <= "bottom":
self.answer += f'Wolne miejsca na dole w rzędzie 1 miejsca od 2 do 10 i od 12 do 14. '
elif value <= "middle":
self.answer += f'Wolne miejsca na środku w rzędzie 6 miejsca od 5 do 10. '
elif domain == 'Cinema' and intent == 'Inform' and slot == 'Movie':
if value == None:
self.answer += f'Nie znalazłem filmu. '
else:
self.answer += f'Film {value} będzie wyświetlany jutro o godzinie 21:30. '
elif domain == 'Cinema' and intent == 'Offer' and slot == 'Closestscreening':
if value in ['Dziś','Jutro','Pojutrze']:
self.answer += f'{value} prezentujemy Batmana o 18:30 i Ambulans o 21:00. '
elif value in value_dict['train']['day']:
self.answer += f'W {value} prezentujemy Ambulans o 18:30 i To nie wypanda o 20:00. '
elif value in value_dict['train']['date']:
self.answer += f'Dnia {value} prezentujemy Batmana o 18:00 i Sing 2 o 20:30. '
elif domain == 'Cinema' and intent == 'Request' and slot == 'e-mail':
if value== '':
self.answer += 'Prosze podać e-mail. '
else:
pass
elif domain == 'Cinema' and intent == 'Request' and slot == 'name':
if value== '':
self.answer += 'Prosze podać imie i nazwisko. '
else:
pass
elif domain == 'Cinema' and intent =='Request' and slot == 'Seat_row':
if value in value_dict['train']['seat_row']:
self.answer += f'W rzędzie {value} są wolne miejsca od 1 do 4 i od 12 do 15. '
else:
self.answer += f'Nie ma wolnych miejsc. '
elif domain == 'Cinema' and intent =='Request' and slot == 'Seat_place':
if value in value_dict['train']['seat_place']:
self.answer += f'W rzędzie 4 jest wolne miejsce {value}. '
else:
self.answer += f'W rzędzie 4 nie ma wolnego miejsce {value}. '
elif domain == 'Cinema' and intent =='Request' and slot == 'Seat':
if value in value_dict['train']['seat']:
self.answer += f'Miejsce {value} jest wolne. '
else:
self.answer += f'Miejsce {value} nie jest wolne. '
return self.answer
2022-05-25 13:14:24 +02:00
2022-05-30 12:00:09 +02:00
nlg = NLG()
print(nlg.update([['Cinema', 'Offer', 'Closestscreening', "1.02"],['Cinema', 'Request', 'name', ""]]))