

# --- Costante globale
MIN_LUNGHEZZA = 3

# --- Pulizia stringa e tokenizzazione 
def pulisci_tokenizza(testo):
    testo = testo.lower()
    for ch in ['.', ',', '!', '?']:
        testo = testo.replace(ch, '')
    return testo.split()

# --- Conteggio frequenze con dizionario
def conta_frequenze(parole):
    freq = {}
    for p in parole:
        freq[p] = freq.get(p, 0) + 1
    return freq

# --- Simulatore di AI
def simulatore_llm(domanda):
    risposte = {
        "ciao": "Ciao! Come posso aiutarti?",
        "python": "Python è un linguaggio semplice e molto usato per AI.",
        "ai": "L'intelligenza artificiale permette ai computer di elaborare dati e rispondere."
    }
    for chiave in risposte:
        if chiave in domanda.lower():
            return risposte[chiave]
    return "Non ho una risposta per questa domanda."

# --- Funzione principale
def main():
    while True:
        testo = input("\nScrivi un testo (oppure digita 'esci' per terminare): ")
        if testo.lower() == 'esci':
            print("Programma terminato.")
            break

        parole = pulisci_tokenizza(testo)
        parole_filtrate = [p for p in parole if len(p) >= MIN_LUNGHEZZA]
        freq = conta_frequenze(parole_filtrate)

        print(f"\nParole con almeno {MIN_LUNGHEZZA} lettere: {len(parole_filtrate)}")
        print("Frequenza parole:")
        for parola, n in freq.items():
            print(f"- {parola}: {n}")

        domanda = input("\nFai una domanda al nostro assistente AI (oppure digita 'esci' per terminare): ")
        if domanda.lower() == 'esci':
            print("Programma terminato.")
            break

        print("Risposta:", simulatore_llm(domanda))

if __name__ == "__main__":
    main()


