Natural Language Processing: cos’è e come funziona

0

NLP IMAGE

I computer parleranno presto la nostra lingua?

La Natural Language Processing, o anche elaborazione del linguaggio naturale, consiste nell’abilità di un computer di capire ed elaborare frasi in una lingua parlata, quale può essere l’inglese, l’italiano e via dicendo, anziché un linguaggio di programmazione specifico quale il C++.

La Natural Language Processing (d’ora in poi NLP) è un campo che quindi coinvolge, tra le altre, l’Intelligenza Artificiale, l’informatica e la linguistica.

Con NLP non solo si intende l’abilità di capire il linguaggio, ma anche di saperlo elaborare, e quindi produrlo.

La NLP include i seguenti campi:

  • Signal Processing: la conversione del parlato in testo;
  • Sentiment Analysis: il significato dato dall’interlocutore alla frase;
  • Syntatic Analysis: lo studio della struttura della frase;
  • Pragmatics: quanto il significato della frase dipende da come essa viene utilizzata quotidianamente.

L’uomo tradizionalmente “parla” ai computer tramite un linguaggio ben definito e strutturato, il quale è caratterizzato da codici ai quali corrisponde un chiaro e preciso comando.

Nell’atto di programmare è l’umano che adatta il suo linguaggio a quello naturale delle macchine.

Nella NLP ciò che si cerca di fare è insegnare alle macchine ad adattarsi al nostro lingauggio naturale.

La comunicazione che avviene tra macchina e umano è quindi completamente diversa da quella che avviene tra persone.

Il linguaggio umano non è infatti preciso e chiaro come un linguaggio di programmazione, anzi al contrario, esso è spesso ambiguo con struttura delle frasi variabile. Senza contare gli innumerevoli dialetti e modi di dire propri di una qualsiasi lingua.

Possiamo quindi affermare che il linguaggio umano, di fatto, permette anomalie che il computer non riconosce e non è normalmente abituato a tollerare.

Quindi, pur ipotizzando di poter fornire un computer di un immenso dizionario e di tutte le regole grammaticali, l’elaborazione del linguaggio non è affatto semplice. Le parole non solo devono essere corrette dal punto di vista grammaticale ma devono anche essere associate al loro vero significato, tenendo in considerazione anche il contesto in cui la frase si trova.

I programmi di NLP si basano sul Machine Learning e permettono di segmentare frasi o solo parti di esse, di analizzare attentamente un testo, di identificare il significato di espressioni particolari, distinguere tra espressioni diverse tra loro, tradurre da una lingua ad un’altra e viceversa e molto altro ancora.

La storia della NLP inizia negli anni 40’ subito dopo la guerra. A partire dagli anni 50’ fino a metà anni 60’ gli investimenti in traduzione automatica, ma più in generale in IA, furono molto elevati.

Nel 54’, dopo anni di ricerca, si era in grado di tradurre oltre 60 frasi dal russo all’inglese (il bisogno in questo caso derivava anche da un contesto sociopolitico e militare di quegli anni).

Agli inizi dell’era dei computer i progressi erano certamente più lenti di quelli che seguirono nei decenni successivi. Un notevole stop provenne dall’istituzione dell’ALPAC (comitato sull’elaborazione automatica del linguaggio) che bocciò la traduzione automatica nel 66’, tagliando i fondi ad essa destinati.

A partire dagli anni 90’, con la diffusione di Internet tra il grande pubblico, nacque nuovamente un forte bisogno della NLP in seguito all’estendersi del fenomeno di internet e dell’internazionalizzazione. In particolare si sentiva l’esigenza di estrazione e catalogazione delle informazioni prodotte dalla rete al fine di renderle diffusamente disponibili.

Ad oggi un vasto numero di programmi NLP viene stato sviluppato sia da centri di ricerca universitari che da imprese private. Programmi in grado di gestire con sempre più accuratezza conversazioni sui più svariati topic.

La NLP è ormai parte integrante del web e delle nostre vite. Basti pensare a Google Translate, in grado di fornire traduzioni sempre più precise tra 72 lingue diverse e a Siri, il sistema di riconoscimento vocale di Apple. Entrambi non sarebbero possibili senza i grandi progressi fatti negli ultimi 20 anni in questo ambito.

Per quanto riguarda il futuro, la NLP potrebbe spazzare via tutti i linguaggi di programmazione di cui non si potrebbe avere più bisogno da qui a poco tempo.

Invece che tramite linguaggi specifici e complessi quali Java o C++, tra pochi anni programmare un computer potrebbe essere meno complicato e alla portata di tutti (o quasi).

E voi siete pronti per il next step?

 

References:

1. http://www.mind.ilstu.edu/curriculum/protothinker/natural_language_processing.php

2. http://searchcontentmanagement.techtarget.com/definition/natural-language-processing-NLP

 

 

Share.

About Author

Leave A Reply