L’ela­bo­ra­zio­ne del lin­guag­gio naturale, in inglese Natural Language Pro­ces­sing, definisce l’ela­bo­ra­zio­ne delle lingue naturali tramite computer. Ad esempio ad esso ap­par­ten­go­no anche i campi della tra­du­zio­ne di una lingua in un’altra, del ri­co­no­sci­men­to vocale o di risposta au­to­ma­ti­ca alle domande. Nello svol­gi­men­to di questi compiti i computer hanno spesso problemi legati alla com­pren­sio­ne, poiché tendono a fo­ca­liz­zar­si prin­ci­pal­men­te sul si­gni­fi­ca­to delle singole parole. Per un programma di tra­du­zio­ne è perciò difficile riuscire ad intuire le dif­fe­ren­ze di si­gni­fi­ca­to di una stessa parola, come ad esempio la parola “cavolo”, nelle frasi “questo piatto è a base di cavolo” e “non capisci un cavolo”. At­tra­ver­so l’ela­bo­ra­zio­ne del lin­guag­gio naturale, i computer imparano a capire il si­gni­fi­ca­to di segmenti di testo abbinati tra loro, come frasi e pro­po­si­zio­ni, e ad uti­liz­zar­le di con­se­guen­za. Questo non è utile solo per le tra­du­zio­ni o per i chatbot, ma anche quando il computer si ritrova a dover eseguire un ordine trasmesso a voce o quando deve co­mu­ni­ca­re, a sua volta a voce, con l’utente, come nel caso in cui si trovi a dover co­mu­ni­ca­re con una persona non vedente. Anche per poter rias­su­me­re lunghi testi o estrarre precise in­for­ma­zio­ni mirate da testi molto lunghi, i computer hanno bisogno di poter com­pren­de­re la coerenza testuale.

Come funziona l’ela­bo­ra­zio­ne del lin­guag­gio naturale?

In­di­pen­den­te­men­te che si tratti di una tra­du­zio­ne au­to­ma­ti­ca o di una con­ver­sa­zio­ne con un chatbot: tutti i metodi relativi al Natural Language Pro­ces­sing hanno in comune il fatto che seguono la gerarchia che definisce le con­nes­sio­ni tra le singole parole. Questo risulta tuttavia com­pli­ca­to, poiché molte parole hanno un doppio si­gni­fi­ca­to: un esempio potrebbe essere “assumere”, che può si­gni­fi­ca­re sia impiegare qualcuno per un lavoro, sia prendere in carico qualcosa su di sé (“assumersi l’incarico”), ma può anche acquisire il senso di ingerire, ad esempio un me­di­ci­na­le o una de­ter­mi­na­ta sostanza. Per via proprio di queste dif­fi­col­tà, il Natural Language Pro­ces­sing rap­pre­sen­ta uno dei campi più com­pli­ca­ti dell’in­for­ma­ti­ca. La lingua è spesso ambigua, e per poterla capire è ne­ces­sa­rio possedere una co­no­scen­za esau­rien­te del contesto nel quale essa viene usata. Molti utenti vengono a co­no­scen­za della co­mu­ni­ca­zio­ne sconnessa che avviene con i chatbot, i quali vengono uti­liz­za­ti sempre più spesso nell’as­si­sten­za clienti come sostituto per le live chat. Tuttavia la com­pren­sio­ne delle lingue umane da parte dei computer è mi­glio­ra­ta sempre più. Al fine di poter insegnare loro la lingua, i linguisti com­pu­ta­zio­na­li hanno attinto alle co­no­scen­ze di­spo­ni­bi­li della lin­gui­sti­ca tra­di­zio­na­le, ovvero ai seguenti campi:

  • la mor­fo­lo­gia si occupa della com­po­si­zio­ne delle parole e delle loro relazioni con altre parole;
  • la sintassi definisce la struttura secondo la quale le parole vengono messe in relazione all’interno di una frase;
  • la semantica tratta invece il si­gni­fi­ca­to delle parole e dei gruppi di parole;
  • con l’aiuto della prag­ma­ti­ca si esplora invece il contesto delle af­fer­ma­zio­ni e quindi delle finalità espres­si­ve delle parole;
  • la fonologia si occupa invece della struttura acustica della lingua parlata ed è quindi im­por­tan­te per il ri­co­no­sci­men­to delle lingue.

