systemy_dialogowe/data/architektura.ipynb

2.8 KiB

import re
name = 'Marek Suski'

def system(text):
    akt_usera = nlu(text)
    print(akt_usera)
    stan = dst(akt_usera)
    print(stan)
    akt_systemu = dialogue_policy(stan)
    print(akt_systemu)
    system_msg = nlg(akt_systemu)
    print('System: ' + system_msg)
    
def nlu(text):
    text = text.lower()
    
    x = re.search("[a-z]+ masz na imię?", text)
    y = re.search("[a-z]+ się nazywasz?", text)
        
    if x != None or y != None:
        akt = 'request(imie)'
        return akt

def dst(akt):
    if akt == 'request(imie)':
        state = 'need imie'
        return state
    
    
def dialogue_policy(state):
    state = state.split()
    print('state: ', state)
    if state[0] == 'need':
        system_act = 'inform' + '(' + state[1] + ')'
        return system_act
    
def nlg(act):
    if act == 'inform(imie)':
        return name
    
while True:
    user_input = input('Ty:')
    system(user_input)
Ty: jak się nazywasz?
request(imie)
need imie
state:  ['need', 'imie']
inform(imie)
System: Marek Suski