Algoritmo semantico NLP per riconoscere il sarcasmo e l'ironia
Uno dei principali problemi del processo NLP ( Natural Language Processing ) è il riconoscimento semantico di una frase sarcastica o ironica.
Il sarcasmo e l'ironia sono forme di comunicazione retoriche molto sottili e complesse da riconoscere. A volte nemmeno gli esseri umani ci riescono, figuriamoci per un algoritmo informatico che interpreta il linguaggio naturale.
Qual è la differenza tra sarcasmo e ironia?
Nel linguaggio comune i due termini sono usati come sinonimi, in realtà si tratta di cose diverse.
Nell'ironia viene stravolto il significato letterale delle parole ( es. "ma che bravo!" ) e può essere anche bonaria. Una persona trasmette all'altra un messaggio con un significato completamente opposto rispetto a quello che si avrebbe tramite una lettura letterale della frase.
Nel sarcasmo, invece, si usa il significato esatto dei termini per fare un'affermazione beffarda e crudele ( es. dire a una persona palesemente brutta "sei più bella che intelligente" ). Si utilizza un presupposto noto a tutti ( "sei brutta" ) per far assumere al messaggio un significato sottinteso, pungente, umiliante o offensivo ( "sei stupida" ).
In entrambi i casi, comunque, il significato letterale della frase diverge dal significato semantico. Quest'ultimo aspetto accomuna sia l'ironia che il sarcasmo.
Come riconoscere l'ironia e il sarcasmo?
Secondo alcune tecniche la frase sarcastica o ironica potrebbe essere riconosciuta dalla presenza di alcuni elementi linguistici. In particolar modo gli elementi rafforzativi ( es. moltissimo, tantissimo, punto interrogativo, ecc. ) Tuttavia, non è una strada efficace.
Esempio. L'affermazione "ma che bravo!" potrebbe essere ironica. D'altra parte, potrebbe anche non esserlo.
Secondo un'altra tecnica, invece, il sarcasmo e l'ironia possono essere riconosciute tramite la contestualizzazione della frase nel processo di comunicazione.
In altri termini, per capirlo è necessario analizzare il contesto, la situazione in cui si trovano gli interlocutori e i messaggi scambiati precedentemente. Soltanto così si può capire il senso logico di un'affermazione e riconoscere il sarcasmo e l'ironia tramite la contraddizione.
Esempio. Se X sta parcheggiando e urta l'automobile di Y, Y afferma "ma che bravo!". E' una contraddizione logica poiché X ha danneggiato Y. E' quindi evidente che il messaggio di Y è ironico.
La contestualizzazione del messaggio conduce a un'interpretazione migliore, più sensata e vicina al significato semantico del messaggio.
In conclusione, per riconoscere l'ironia e il sarcasmo un algoritmo dovrebbe raccogliere più informazioni possibili sul contesto ed effettuare deduzioni logiche su ciò che è vero o falso, su ciò che è utile o dannoso, per gli interlocutori coinvolti nel processo di comunicazione.
Nota. La contestualizzazione è utile anche per comprendere le forme di comunicazioni gestuali e corporali, il cui messaggio potrebbe divergere da quello letterale delle parole.
I limiti della contestualizzazione
Un limite del proceso di contestualizzazione sono i messaggi one-shot. Ad esempio, un commento scritto sotto un articolo. Non essendoci una storia, non si può analizzare il processo di comunicazione.
In questi casi, è più efficace l'utilizzo di una tecnica empirica basata su un calcolo statistico-probabilistico che associa le varie espressioni idiomatiche a un intento positivo o negativo.
Esempio. Se nella lingua comune l'espressione "ma che bravo!" è utilizzata nel 80% dei casi studiati in forma ironica, l'algoritmo associa automaticamente questo segmento lessicale all'ironia, ossia al significato letterale "non sei bravo".
Essendo un campo ad elevato rischio e incertezza di analisi, è preferbile ricorrere alle variabili fuzzy.