Part of Speech tagging (PoS)

Il primo passo dell’ela­bo­ra­zio­ne del lin­guag­gio naturale ha a che fare con la mor­fo­lo­gia: si tratta di de­ter­mi­na­re la funzione delle singole parole. La maggior parte delle persone sono venute a contatto con una forma basilare di questo processo a scuola, ovvero l’analisi gram­ma­ti­ca­le, che serve a ri­co­no­sce­re e riferirsi alle parole come so­stan­ti­vi, verbi, aggettivi, ecc. De­ter­mi­na­re tale funzione non è di certo un compito facile per i computer, visto che una parola può cambiare funzione in base alla pro­po­si­zio­ne nella quale viene impiegata.

Per poter snoc­cio­la­re l’ambiguità delle parole, ci sono diversi metodi a di­spo­si­zio­ne: quelli presenti da più tempo si basano su grandi corpora testuali come il Brown Corpus e il British National Corpus. Questi corpora, ovvero grandi col­le­zio­ni di testi, si com­pon­go­no di milioni di parole derivanti da testi di prosa, a cui vengono assegnati dei tag e dai quali vengono dedotti delle regole di ap­pren­di­men­to atte a mi­glio­ra­re ed ampliare la clas­si­fi­ca­zio­ne delle parole. Sulla base del Brown Corpus può ad esempio essere de­ter­mi­na­ta la regola che un verbo perde la sua funzione pre­di­ca­ti­va quando è preceduto da un articolo.

I nuovi programmi per la clas­si­fi­ca­zio­ne im­ple­men­ta­no algoritmi au­to­di­dat­ti, in grado di dedurre, in maniera autonoma, delle regole dal corpo testuale e di uti­liz­zar­le per riuscire ad intendere ulteriori funzioni delle parole. Un metodo di tagging tra i più co­no­sciu­ti, che si basa appunto su un algoritmo di questo tipo, è il Brill Tagger, che definisce in­nan­zi­tut­to le funzioni più ri­cor­ren­ti in una pro­po­si­zio­ne, per riuscire suc­ces­si­va­men­te ad evincere altre funzioni delle parole grazie all’aiuto delle regole. Una regola potrebbe essere: quando la prima parola di una pro­po­si­zio­ne è un nome proprio, con ogni pro­ba­bi­li­tà la parola seguente sarà un verbo. In un frase come “Jacopo ha comprato un libro”, la parola “ha” può essere clas­si­fi­ca­ta come verbo.

Albero sin­tat­ti­co o diagramma ad albero

Nel secondo passaggio vengono uti­liz­za­te le co­no­scen­ze derivanti dalla sintassi, in modo da riuscire a com­pren­de­re la struttura delle pro­po­si­zio­ni. A tale scopo la lin­gui­sti­ca com­pu­ta­zio­na­le utilizza un diagramma ad albero, dove una pro­po­si­zio­ne viene suddivisa in frasi. Degli esempi di frasi sono le frasi nominali, le quali si formano con un nome proprio o al­tri­men­ti con un so­stan­ti­vo e un articolo, o le frasi verbali, le quali si com­pon­go­no di un verbo e una frase nominale.

