Università degli studi di Bari “Aldo Moro” Laurea Magistrale in Informatica Intelligenza Artificiale Agenti per la comunicazione SEDUCE (Sistema Esperto per l’analisi Di Una ConversazionE) Docenti: Prof. Floriana Esposito Prof. Stefano Ferilli Prof. De Carolis Nunzio Gianfelice Matr. 585229
53
Embed
Sistema Esperto per l'analisi Di Una ConversazionE
Progetto universitario di "Intelligenza Artificiale" e "Agenti per la comunicazione" svolto presso il Dipartimento di Informatica di Bari durante il corso del mio percorso universitario Magistrale.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Università degli studi di Bari “Aldo Moro”
Laurea Magistrale in Informatica
Intelligenza Artificiale
Agenti per la comunicazione
SEDUCE
(Sistema Esperto per l’analisi Di Una ConversazionE)
Docenti:
Prof. Floriana Esposito
Prof. Stefano Ferilli
Prof. De Carolis
Nunzio Gianfelice
Matr. 585229
Indice Obiettivo
1) Comunicazione
1.1 Un modello formale di comunicazione
1.2 I cinque assiomi della comunicazione
1.3 Comunicazione non verbale
1.4 I vari sistemi di comunicazione umana
1.4.1 Sistema paralinguistico
1.4.2 Sistema cinestesico
1.4.3 Prossemica
1.4.4 Aptica
1.5 Fattori di influenza esterna
1.5.1 Contesto fisico
1.5.2 Contesto relazionale
2) Analisi di tutti i fattori
2.1 Cosa si può capire dalla “VOCE”?
2.2 Cosa si può capire dalla “POSTURA”?
2.3 Cosa si può capire dalla “MIMICA FACCIALE”?
2.4 Cosa si può capire dai “GESTI”?
2.5 Cosa ci indicano determinate “CUE WORD”?
2.6 Cosa si può capire dal “CONTESTO RELAZIONALE”?
2.7 Cosa si può capire dal “CONTESTO FISICO”?
3)Concettualizzazione
3.1 Concettualizzazione
3.2 Concettualizzazione dei predicati
3.3 Concettualizzazione delle regole
3.4 Fatti nella base di conoscenza
3.5 Regole nella base di conoscenza
4)Sviluppo
4.1 Scelta stategia di ragionamento
4.2 Meta – interprete forward
4.3 Interfaccia grafica Java
5)Utilizzo e sperimentazione
5.1 Esperimento
6)Considerazioni e sviluppi futuri
Obiettivo
L’obiettivo che si pone questo progetto consiste nell’estrarre informazioni rilevanti
dall’osservazione di una conversazione tra due o più individui. L’estrazione sarà fatta basandosi
su tutti i processi comunicativi che si attivano volontariamente e involontariamente quando
ognuno di noi comunica con un’altra persona. Oltre alla comunicazione sarà presa in
considerazione l’analisi del contesto in cui si svolge la comunicazione e fattori indiretti che
influenzano in qualche maniera la stessa come ad esempio l’abbigliamento.
I dati che saranno ricavati dall’osservazione di queste conversazioni saranno dati in input ad un
sistema esperto che riuscirà a dedurre informazioni rilevanti sui partecipanti alla conversazione,
sul contesto nella quale si svolge e sul messaggio che si vuole trasmettere.
Il progetto non si pone l’obiettivo di avere una vastissima collezione d’informazioni classificate
in input da processare, ma la definizione di una struttura di regole che permetta attraverso più
passi d’inferenza di ricavare dettagli utili per la classificazione di una conversazione o
comunicazione tra due individui. Per questo verrà fatta un’ampia analisi e descrizione di tutti i
processi che si attivano durante uno scambio d’informazione e con una metodologia di sviluppo
per raffinamenti successivi (step-wise refinement; naturalmente si terrà conto che si tratta di un
S.E.) si creerà uno schema da implementare che rispecchi in maniera più concreta possibile la
circostanza reale.
1) Comunicazione
La comunicazione (dal latino cum = con, e munire = legare, costruire e dal
latino communico = mettere in comune, far partecipe) non è soltanto un processo di
trasmissione d’informazioni (secondo il modello di Shannon-Weaver). In italiano, il termine
"comunicazione" ha il significato semantico di "far conoscere", "rendere noto". La
comunicazione è un processo costituito da un soggetto che ha intenzione di far sì che il
ricevente riesca a percepire ciò che si vuole trasmettere.
Fig. 1 – Modello che descrive il flusso di un’informazione
Il concetto di comunicazione comporta la presenza di un’interazione tra soggetti diversi: si tratta
in altri termini di un’attività che presuppone un certo grado di cooperazione. Ogni processo
comunicativo avviene in entrambe le direzioni.
Nel processo comunicativo che vede coinvolti gli esseri umani, ci troviamo così di fronte a due
polarità: da un lato la comunicazione come atto di pura cooperazione, in cui due o più individui
"costruiscono insieme" una realtà e una verità condivisa; dall'altro la pura e semplice
trasmissione, unidirezionale, senza possibilità di replica, nelle varianti dell'imbonimento
televisivo o dei rapporti di caserma. Nel mezzo, naturalmente, vi sono le mille diverse occasioni
comunicative che tutti viviamo ogni giorno, in famiglia, a scuola, in ufficio, in città.
Fig. 2 – Il sistema comunicativo umano – Sociologia della comunicazione, p. 48
1.1) Un modello formale di comunicazione
Generalmente si distinguono diversi elementi che concorrono a realizzare un singolo atto
comunicativo.
� Emittente: è la persona che avvia la comunicazione attraverso un messaggio.
� Ricevente: accoglie il messaggio, lo decifra, lo interpreta e lo comprende.
� Codice: parola parlata o scritta, immagine, tono impiegata per "formare" il messaggio.
� Canale: il mezzo di propagazione fisica del codice (onde sonore o elettromagnetiche,
scrittura, bit elettronici).
� Contesto: l'”ambiente" significativo all'interno del quale si situa l'atto comunicativo.
� Referente: l'oggetto della comunicazione, cui si riferisce il messaggio.
1.2) I cinque assiomi della comunicazione
Gli assiomi della comunicazione furono definiti da Paul Watzlawick e altri studiosi della Scuola
di Palo Alto (California), allo scopo di identificare alcune proprietà della comunicazione, e
utilizzarle per diagnosticare alcune patologie.
Né furono individuati cinque: l'impossibilità di non comunicare; i livelli comunicativi di
contenuto e relazione; la punteggiatura della sequenza di eventi; la comunicazione numerica e
analogica; l'interazione complementare e simmetrica.
Il primo assioma dice che è impossibile non comunicare: qualsiasi interazione umana è una
forma di comunicazione. Qualunque atteggiamento assunto da un individuo, diventa
immediatamente portatore di significato per gli altri.
Il secondo stabilisce un rapporto tra il contenuto e la relazione che c’è fra i comunicanti:
secondo gli studiosi di Palo Alto il contenuto classifica la relazione. Ogni comunicazione
comporta un aspetto di ‘meta comunicazione’ che determina la relazione tra i comunicanti. Ad
esempio, la mamma che ordina al bambino di andare a fare il bagno esprime, oltre al contenuto
(la volontà che il bambino si lavi), anche la relazione che intercorre tra chi comunica e chi è
oggetto della comunicazione, nel caso particolare quella di superiore/subordinato.
Il terzo assioma evidenzia la connessione tra la punteggiatura della sequenza di comunicazione
e la relazione che intercorre tra i comunicanti: il modo di interpretare la comunicazione è in
funzione della relazione tra i comunicanti. Poiché la comunicazione è un continuo alternarsi di
flussi comunicativi da una direzione all'altra e le variazioni di direzione del flusso
comunicativo sono scandite dalla punteggiatura, il modo di leggerla sarà determinato dal tipo di
relazione che lega i comunicanti.
Il quarto assioma attribuisce agli esseri umani la capacità di comunicare sia analogicamente
sia digitalmente. Quando gli esseri umani comunicano per immagini, ad esempio disegnando,
la comunicazione è analogica. La comunicazione analogica si basa sulla somiglianza tra gli
strumenti di supporto e le grandezze rappresentate: mantiene quindi un rapporto di analogia con
i fenomeni e gli oggetti che designa e trasmette. Esempi di mezzi di comunicazione analogici
sono: il termometro a mercurio, l'orologio a lancette. Quando si comunica usando le parole, la
comunicazione segue il modulo digitale. Questo perché le parole sono segni arbitrari che
permettono una manipolazione secondo le regole della sintassi logica che li organizza. La
comunicazione digitale si basa sull'uso di segnali discreti per rappresentare in forma numerica i
fenomeni e gli oggetti che intende designare. Esempi di mezzi di comunicazione digitali sono:
il faX, il compact disc, l'orologio a cristalli liquidi (in cui l'indicazione dell'ora e delle sue
frazioni è visualizzata con scatti di cifre).
Il quinto assioma afferma che tutti gli scambi comunicativi si fondano o sull'uguaglianza o
sulla differenza e quindi possono essere simmetrici o complementari. Si dicono complementari
gli scambi comunicativi in cui i comunicanti non sono sullo stesso piano (mamma/bambino,
dipendente/datore di lavoro). Sono simmetrici gli scambi in cui gli interlocutori si considerano
sullo stesso piano: è questo il caso di comunicazioni tra pari grado (marito/moglie, compagni di
classe, fratelli, amici).
1.3) Comunicazione non verbale
La comunicazione non verbale è quella parte della comunicazione che comprende tutti gli
aspetti di uno scambio comunicativo che non riguardano il livello puramente semantico del
messaggio, ossia il significato letterale delle parole che compongono il messaggio stesso, ma
che riguardano il linguaggio del corpo, ossia la comunicazione non parlata tra persone.
Secondo i linguisti più del 90% della nostra comunicazione giornaliera è, infatti, non-verbale. È
quindi un contributo enorme al linguaggio verbale e, poiché la comunicazione è strettamente
ambivalente, possiamo facilmente comprendere quanto sia più grande il rischio di non capire
quando si è al telefono piuttosto che quando si parla a faccia a faccia.
Uno studio condotto nel 1972 da Albert Mehrabian ("Non-verbal communication") ha mostrato
che ciò che viene percepito in un messaggio vocale può essere così suddiviso:
� Movimenti del corpo (soprattutto espressioni facciali) 55%
� Aspetto vocale (Volume, tono, ritmo) 38%
� Aspetto verbale (parole) 7%
L’efficacia di un messaggio dipende quindi solamente in minima parte dal significato letterale
di ciò che viene detto, e il modo in cui questo messaggio viene percepito è influenzato
pesantemente dai fattori di comunicazione non verbale.
Nell'ambito delle scienze della comunicazione la comunicazione non verbale viene suddivisa in
quattro componenti:
� Sistema paralinguistico
� Sistema cinestesico
� Prossemica
� Aptica
1.4) I vari sistemi di comunicazione umana
c
1.4.1) Sistema paralinguistico - Voce
Detto anche Sistema vocale non verbale, indica l'insieme dei suoni emessi nella comunicazione
verbale, indipendentemente dal significato delle parole. Le caratteristiche della voce, che
comprendono il flusso verbale, il volume e il ritmo, possono rivelare sentimenti ed emozioni
quali l’ansia, la paura, l’ira, il dolore e la gioia.
Il sistema paralinguistico è caratterizzato da diversi aspetti:
Tono
Il tono viene influenzato da fattori fisiologici (età, costituzione fisica), e dal contesto: una
persona di elevato livello sociale che si trova a parlare con una di livello sociale più basso
tenderà ad avere un tono di voce più grave.
Frequenza
Anche in questo caso l'aspetto sociale ha una forte influenza: una persona che si trova a parlare
con un superiore tenderà ad avere una frequenza di voce più bassa rispetto al normale.
Ritmo
Il ritmo dato ad un discorso conferisce maggiore o minore autorevolezza alle parole
pronunciate: parlare ad un ritmo lento, inserendo delle pause tra una frase e l'altra, dà un tono di
solennità a ciò che si dice; al contrario parlare ad un ritmo elevato attribuisce poca importanza
alle parole pronunciate.
Silenzio
Anche il silenzio rappresenta una forma di comunicazione nel sistema paralinguistico, e le sue
caratteristiche possono essere fortemente ambivalenti: il silenzio tra due innamorati ha
ovviamente un significato molto diverso rispetto al silenzio tra due persone che si ignorano. Ma
anche in questo caso gli aspetti sociali e gerarchici hanno una parte fondamentale: un professore
che parla alla classe o un ufficiale che si rivolge alle truppe parleranno nel generale silenzio,
considerato una forma di rispetto per il ruolo ricoperto dalla persona che parla.
1.4.2) Sistema cinestesico – Sguardo/Espressività facciale/Gesti/Postura
Il sistema cinestesico comprende tutti gli atti comunicativi espressi dai movimenti del corpo.
In primo luogo vanno considerati i movimenti oculari: il contatto visivo tra due persone ha una
pluralità di significati, dal comunicare interesse al gesto di sfida. L'aspetto sociale ed il contesto
influenzano anche quest’ aspetto: una persona, in una situazione di disagio, tenderà più
facilmente del solito ad abbassare lo sguardo.
Altra componente del sistema cinestesico è la mimica facciale. Riguardo a questo aspetto va
considerato che non tutto ciò che viene comunicato tramite le espressioni del volto è sotto il
nostro controllo (ad esempio l'arrossire o l'impallidire).
Altro elemento fondamentale del sistema cinestesico sono i gesti, in primo luogo quelli
compiuti con le mani. La gestualità manuale può essere una utile sottolineatura delle parole, e
quindi rafforzarne il significato, ma anche fornire una chiave di lettura difforme dal significato
del messaggio espresso verbalmente.
Vi sono diversi tipi di gesti divisi in quattro tipi di gesti:
- Deittico: viene utilizzato per indicare un oggetto ad una persona con l’indice e con la mano
aperta;
- Iconico: viene utilizzato per raffigurare nell’aria la forma o i movimenti tipici di un
oggetto, un animale o una persona;
- Simbolico: viene utilizzato in una certa cultura per dare un significato facilmente
traducibile in frasi o parole ;
- Batonico: viene utilizzato per scandire ed enfatizzare il parlato.
Altro elemento del sistema cinestesico è la postura. Anche in questo caso gli elementi sociali e
di contesto hanno grande importanza, talvolta identificando con precisione la posizione corretta
da mantenere in una data circostanza (i militari sull’attenti di fronte ad un superiore), talvolta in
maniera meno codificata ma comunque necessaria (una postura corretta e dignitosa di un alunno
in classe di fronte al professore). L’interlocutore può essere in piedi, seduto, le gambe o le
braccia incrociate, avere una o tutte e due le mani in tasca, dietro la schiena, essere piegato in
avanti. Tutto ciò che mettiamo davanti a noi costituisce una barriera e una difesa: le braccia
conserte e/o le gambe accavallate, una borsa, un mazzo di fiori, lo schienale della sedia se ci
mettiamo seduti a cavalcioni.
1.4.3) Prossemica – Vicinanza/Lontananza
L’aspetto prossemico della comunicazione analizza i messaggi inviati con l’occupazione dello
spazio.
Il modo nel quale le persone tendono a disporsi in una determinata situazione, apparentemente
casuale, è in realtà codificato da regole ben precise. Ognuno di noi tende a suddividere lo spazio
che ci circonda in quattro zone principali:
� Zona intima (da 0 a 50 centimetri)
� Zona personale (da 50 cm ad 1 metro)
� Zona sociale (da 1 m a 3 o 4 m)
� Zona pubblica (oltre i 4 m)
La zona intima è, come facilmente intuibile, quella con accesso più ristretto: di norma vengono
accettati senza disagio al suo interno solo alcuni familiari stretti e il partner. Un ingresso di altre
persone esterne a questo ristretto nucleo di “ammessi” all’interno della zona intima viene
percepita come una invasione che provoca un disagio, variabile a seconda del soggetto. Come
conferma di questo basti pensare alla situazione di imbarazzo che si prova quando siamo
costretti ad ammettere nella nostra zona intima soggetti estranei, ad esempio in ascensore o
sull’autobus; la conseguenza di questa situazione è un tentativo di mostrare l’involontarietà
della nostra “invasione”, quindi si tende ad irrigidirsi e a non incrociare lo sguardo con le altre
persone.
La zona personale è meno ristretta: vi sono ammessi familiari meno stretti, amici, colleghi. In
questa zona si possono svolgere comunicazioni informali, il volume della voce può essere
mantenuto basso e la distanza è comunque sufficientemente limitata da consentire di cogliere
nel dettaglio espressioni e movimenti degli interlocutori.
La zona sociale è quell’area in cui svolgiamo tutte le attività che prevedono interazione con
persone sconosciute o poco conosciute. A questa distanza (come detto da 1 a 3 o 4 metri) è
possibile cogliere interamente o quasi la figura dell’interlocutore, cosa che ci permette di
controllarlo per capire meglio le sue intenzioni. È anche la zona nella quale si svolgono gli
incontri di tipo formale, ad esempio un incontro di affari.
La zona pubblica è quella delle occasioni ufficiali: un comizio, una conferenza, una lezione
universitaria. In questo caso la distanza tra chi parla e chi ascolta è relativamente elevata e
generalmente codificata. È caratterizzata da una forte asimmetria tra i partecipanti alla
comunicazione: generalmente una sola persona parla, mentre tutte le altre ascoltano.
1.4.4) Aptica
L’aptica è costituita dai messaggi comunicativi espressi tramite contatto fisico. Anche in questo
caso si passa da forme comunicative codificate (la stretta di mano, il bacio sulle guance come
saluto ad amici e parenti), ad altre di natura più spontanea (un abbraccio, una pacca sulla spalla).
L’aptica è un campo nel quale le differenze culturali rivestono un ruolo cruciale: ad esempio la
quantità di contatto fisico presente nei rapporti interpersonali fra le persone di cultura sud-
europea verrebbe considerata come una violenta forma di invadenza dai popoli nord-europei.
1.5) Fattori di influenza esterna
Considerati i vari fattori di comunicazione di una conversazione in maniera diretta, si possono
analizzare fattori di influenza esterna che non condizionano la comunicazione ma possono
aiutare a capire e disambiguare sul significato della stessa osservata da un punto di vista esterno.
Tra questi fattori, troviamo sicuramente :
- Il contesto fisico inteso come luogo in cui avviene la conversazione;
- Il contesto relazionale inteso come relazione che intercorre tra i due.
1.5.1) Contesto fisico
Il contesto fisico in cui si svolge l’interazione tra due persone può essere fondamentale per
comprendere alcune caratteristiche della comunicazione che sta avvenendo. Per esempio se
consideriamo due giovani ragazzi in un parco sicuramente possiamo ipotizzare che il loro sia un
incontro informale. Viceversa se ci troviamo in un luogo accademico magari in un ufficio di un
Professore, la possibilità che si stia svolgendo una conversazione informale si abbassa ed è
molto più probabile che la conversazione sia di tipo formale. Naturalmente oltre il luogo inteso
proprio come localizzazione dello stesso, bisogna tenere conto anche dell’ “arredamento” dello
stesso. Ci si potrebbe trovare nell’atrio dell’Università e quindi essendoci un arredamento di
panchine, piante, alberi e fontane la conversazione potrebbe essere formale come informale.
Fig. 3 – Freddo o sulle difensive?
Un altro esempio che indica l’importanza del contesto potrebbe essere rappresentato(Fig.3) da
un persona che in una fredda giornata invernale se ne sta seduto in attesa dell’autobus con le
braccia e le gambe strettamente incrociate e il mento chino. Questa postura vuole indicare che il
soggetto ha freddo più che dimostrare un atteggiamento difensivo. Se però fosse seduto a un
tavolo davanti a voi mentre cercate di proporgli un’idea, o di vendergli un prodotto o un
servizio, significherà quasi di sicuro che non aprrezza o rifiuta l’ offerta.
1.5.2) Contesto relazionale
Il contesto relazionale serve soprattutto a definire il rapporto di potere che intercorre tra i
soggetti coinvolti nella comunicazione. Questo contesto è desumibile da fattori quali il sesso dei
due, l’età e l’abbigliamento che usano. Riprendendo l’esempio di prima si potrebbe capire nell’
osservare due ragazzi al parco, uno di sesso maschile e uno di sesso femminile con più o meno
la stessa età che tra di loro ed entrambi con un abbigliamento sportivo che c’è una relazione di
amicizia o intima. Invece se consideriamo due soggetti di sesso opposto ma di età molto
differenti e vestiti in maniera elegante si potrà escludere la relazione intima e pensare ad una
relazione di parentela oppure di ambito lavorativo.
2) Analisi di tutti i fattori
Potendo analizzare tutti i fattori sopra elencati riusciremmo ad ottenere molteplici informazioni
dalla semplice osservazioni di una conversazione tra due persone. Si potrebbe ipotizzare
l’esistenza di una rete di sensori (uno per ogni fattore descritto) che estraggono determinate
informazioni dall’osservazione della comunicazione e passano i dati raccolti ad un sistema
esperto che gli analizza e con processi di inferenza riesce a dedurre informazioni che non sono
direttamente ottenibili dall’osservazione dei singoli dati raccolti. Uno schema riassuntivo dei
vari fattori presi in analisi in questo documento è dato dall’ immagine seguente. (Fig. 4)
Fig. 4 – Fattori analizzati e possibili deduzioni ottenibili
Considerando ogni categoria del precedente schema che fornisce un input rilevante al sistema
esperto che si andrà a progettare, possiamo elencare le caratteristiche che verranno prese in
esame e possiamo elencarle per categoria.
2.1) Cosa si può capire dalla “VOCE”? [4][9]
Attraverso un analizzatore di voce si potrebbero distinguere le caratteristiche di Tonalità,
Intensità, Ritmo, Pause, Velocità e di conseguenza avere in input le seguenti informazioni.
Tonalità bassa � Accettazione di sè , Estroversione
Tonalità alta � Introversione, Insicurezza
Intensità (volume) alta � Dominanza
Intensità (volume) bassa � Ansia
Ritmo veloce � Ansia
Pause poche e brevi � Estroversione
Pause lunghe � Introversione
Aumento della Tonalità, Ritmo irregolare � Emozione di paura
Tono basso, Pause lunghe, Ritmo lento � Emozione di tristezza
Tonalità acuta della voce, Intensità crescente, Ritmo accelerato � Emozione di gioia
Diminuzione della Velocità, Tono basso, Intensità piena � Emozione di disprezzo
2.2) Cosa si può capire dalla “POSTURA”? [8][9]
Analizzando una conversazione da un punto esterno ad essa si può notare la postura dei due
interlocutori e suddividerla principalmente quattro zone. Ognuna delle quali va a delineare il
Per creare anche una tipologia di spiegazione che spiegasse il goal ottenuto non solo sotto forma
di regole e predicati da cui è stato dedotto ma anche in maniera descrittiva, si sono creati dei
nuovi predicati che hanno la funzione di esplicitare il concetto racchiuso nel predicato. Questa
esigenza è venuta fuori dopo un paio di test con gli utenti che si sono effettuati per testare
l’usabilità del sistema. I concetti di spiegazione hanno la seguente forma e ne è stato definito
uno per ogni concetto che sia intermedio o finale. Non sono stati definiti i concetti iniziali dato
che essendo inseriti dall’utente attaverso interfaccia grafica hanno già una facile comprensione.
La sintassi del predicato di spiegazione è
spiegazione(fatto(...(..)),’ descrizione informale del concetto’).
e questo predicato viene richiamato direttamente dall’interfaccia grafica attraverso una
Query (spiegata nel paragrafo successivo) che ne permette la visualizzazione nella GUI
costruita. L’elenco dei fatti di spiegazione è il seguente:
spiegazione(fatto(cooperativa_38(_)),'il livello di cooperatività da parte del soggetto è al 38 percento. _ Questa percentuale(bassa) è data dalla tipologia dei fatti da cui è stato dedotto.').
spiegazione(fatto(cooperativa_55(_)),'il livello di cooperatività da parte del soggetto è al 55 percento. _ Questa percentuale(medio alta) è data dalla tipologia dei fatti da cui è stato dedotto.').
spiegazione(fatto(competitivo_38(_)),'il livello di competitività da parte del soggetto è al 38 percento. _ Questa percentuale(bassa) è data dalla tipologia dei fatti da cui è stato dedotto.').
spiegazione(fatto(competitiva_55(_)),'il livello di competitività da parte del soggetto è al 55 percento. _ Questa percentuale(medio alta) è data dalla tipologia dei fatti da cui è stato dedotto.').
spiegazione(fatto(conv_poco_cooperativa(_,_)),'la conversazione tra i due soggetti è poco cooperativa. _ Questo lo si capisce dal fatto che i due soggetti a loro volta danno solo segnali di bassa cooperatività.').
spiegazione(fatto(conv_abbastanza_cooperativa(_,_)),'la conversazione tra i due soggetti è abbastanza cooperativa. _ Questo lo si capisce dal fatto che uno dei due soggetti è più propenso alla cooperazione.').
spiegazione(fatto(conv_molto_cooperativa(_,_)),'la conversazione tra i due soggetti è molto cooperativa. _ Entrambi i soggetti presentano sintomi di buona cooperazione.').
spiegazione(fatto(conv_poco_competitiva(_,_)),'la conversazione tra i due soggetti sembra diventare competitiva. _ Questo lo si capisce dal fatto che i due soggetti a loro volta danno piccoli segnali si competitività.').
spiegazione(fatto(conv_abbastanza_competitiva(_,_)),'la conversazione tra i due soggetti è competitiva. _ Questo lo si capisce dal fatto che entrambi danno segnali di competitività.').
spiegazione(fatto(conv_molto_competitiva(_,_)),'la conversazione tra i due soggetti è molto competitiva. _ Entrambi i soggetti presentano sintomi di alta competitività.').
spiegazione(fatto(insicurezza(_)),'il soggetto si sente insicuro e/o non si trova a proprio agio nella conversazione. _ Comunicando segnali di insicurezza.').
spiegazione(fatto(dominanza(_)),'il soggetto comunica segnali di dominanza. _ La maggior parte delle volte sono intrinsechi nel modo naturale di comportarsi.').
spiegazione(fatto(sottomesso(_,_)),'il primo soggetto(in parentesi) è in una situazione di sottomissione da parte del secondo soggetto.').
spiegazione(fatto(entrambi_dominanti(_,_)),'entrambi cercano di porsi in una situazione di dominanza rispetto all altro.').
spiegazione(fatto(informale_dis(_,_)),'la distanza tra i soggetti è definita informale perchè si è nel raggio _ della zona personale o intima aperta di solito a familiari,amici o colleghi.').
spiegazione(fatto(formale_dis(_,_)),'la distanza tra i soggetti è definita formale perchè si è fuori dal raggio _ della zona personale. Di solito ci si tiene a questa distanza con gli sconosciuti _ o con chi si ha poca confidenza.').
spiegazione(fatto(formale_luo(_,_)),'il luogo in cui si svolge la conversazione è un luogo dove per lo _ più si svolgono interazioni di tipo formale.').
spiegazione(fatto(informale_luo(_,_)),'il luogo in cui si svolge la conversazione è un luogo dove per lo _ più si svolgono interazioni di tipo informale.').
spiegazione(fatto(formale(_)),'il soggetto è in una posizione che determina la sua rigidezza.').
spiegazione(fatto(informale(_)),'il soggetto è in una posizione che determina la sua disinvoltura.').
spiegazione(fatto(conv_poco_formale(_,_)),'la conversazione risulta caratterizzata da alcuni tratti di formalità.').
spiegazione(fatto(conv_abb_formale(_,_)),'la conversazione risulta caratterizzata da tratti di formalità.').
spiegazione(fatto(conv_molto_formale(_,_)),'la conversazione risulta caratterizzata da numerosi tratti di formalità.').
spiegazione(fatto(conv_poco_informale(_,_)),'la conversazione potrebbe essere informale.').
spiegazione(fatto(conv_abb_informale(_,_)),'la conversazione sembra essere informale.').
spiegazione(fatto(conv_molto_informale(_,_)),'la conversazione risulta essere informale.').
spiegazione(fatto(intenzione_non_andarsene(_)),'il soggetto in questione non ha intenzione di abbandonare la conversazione.').
spiegazione(fatto(persona_interessante_avanti(_)),'il soggetto ritiene che il suo interlocutore sia una persona interessante.').
spiegazione(fatto(interesse_sessuale(_,_)),'il soggetto maschile ha interesse sessuale verso il soggetto femminile.').
spiegazione(fatto(sulla_difensiva(_)),'il soggetto è sulla difensiva.').
spiegazione(fatto(nervosismo(_)),'il soggetto presenta segni di nervosismo.').
spiegazione(fatto(insicura_aspetto_fisico(_,_)),'il soggetto femminile manifesta insicurezza sul proprio aspetto fisico.').
spiegazione(fatto(interesse_romantico(_,_)),'il soggetto manifesta un certo interesse romantico per il suo interlocutore.').
spiegazione(fatto(disaccordo(_)),'il soggetto sembra non essere in accordo con il pensiero del suo interlocutore.').
spiegazione(fatto(concorde_vuole_parlare(_)),'il soggetto è concorde e intende esprimere la propria opinione.').
spiegazione(fatto(concorde_vuole_ascoltare(_)),'il soggetto è concorde e vuole continuare ad ascoltare.').
spiegazione(fatto(mancanza_fiducia(_)),'il soggetto non prova piena fiducia verso il suo interlocutore.').
spiegazione(fatto(nascondere_qualcosa(_)),'il soggetto ha qualcosa da nascondere.').
spiegazione(fatto(opinione_segreta(_)),'il soggetto ha un opinione segreta sulla conversazione.').
spiegazione(fatto(non_voler_ascoltare(_)),'il soggetto non è interessato alla conversazione.').
spiegazione(fatto(apprezzamento(_)),'il soggetto apprezza molto il suo interlocutore').
spiegazione(fatto(arrabbiato(_)),'il soggetto è alterato.').
spiegazione(fatto(disgusto(_)),'il soggetto non gradisce il contenuto della conversazione.').
spiegazione(fatto(scusarsi(_)),'il soggetto vuole scusarsi con il suo interlocutore.').
spiegazione(fatto(non_interessato(_)),'il soggetto non è interessato a continuare la conversazione.').
spiegazione(fatto(interesse_discorso(_,_)),'il soggetto è particolarmente interessato al dialogo.').
spiegazione(fatto(vuole_apparire_cortese(_)),'il soggetto vuole apparire cortese nei confronti del suo interlocutore.').
spiegazione(fatto(finge_gioia(_)),'il soggetto cerca di manifestare finta gioia.').
spiegazione(fatto(sincero(_)),'il soggetto risulta essere sincero.').
spiegazione(fatto(familiare_dist(_,_)),'tra i soggetti esiste una certa confidenza. _ Lo si capisce dalla poca distanza che li separa.').
spiegazione(fatto(amichevole_dist(_,_)),'i soggetti sono in un rapporto amichevole. _ Lo si può capire dalla distanza che li separa.').
spiegazione(fatto(sconosciuti_dist(_,_)),'i soggetti risultano avere un rapporto poco confidenziale. _ Lo si può capire dalla distanza che li separa.').
spiegazione(fatto(amichevole_eta(_,_)),'i soggetti sono a loro agio avendo età simili.').
spiegazione(fatto(familiare_abbigliamento(_,_)),'i soggetti sono in una situazione rilassata. _ Lo si può capire dall abbigliamento casual dei due.').
spiegazione(fatto(amichevole_abbigliamento(_,_)),'i soggetti potrebbero avere gli stessi interessi.').
spiegazione(fatto(sconosciuti_abbigliamento(_,_)),'i soggetti sembrano avere diversi interessi al momento della conversazione. _ Sono vestiti in maniera diversa.').
spiegazione(fatto(familiare(_,_)),'tra i soggetti esiste un rapporto di confidenza.').
spiegazione(fatto(amichevole(_,_)),'tra i soggetti esiste un rapporto amichevole.').
spiegazione(fatto(sconosciuti(_,_)),'tra i soggetti non esiste un rapporto di confidenza.').
spiegazione(fatto(enfasi_positiva(_)),'il soggetto è in uno stato di esaltazione.').
spiegazione(fatto(enfasi_negativa(_)),'il soggetto è in uno stato di abbattimento.').
spiegazione(fatto(positività(_)),'il soggetto è molto positivo.').
spiegazione(fatto(disagio(_)),'il soggetto non si trova a proprio agio.').
spiegazione(fatto(negatività(_)),'il soggetto è in uno stato di negatività.').
Con questi pochi concetti si può attivare il meccanismo di backward per controllare se
un fatto sia vero o falso mantenendo inalterate i concetti prima definiti. La maggior
parte dei predicati precedentemente definiti sono potenzialmente riutilizzabili.
4.3) Interfaccia grafica java
Per rendere il sistema facile da usare dal punto di vista dell’osservatore che dovrà introdurre in
memoria molte caratteristiche raccolte guardando una conversazione, si è deciso di sviluppare
un’ interfaccia grafica in linguaggio Java che racchiudesse tutte le funzionalità del sistema. Per
fare ciò è stato usato l’ ambiente di sviluppo NetBeans [11] e in particolare il package
javax.swing utile per l’appunto alla creazione e al settaggio delle componenti grafiche (Frame,
Panel, Button, TextArea, ecc.).
Attraverso questo si è creata l’ interfaccia grafica voluta con una buona interazione con l’utente
cosi da permettere sia la rapida e continuativa introduzione di osservazioni nel sistema sia la
possibilità di osservare in maniera diretta i dati dedotti volta dopo volta, senza dover aspettare la
fine delle osservazioni per effettuare una query di avvio all’inferenza. Per collegare l’interfaccia
grafica al sistema prolog si è usata la libreria “jpl.jar” [12], libreria che consente di:
• alle applicazioni Prolog di sfruttare tutte le classi Java, le sue istanze e i suoi metodi;
• consentire alle applicazioni Java di manipolare tutte le libreri standard Prolog, i vari
predicati ed eseguire query sulla base di conoscenza.
Fig. 6 -Inclusione della libreria jpl.jar nel progetto Java SEDUCE
Dando un’ occhiata al codice prodotto si può notare che nel metodo main (metodo principale
che viene eseguito all’ avvio di un programma java) della classe Dialogo (classe principale del
progetto SEDUCE) vengono eseguite subito delle operazioni di “consult” che servono a caricare
in memoria sia il file “motore_forward.pl” che contiene il motore inferenziale del sistema sia il
file “kb.pl” che ha al suo interno la serie di regole di deduzione descritte nel capitolo di
concettualizzaione (paragrafo 3.3).
Fig.7 - Main della classe Dialogo.java
Ad ogni inserimento di un’ osservazione il sistema invece crea una Query (oggetto java che
serve per eseguire query nell’interprete prolog) che permettera l’esecuzione del predicato
“asseriscifact(..)” nell’interprete prolog. Successivamente dopo ogni inserimento di un
osservazione si va a richiamare la Query “interpreta(X)” cosi da poter avviare l’inferenza ed
avere i risultati man mano che si procede con l’inserimento. Da questa funzione attraverso il
metodo “nextElement().get(X)” recuperiamo tutti le risposte che il prolog andrà a fornire alla
query “interpreta(X)”.
Fig. 8 - Query di interazione tra Java e Prolog
L’interfaccia grafica è stata strutturata in maniera tale da avere quattro sezioni separate che
servono ad avere una maggiore manegevolezza nell’uso dell’applicativo.
Fig. 9 - Schermata generale interfaccia grafica
La prima sezione riguarda l’inserimento delle informazioni generali sui soggetti come nome,
sesso e anche la possibilità di inserire una foto dello stesso. In questa sezione si è ritenuto
opportuno anche inserire l’osservazione di due fatti che non sono associati ad un solo soggetto
ma ad entrambi e che quindi valeva la pena mettere in questa sezione generale; la distanza tra i
due soggetti e il luogo in cui sono gli stessi si asseriscono attraverso questa sezione
(contraddistinta da color turchese).
Fig.10 - Sezione riguardante informazioni sui soggetti
La seconda e terza sezione(colore giallo) sono simmetricamente uguali, ma con funzioni
indipendenti tra loro. Esse si riferiscono rispettivamente ai due soggetti in questione e permetto
sia l’inserimento dei fatti osservati che la visualizzazione di uno storico dei fatti asseriti. Essa è
composta da una serie di menu a tendina che si innestano tra loro fino a che non si selezione un
predicato e lo si asserisce.
Fig.11 - Sezione riguardante l’inserimento di ciò che si osserva
La quarta sezione è stata creata per la gestione degli output del sistema esperto. Infatti è formata
da due caselle di testo: nell’ area di testo superiore sono contenuti i fatti che il sistema ha
dedotto attravero le regole di inferenza; nell’area di testo inferiore si può avere una spiegazione
del perchè ha asserito quel fatto e di come il sistema ci è arrivato (regole utilizzate). Questa
spiegazione è facilmente ottenibile selezionando un fatto dalla lista delle deduzioni ottenute e
usando l’apposito pulsante “Chiedi spiegazioni”.
Fig. 12 - Sezione riguardante l’output del sistema esperto
5) Utilizzo e sperimentazione
Per eseguire l’applicativo in questione basta recarsi nella cartella dove è contenuto il file
SEDUCE.jar e da linea di comando avviare l’applicativo java attraverso la linea di comando
“java –jar SEDUCE.jar”. Perchè il tutto funzioni perfettamente bisogna avere i seguenti requisiti
installati sul sistema:
- JVM (Java Virtual Machine) in funzione - contenuta anche nella versione Java per
desktop[13];
- Interprete SWI-Prolog installato (il sistema è stato testato con la versione 6.2.2);
- i file “motore_forward.pl” e “kb.pl” devono essere nella stessa directory del file
SEDUCE.jar;
- avere all’interno della stessa directory una sotto-directory dal nome lib con all’interno la
libreria “jpl.jar”(libreria che si trova nella cartella ‘lib’ del swi-prolog);
- su windows aggiungere alla variabile d’ambiente di sistema ‘path’ la seguente stringa
“C:\Program Files\pl\lib\jpl.jar;”.
Una volta che ci siamo assicurati di avere questi seguenti requisiti possiamo lanciare il comando
attraverso linea di comando e la nostra applicazione si avvierà e in maniera nascosta anche il
nostro interprete prolog si avvierà.
Fig. 13 - Avvio da prompt dei comandi di Windows
Una volta avviato il sistema si avrà la seguente schermata che permetterà solamente di inserire
le informazioni sui soggetti; una volta fatto ciò compariranno le schermate che permetto
l’asserzione dei fatti osservati.
Fig. 14 - Screenshot inserimento dati utenti
Si noti che una volta selezionato il sesso, inserito il nome e cliccato sul pulsante “inserisci
informazioni” di ciascun soggetto non sarà più possibile modificare le stesse. Questo perchè
saranno asseriti dei fatti nella base di conoscenza in cui verranno utilizzati queste informazioni
come parametro di altri predicati e quindi creerebbe conflitti nel match dei fatti con le regole.
L’unica opzione che si può cambiare anche nell’esecuzione in corso del programma è la foto del
soggetto. Basterà cliccarci su per far apparire la schermata di scelta foto all’interno del proprio
pc.
Una volta inserite le informazioni base, compariranno tutte le opzioni per la selezione e
l’inserimento dei fatti osservati.
Fig. 15 - Screenshot inserimento osservazioni personali
Ci sarà un menu a tendina che permetterà di scegliere la tipologia di osservazione da inserire, e
poi un secondo menu a tendina che invece farà in modo di poter inserire un predicato all’interno
della base di conoscenza. Nel frattempo si formerà lo storico in basso, che terrà traccia dei fatti
inseriti fino ad un determinato momento.
In qualunque momento sarà possibile inserire anche le informazioni in comune tra i due
soggetti; la distanza tra i due e il luogo in cui si svolge la conversazione. Una volta asseriti
scompariranno i menu che permetto di effettuare tale scelta.
Fig. 16 - Screenshot inserimento informazioni in comune
In contemporanea con l’inserimento di dati sulla destra si avrà l’elenco delle deduzioni ottenute
che andranno pian piano a formarsi con l’asserzione da parte dell’osservatore di più
caratteristiche possibili. Selezionandone una e cliccando sul pulsante “Chiedi spiegazioni” è
possibile ottenere le spiegazioni in merito al fatto dedotto.
Fig. 17 - Screenshot gestione dell’output
Per testare il ragionamento del sistema piuttosto che effettuare un paio di esempi descritti che
permettevano di vedere le sue funzionalità, si è preferito scegliere la scena di un film cosi da
poter analizzare i movimenti e i gesti degli attori coinvolti sapendo come sarebbe finita la scena
del film.
5.1) Esperimento
Nell’ esperimento che si va a proporre si analizza un piccolo pezzettino di una scena di un
famoso film italiano “Benvenuti al sud”[14]. La scena in questione riguarda il direttore delle
poste italiane che cerca di avere un trasferimento fingendosi disabile e l’ispettore che effettua il
controllo di questa domanda di trasferimento.
Nella conversazione si possono notare alcuni particolari gesti che fanno capire che il direttore
delle poste si trova in disagio e sta mentendo. In questo screenshot infine si è riusciti a catturare
il frame del video che mostra come il direttore delle poste si stropicci il naso.
Fig. 18 – Benvenuti al sud – Direttore si stropiccia il naso (=> nascondere qualcosa)
Inserendo questo ed altri segnali all’interno del sistema esperto SEDUCE si può notare che il
sistema segnala che il personaggio sta nascondendo qualcosa. Avrà per caso scoperto la falsa
disabilità del nostro caro direttore? Andiamo a vedere il comportamento del sistema avendo
inserito la maggior parte dei fattori che sono emersi da questo piccolo spezzone di film.
Fig. 19 – SEDUCE per la scena del film “Benvenuti al sud”
Come si può notare semplicemente inserendo le informazioni di circostanza come la distanza tra
i soggetti e il luogo, il sistema è riuscito a dedurre che si tratta di una conversazione molto
formale. Andando avanti fino alla fine della scena si può vedere che il sistema sembra fornire
molte informazioni. Ecco lo screenshot del sistema alla fine della scena.
Fig. 20 – SEDUCE riesce a capire che qualcosa non va
Infatti si può notare come il sistema esperto riesca a dedurre tutte cose vere, tra cui anche
“fatto(nascondere_qualcosa(direttore_posta))”. Selezionandolo e facendo uso della funzione
“chiedi spiegazioni” esce scritto che ‘il soggetto ha qualcosa da nascondere’ (non è stato fatto
lo screenshot con questa funzionalità solamente per una questione di grandezza immagine).
Alla fine Bisio sembrerebbe riuscire a farla franca e infatti l’ispettore mostra sincerità quando
afferma che lo reputa una persona onesta e sincera e nel frattempo il battito prolungato di ciglia
da parte di Bisio fa dedurre al sistema esperto che non vuole ascoltare (come un rigetto verso
una palese bugia).
6)Considerazioni e sviluppi futuri
Il sistema sembra rispondere bene ai canoni per cui è stato proggettato. Riesce ad avere molte
deduzioni vere e come visto nell’esempio precedente a capire cose implicitamente nascoste
nella conversazione tra due individui. Sono sicuramente emerse due difficoltà nell’uso di
SEDUCE :
- la prima riguarda la limitata velocità con cui un osservatore riesce a cogliere i dettagli di
una conversazione e ad immetterli nel sistema;
- la seconda riguarda la capacità dell’osservatore di cogliere i dettagli della conversazione
che sta osservando.
Infatti è difficile osservare tutto e non perdersi piccoli dettagli come il battito di ciglia
prolungato, che si rivelano caratteristiche fondamentali affinchè il S.E. riesca a dedurre fatti
intrinsechi.
Come sviluppi futuri si potrebbe pensare ad un ampliamento dei fatti e delle regole considerate
cosi da permettere una più dettagliata analisi di una conversazione. Inoltre si potrebbe creare
una versione in cui si facciano domande all’osservatore invece di dare libera scelta
all’osservatore di asserire ciò che si vede. Le versioni potrebbero essere integrate come no.
Riferimenti
1) Isabella Poggi(2006) – Carocci
“Le parole del corpo. Introduzione alla comunicazione multimodale”
2) Ekman P., Friesen W.V. , Sonia Ancoli(1980) - UniversitY of California
“ Facial sign of emotional eXperience”
3) Paccagnella, “ Sociologia della comunicazione”, Il Mulino , Bologna, 2004
4) Isabella Poggi° ed Emanuela Magno Caldognetto* - °Dip. di Scienze dell’Educazione, Università Roma Tre - *ISTC Sezione di Padova ‘Fonetica e Dialettologia’
“ Il parlato emotivo. Aspetti cognitivi, linguistici e fonetici”
5) VinaY Bettadapura - College of Computing, Georgia Institute of TechnologY
6) “Face EXpression Recognition and AnalYsis: The State of the Art”
7) Maria Pia Capolongo - °Facoltà di Scienze Matematiche Fisiche e Naturali, Università degli Studi di Bari – Corso di Laurea Magistrale in Informatica
8) Tesi di Laurea: “Un sistema esperto per il riconoscimento della comunicazione non verbale: i gesti”.
9) Allan & Barbara Pease – Bur Rizzoli – “ Perchè mentiamo con gli occhi e ci vergogniamo con i piedi?”