In informatica, che cos'è un linguaggio naturale?
Quando le persone parlano del linguaggio naturale nell'informatica, si riferiscono a un linguaggio di programmazione che contiene costrutti e sintassi che rispecchiano il normale linguaggio umano. Lo scopo principale di qualsiasi linguaggio naturale è quello di consentire a un programmatore di utilizzare regole e termini linguistici con cui ha già familiarità per comunicare istruzioni utilizzabili a un computer. A causa della necessità di esplicitare l'utente finale e di sfruttare una lingua già conosciuta e parlata, i linguaggi naturali come la Programmazione in Logica (Prolog) o Lisp tendono ad essere più intrinsecamente complessi di altri linguaggi di programmazione, a seconda delle astrazioni di ordine superiore o simboliche di ciò che il computer può capire e agire. In altre parole, più è facile per l'utente finale creare un programma per computer senza dover conoscere un linguaggio procedurale strutturato o qualsiasi lingua diversa da quella di cui parla già, più complesso deve essere il motore del programma di linguaggio naturale sostenere la libertà di espressione.
I linguaggi naturali contengono parser e database. I database determinano quale azione deve eseguire il computer in base all'istruzione e il parser determina in quale ordine deve essere eseguita la sintassi. Ad esempio, se l'utente digita "Aggiungi due e due", il parser deve fare una distinzione tra sostantivo e verbo, capire cosa deve compiere l'azione del verbo, cercare nel database una risposta appropriata e quindi produrre un output che soddisfi il istruzioni. Se l'utente digita "Aggiungi da due a due", il parser deve essere in grado di capire che "e" e "a" indicano che dovrebbe verificarsi la stessa azione e quindi produrre lo stesso risultato.
I sostenitori della programmazione in linguaggio naturale sostengono che, poiché i linguaggi naturali tendono ad essere di natura non procedurale, i programmatori inesperti possono produrre programmi significativi e ottenere risultati significativi in tempi più brevi rispetto a quando sono necessari per creare algoritmi procedurali che portano agli stessi risultati. Con la programmazione in linguaggio naturale, gli studenti imparano ad esprimere una notazione logica dei fatti. I programmi Prolog consistono in un database, le relazioni tra gli elementi del database e tutte le condizioni al contorno che determinano quali risposte sono accettabili.
La ricerca e le pubblicazioni di Noam Chomsky riguardanti la teoria e l'uso linguistici includono esplorazioni schematiche della struttura della sintassi di una lingua. I parser Prolog e Lisp si comportano in modo molto simile, ordinando logicamente l'istruzione nei suoi componenti e valutando l'azione da intraprendere a seguito dell'analisi. La maggior parte delle lingue naturali sono scritte per input e output in inglese, anche se sono in corso molti sforzi per supportare la localizzazione in altre lingue.