In lingua inglese la sud­di­vi­sio­ne delle pro­po­si­zio­ni prende il nome di parsing, ed è proprio da questo che deriva il diagramma ad albero parse tree, chiamato in italiano sem­pli­ce­men­te come albero sin­tat­ti­co. Ogni lingua ha una gram­ma­ti­ca propria, il che significa che in ogni lingua le frasi vengono strut­tu­ra­te in maniera dif­fe­ren­te e la gerarchia delle frasi funziona quindi in maniera dif­fe­ren­te. La gram­ma­ti­ca di una lingua all’interno di un programma per computer può essere con­fi­gu­ra­ta ma­nual­men­te o può essere acquisita gra­dual­men­te tramite corpus, all’interno del quale vengono annotate le strutture delle frasi.

Semantica

Il terzo passaggio dell’ela­bo­ra­zio­ne del lin­guag­gio naturale porta lo svi­lup­pa­to­re nel campo della semantica. Anche se sia la funzione sin­tat­ti­ca che la clas­si­fi­ca­zio­ne at­tri­bui­ta ad una parola sono le stesse, è possibile che la parola abbia diversi si­gni­fi­ca­ti. Le seguenti pro­po­si­zio­ni ne sono un esempio: Il com­mer­cia­li­sta fa la fattura La strega fa la fattura Chiunque conosca a suf­fi­cien­za la lingua italiana capirebbe im­me­dia­ta­men­te che sebbene la parola “fattura” abbia la stessa funzione all’interno di queste due frasi, nella prima si fa ri­fe­ri­men­to ad un documento emesso a fini com­mer­cia­li, mentre nella seconda si tratta di un atto di stre­go­ne­ria. Per un computer questo non sarebbe invece così immediato. La co­no­scen­za che sta alla base tra i due si­gni­fi­ca­ti della parola “fattura”, il computer non la possiede; e saper di­stin­gue­re tra le due accezioni risulta quindi estre­ma­men­te com­pli­ca­to. Per ovviare a questo problema i computer tentano di in­di­vi­dua­re il si­gni­fi­ca­to di una parola con l’aiuto delle parole che la precedono e che la seguono. Così facendo gli sarà possibile dedurre che quando la parola fattura è messa in con­nes­sio­ne alla parola “com­mer­cia­li­sta”, allora il si­gni­fi­ca­to sarà quello legato all’ambito economico/fiscale, mentre quando nelle vicinanze della parola si troverà “strega”, allora si parlerà di stre­go­ne­ria e su­per­sti­zio­ne. Il computer è in grado di ap­pren­de­re questa dif­fe­ren­za sulla base di un corpus, all’interno del quale è re­sti­tui­to il si­gni­fi­ca­to corretto di ogni parola. Tutto con­si­de­ra­to l’ela­bo­ra­zio­ne del lin­guag­gio naturale rimane un campo complesso: i computer devono già elaborare una grande quantità di singoli casi e per ogni parola con più di un possibile si­gni­fi­ca­to è facile che il computer la in­ter­pre­ti in maniera errata. So­prat­tut­to nel campo della prag­ma­ti­ca vanno fatti ancora notevoli passi in avanti, poiché la com­pren­sio­ne di una qualsiasi pro­po­si­zio­ne è stret­ta­men­te legata al contesto nella quale essa viene espressa, e per capirne il contesto, che è spesso legato comunque alla vita terrena, è dunque ne­ces­sa­ria una buona co­no­scen­za del mondo che manca ai computer. In modo par­ti­co­la­re l’ironia, il sarcasmo e le metafore scherzose sono concetti che il computer fa molta fatica a com­pren­de­re; anche se ci sono stati diversi tentativi di clas­si­fi­car­le.

Strumenti per l’ela­bo­ra­zio­ne del lin­guag­gio naturale

