L’elaborazione del linguaggio naturale (PNL) è un modo di tradurre tra linguaggi informatici e linguaggi umani. L’obiettivo di questo campo è consentire ai computer di capire cosa dice un testo senza che vengano dati valori ed equazioni precisi per i dati che il testo contiene. In sostanza, l’elaborazione del linguaggio naturale automatizza il processo di traduzione tra il linguaggio umano e quello informatico. Sebbene gran parte di questo campo si basi su statistiche e modelli per determinare i significati probabili di una frase, ci sono e sono stati molti approcci diversi a questo problema. I risultati in questo campo hanno applicazioni nelle aree del riconoscimento vocale, della traduzione del linguaggio umano, del recupero delle informazioni e persino dell’intelligenza artificiale.
Evolundosi da un background in informatica e linguistica, l’elaborazione del linguaggio naturale deve affrontare molti problemi perché il linguaggio non è sempre coerente e non tutti gli indizi sul significato sono contenuti nel linguaggio stesso. Anche un resoconto completo dell’intera grammatica di una lingua, comprese tutte le eccezioni, non sempre consente a un computer di analizzare le informazioni contenute in un testo. Alcune frasi sono sintatticamente ambigue, le parole spesso hanno più di un significato e alcune combinazioni di suoni o simboli cambiano il loro significato a seconda dei confini delle parole, il che può essere un problema per un computer che non comprende il contesto. Ancora più importante, gran parte del linguaggio dipende da una connessione con l’universo fisico e sociale: alcune frasi, come gli atti linguistici, non trasmettono informazioni tanto quanto agiscono sul mondo. Anche se un computer ha una perfetta comprensione della sintassi e della semantica del linguaggio umano, il testo da analizzare deve essere privo di dispositivi umani, come il sarcasmo o l’aggressività passiva, affinché il computer possa accertare correttamente cosa significa il testo.
Ideologicamente, l’elaborazione del linguaggio naturale è un sistema di interazione uomo-computer che è governato dall’idea che la maggior parte degli utenti di computer si senta più a suo agio a lavorare con computer in un linguaggio umano che già conoscono piuttosto che ad adattarsi al linguaggio di un computer. Sfrutta anche il fatto che gran parte della conoscenza umana è già codificata nel linguaggio umano e i testi che contengono tale conoscenza possono essere tradotti in strutture logiche che possono essere semplificate per un computer. Sebbene molti progetti in questo campo lavorino per estrarre dati leggibili da computer da testi in linguaggio umano, l’elaborazione del linguaggio naturale viene utilizzata anche per generare testi leggibili da dati informatici. Entrambe queste strutture di comprensione e generazione possono essere utilizzate dalla stessa tecnologia, come nel caso di applicazioni che traducono da una lingua umana a un’altra decodificando prima il testo in un linguaggio informatico, quindi codificandolo in un’altra lingua umana. Le innovazioni ottenute negli sforzi di elaborazione del linguaggio naturale sono anche sorprendentemente applicabili ai progetti di intelligenza artificiale a causa del grado in cui l’intelligenza di tipo umano è definita dalla padronanza delle complessità del linguaggio umano.