Chi vuole tentare di ap­proc­cia­re l’ela­bo­ra­zio­ne del lin­guag­gio naturale, troverà online strumenti e guide pratici. Quale strumento sia quello che faccia al caso vostro dipende es­sen­zial­men­te da quali siano la lingua e il metodo di utilizzo. Qui di seguito vi pre­sen­tia­mo alcuni co­no­sciu­ti strumenti open source e un database che raccoglie la maggior parte degli strumenti pensati per la lingua italiana:

  • Il Natural Language Toolkit: è una raccolta di strumenti per l’ela­bo­ra­zio­ne del lin­guag­gio naturale, svi­lup­pa­ti con il lin­guag­gio di pro­gram­ma­zio­ne Python. Questo toolkit offre accesso ad oltre 100 corpora in numerose lingue. Questo strumento è inoltre in grado di condurre diversi tipi di ela­bo­ra­zio­ni testuali come Part of Speech tagging, Parsing, To­ke­ni­za­tion (ovvero la clas­si­fi­ca­zio­ne delle radici delle parole; un passaggio pro­pe­deu­ti­co spesso uti­liz­za­to per l’ela­bo­ra­zio­ne del lin­guag­gio naturale) e la pos­si­bi­li­tà di rias­su­me­re i testi, ope­ra­zio­ne chiamata wrapping. Il Natural Language Toolkit comprende anche un’in­tro­du­zio­ne alla pro­gram­ma­zio­ne e una do­cu­men­ta­zio­ne estesa, il che lo rende un programma adatto alle esigenze di studenti, docenti e ri­cer­ca­to­ri.
  • Stanford NLP Group Software: lo Stanford NLP Group è uno dei gruppi di ricerca di maggiore im­por­tan­za nel settore dell’ela­bo­ra­zio­ne del lin­guag­gio naturale ed offre diversi validi strumenti. Con questi strumenti è possibile di­stin­gue­re e clas­si­fi­ca­re le de­ri­va­zio­ni delle parole (To­ke­ni­za­tion), la loro funzione (Parts of Speech tagging), e la struttura delle pro­po­si­zio­ni (Parsing). In aggiunta vi sono dei tool per processi più com­pli­ca­ti come il Deep Learning, tramite il quale il focus viene posto sul contesto delle pro­po­si­zio­ni. Tutte le più im­por­tan­ti funzioni base possono essere trovate nello Stanford Core NLP. Tutti i programmi dello Stanford NLP Group sono scritti in Java e di­spo­ni­bi­li in diverse lingue.
  • Vi­sual­text: è un set di strumenti scritto in un lin­guag­gio di pro­gram­ma­zio­ne puro, pensato per l’ela­bo­ra­zio­ne del lin­guag­gio naturale, cioè NLP++. Questa lingua di pro­gram­ma­zio­ne è stata svi­lup­pa­ta so­prat­tut­to per i co­sid­det­ti Deep Text Analyzers, ma anche per le analisi ne­ces­sa­rie per l’in­tel­li­gen­za ar­ti­fi­cia­le, ovvero ri­guar­dan­ti ambiente e società. Vi­sual­text serve so­prat­tut­to ad estrarre in­for­ma­zio­ni mirate da testi molto lunghi. Ad esempio, con Vi­sual­text, è possibile rias­su­me­re lunghi testi, ma anche rac­co­glie­re eventi da diversi siti web, relativi ad una tematica precisa e rag­grup­par­li assieme. Se uti­liz­za­te Vi­sual­text per fini non com­mer­cia­li, allora sarà di­spo­ni­bi­le gra­tui­ta­men­te.
  • PARLI: è un progetto italiano, fi­nan­zia­to pub­bli­ca­men­te, che si propone come punto di ri­fe­ri­men­to per la lingua italiana delle tec­no­lo­gie del lin­guag­gio. Da questo progetto è nato un portale web che raccoglie numerose risorse e strumenti. Nella sezione strumenti è possibile trovare un’ampia gamma di tool specifici per l’italiano, messi a di­spo­si­zio­ne dai vari ri­cer­ca­to­ri che operano nell’ambito della NLP della lingua italiana. I vari strumenti sono ca­te­go­riz­za­ti in base alla funzione che offrono. Il portale è dedicato so­prat­tut­to all’ambito della ricerca e a quello dell’industria.
Vai al menu prin­ci­pa­le