Il progetto ATLAS
traduzione automatica da Italiano a Lingua Italiana dei Segni (LIS)
Alessandro Mazzei
Dip. Informatica Università di Torino
[email protected]
21-12-2010
Machine Translation
The spirit is willing, but the flesh is weak
Водка сильна,
но мясо гнило
Semantic Structure
Syntactic Structure
Words
Semantic Structure
Syntactic Structure
Words
Triangolo di Vauquois
Interlingua
Analisi Generazione
Semantic Structure
Syntactic Structure
Words
Semantic Structure
Syntactic Structure
Words
Source Sentence Target Sentence
Triangolo di Vauquois
Interlingua
Analisi Generazione
Direct
Transfer
Semantic Structure
Syntactic Structure
Words
Semantic Structure
Syntactic Structure
Words
The KANT Project
Triangolo di Vauquois
Interlingua
Analisi Generazione
Direct
Transfer
Il progetto ATLAS
Traduzione automatica da Italiano a Lingua Italiana dei Segni
La Lingua Italiana dei segni
La LIS è “segnata” da migliaia di persone
È una lingua a tutti gli effetti: lessico, morfologia, sintassi
Ha anche elementi di iconicità
Spesso è l'unica lingua conosciuta dai sordi
Paesi diversi, lingue dei segni diverse
Linguistica della LIS
Diversi articolatori: parallelismo
Organizzazione spaziale della frase
No preposizioni, genere, articoli
Plurale
SOV
Dialetti regionali
Ancora pochi studi linguistici
Non ha una forma scritta (!!!)
Meteo19-3
Semantic Structure
Syntactic Structure
Words
Semantic Structure
Syntactic Structure
Words
Triangolo di Vauquois
Interlingua
Analysis Generation
Direct
Outline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
Outline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
Rule-Based Translation Architecture
OpenCCG
TUrin Linguistic Enviroment
ITALIANO
Logica dei Predicati
Analisi Generazione
GLOSSE+Feats
(AEW-LIS)
Architecture details
Outline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
Turin University Parser
A wide-coverage rule-based dependency parser
Rule-Based: chunking + coord + verb-sub-cat
Morpho-syntatctic dependency annotation
Dependency-chunking
...
(ART def BEFORE
(NOUN (TYPE COMMON) ) DET+DEF-ARG )
...
... le nuvole ...
nuvole le
det-def-arg
VerbSubCat taxonomy
VERBS
TRANS INTRANS
... aumenteranno
trans-dir-disc-indobj ... intrans-indobj-ssubj
...
...
... ...
...
...
Turin University Parser
Domani aumenteranno
2 1
Domani le nuvole aumenteranno
nuvole le
det-noun
nuvole le
aumenteranno
verb-sbj
det-def-arg
domani
advb-rmod-time
Anatomy of the TUP
I. Grammar: CFG, TAG, Dependency grammar … II. Algorithm:
i. Search strategy: top-down, bottom-up, L2R, … ii. Memory organization: depth-first, back-tracking,
dynamic programming, all-paths, ...
III.Oracle: Probabilistic, heuristic, ...
Domani le nuvole sono in aumento al nord
Outline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
DepTree ⇝ Logica dei Predicati
First Order Formulas
Predicate-Argument relations
Semantic Roles
TUSI Ontologies
Ontologies: world + domain
Ontologies: language
Computing Meaning by Recursion
Ontological Connection Paths
Ontological Path ⇝ Logica dei Predicati
Per domani quindi nubi in aumento al nord ...
[meteo 19-F4]
event(E=cloud-increase') ⋀ AGENT(E,cloud') ⋀
LOC(E,north') ⋀ TIME(E,tomorrow')
⇝
Outline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
Generazione
Logica dei Predicati
GLOSSE+Feats (AEW-LIS)
OpenCCG
LIS-CCG
OpenCCG
Combinatory Categorial Grammar
Bidirectional: speed-up in grammar development
Syntax / Semantics: Features Unification with Hybrid Logic
Chart – Agenda
Statistical pruning: symbolic-statistical chart
LIS-CCG
LEX SynCAT SemCAT
nuvola
UNP
[position=U X]X=cloud'
domani
NS
[position=N E]/ S
[position=N E]TIME(E,tomorrow')
nord
US
[position=U E]/ S
[position=U E]LOC(E,north')
nuvola-
aumentare
US
[E]\ NP
[position=U Y]event(E=cloud-increase') ⋀
AGENT(E,Y)
CCG derivation
S :
event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')⋀TIME(E,tomorrow')CCG derivation
domani
NS :
S
E/ S
E>
S :
TIME(E,tomorrow')
event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')⋀TIME(E,tomorrow')
event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')
CCG derivation
S
E/ S
E>
S : S :
S
E/ S
E>
S :
LOC(E,north') TIME(E,tomorrow')
event(E=cloud-increase')⋀AGENT(E,cloud') event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')⋀TIME(E,tomorrow')
event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')
domani
Nnord
UCCG derivation
S
E/ S
ENP
XS
E\ NP
Y>
<
S : S :
S
E/ S
E>
S :
event(E=cloud-increase')⋀AGENT(E,Y) LOC(E,north') X=cloud'
TIME(E,tomorrow')
domani
Nnord
Unuvola
Unuvola-aumentare
Uevent(E=cloud-increase')⋀AGENT(E,cloud') event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')⋀TIME(E,tomorrow')
event(E=cloud-increase')⋀AGENT(E,cloud')⋀LOC(E,north')
Proprietà Glosse+Feats
domani
Nnord
Unuvola
Unuvola-aumentare
UGlosse+Feats: posizione
domani
Nnord
Unuvola
Unuvola-aumentare
UNeutral = N
Up = U Posizione nello Spazio
Glosse+Feats: ordine segni
domani
Nnord
Unuvola
Unuvola-aumentare
UL'ordine dei segni nella frase è S(O)V
Glosse+Feats: verbo-argomenti
domani
Nnord
Unuvola
Unuvola-aumentare
USoggetto e Verbo sono segnati nella stessa posizione
Glosse+Feats: pragmatica
Le nuvole vengono segnate al “nord”: Up
domani
Nnord
Unuvola
Unuvola-aumentare
USintesi in LIS
domani
Nnord
Unuvola
Unuvola-aumentare
UOutline
Rule-Based Translation Architecture in ATLAS
Analisi dell'Italiano
– Turin University Parser (TUP)
– Turin University Semantic Interprete (TUSI)
Generazione in LIS
Conclusioni
Conclusioni
Traduzione interlingua = analisi profonde
Basi di conoscenza
– Grammatiche: Italiano (Dipendenze), LIS (CCG) – Ontologie: mondo e lingua, meteo
– Semantic Interpretation
Work in Progress:
– Topic/Focus
Considerazioni “politiche” sulla ricerca
Quanta ricerca di base c'è in ATLAS?
L'applicazione è una conseguenza, non un obiettivo
Il "sapere del fare" non esiste, esiste la conoscenza
Dovere dell'Università è farlo capire a tutti
Grazie per l'attenzione :)
ATLAS project is co-funded by Regione Piemonte
within the “Converging Technologies - CIPE
2007” framework (Research Sector: Cognitive
Science and ICT).
Evoluzione della MT
1930: Troyanskii's “translating machines”
1947: Guerra fredda
1956: Dartmouth Seminar
1966: ALPAC report
1990: La rinascita
2000: On-line MT
Logica XML ⇢ Generazione
domani_N nord_U nuvola_U nuvola-aumentare_U ...
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<lf>
<satop nom="c1:meteo-status-situation">
<prop name="cloud-increase"/>
<diamond mode="AGENT">
<nom name="c2:clouds"/>
<prop name="cloud"/>
</diamond>
<diamond mode="LOCATION">
<nom name="n1:it-northern-region"/>
<prop name="north"/>
</diamond>
<diamond mode="TIME">
<nom name="t1:deictic-day-description"/>
<prop name="tomorrow"/>
</diamond>
</satop>
</lf>
</xml>
OpenCCG LIS-CCG
Logica dei Predicati ⇢ Logica XML
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<lf>
<satop nom="c1:meteo-status-situation">
<prop name="cloud-increase"/>
<diamond mode="AGENT">
<nom name="c2:clouds"/>
<prop name="cloud"/>
</diamond>
<diamond mode="LOCATION">
<nom name="n1:it-northern-region"/>
<prop name="north"/>
</diamond>
<diamond mode="TIME">
<nom name="t1:deictic-day-description"/>
<prop name="tomorrow"/>
</diamond>
</satop>
</lf>
∃ (ev1 t1 l1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2) ⋀ id(t2,tomorrow) ⋀ location(ev1, l1) ⋀
id(l1, nord) ⋀ agent(ev1, x1) ⋀ cloud(x1))
⇢
Time flies like an arrow. Fruit flies like a banana.
Every time I fire a linguist, the performance of our speech
recognition system goes up. (Fred Jelinek)
Ontological Path ⇝ Logica dei Predicati
Per domani quindi nubi in aumento al nord ...
[meteo 19-F4]
∃ (ev1 t1 l1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2) ⋀ id(t2,tomorrow) ⋀ location(ev1, l1) ⋀ id(l1, nord) ⋀ agent(ev1, x1) ⋀ cloud(x1))
⇝
CCG derivation
domani
Nnord
Unuvola
Unuvola-aumentare
US / S NP S \ NP
>
<
S S
S / S
>
S
LIS-CCG
DOMANI_N NUVOLA_U NUVOLA-AUMENTARE_U
S/S NP S\NP
>
<
S S
∃ (ev1 t1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2)
⋀ id(t2,tomorrow) ⋀ agent(ev1, x1) ⋀ cloud(x1))
LIS-CCG
DOMANI_N NUVOLA_U NUVOLA-AUMENTARE_U
S/S NP S\NP
>
<
S S
∃ (ev1 t1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2)
⋀ id(t2,tomorrow) ⋀ agent(ev1, x1) ⋀ cloud(x1))
LIS-CCG
DOMANI_N NUVOLA_U NUVOLA-AUMENTARE_U
S/S NP S\NP
>
<
S S
∃ (ev1 t1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2)
⋀ id(t2,tomorrow) ⋀ agent(ev1, x1) ⋀ cloud(x1))
LIS-CCG
DOMANI_N NUVOLA_U NUVOLA-AUMENTARE_U
S/S NP S\NP
>
<
S S
∃ (ev1 t1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2)
⋀ id(t2,tomorrow) ⋀ agent(ev1, x1) ⋀ cloud(x1))
LIS-CCG
DOMANI_N NUVOLA_U NUVOLA-AUMENTARE_U
S/S NP S\NP
>
<
S S
∃ (ev1 t1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2)
⋀ id(t2,tomorrow) ⋀ agent(ev1, x1) ⋀ cloud(x1))
Italiano ⇝ Logica dei Predicati
Per domani quindi nubi in aumento al nord, con
precipitazioni a carattere sparso anche
temporalesche, tendenza poi a schiarite dalla serata.
[meteo 19-F4]
I. ∃ (ev1 t1 l1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2) ⋀ id(t2,tomorrow) ⋀ location(ev1, l1) ⋀ id(l1, nord) ⋀ agent(ev1, x1) ⋀ cloud(x1)) II. ∃ (ev2) (rain(ev2) ⋀
has-event-width(ev2,local-phenomenon))
⋀ ∃ (ev3) (storm(ev3))
III. ∃ (ev4,x4, t4, d4) (cloud-decrease(ev4) ⋀ agent(ev4, x4) ⋀ cloud(x4) ⋀ time(ev4, t4) ⋀ time-ref(t4, e4) ⋀ afternoon(d4))
⇝
Italiano ⇝ Logica dei Predicati
Per domani quindi nubi in aumento al nord, con
precipitazioni a carattere sparso anche
temporalesche, tendenza poi a schiarite dalla serata.
[meteo 19-F4]
I. ∃ (ev1 t1 l1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2) ⋀ id(t2,tomorrow) ⋀ location(ev1, l1) ⋀ id(l1, nord) ⋀ agent(ev1, x1) ⋀ cloud(x1)) II. ∃ (ev2) (rain(ev2) ⋀
has-event-width(ev2,local-phenomenon))
⋀ ∃ (ev3) (storm(ev3))
III. ∃ (ev4,x4, t4, d4) (cloud-decrease(ev4) ⋀ agent(ev4, x4) ⋀ cloud(x4) ⋀ time(ev4, t4) ⋀ time-ref(t , e ) ⋀ afternoon(d ))
⇝
LIS-CCG
LEX SynCAT SemCAT
nuvola
UNP
[position=U X]X=cloud'
domani
NS
[position=N E]/ S
[position=N E]E <TIME> tomorrow'
nord
US
[position=U E]/ S
[position=U E]E <LOC> north'
nuvola-
aumentare
US
[E]\ NP
[position=U Y]E=cloud-increase'<AGENT>Y
CCG derivation
S
E=cloud-increase'(<AGENT>cloud' <LOC>north' <TIME>tomorrow')CCG derivation
domani
NS
S / S
>
S
E<TIME>tomorrow'
E=cloud-increase'(<AGENT>cloud' <LOC>north' <TIME>tomorrow')
E=cloud-increase'(<AGENT>cloud' <LOC>north')
CCG derivation
domani
Nnord
US / S
>
S S
S / S
>
S
E<LOC>north' E<TIME>tomorrow'
E=cloud-increase'(<AGENT>cloud') E=cloud-increase'(<AGENT>cloud' <LOC>north') E=cloud-increase'(<AGENT>cloud' <LOC>north' <TIME>tomorrow')
CCG derivation
domani
Nnord
Unuvola
Unuvola-aumentare
US / S NP S \ NP
>
<
S S
S / S
>
S
E=cloud-increase'<AGENT> Y E<LOC>north' cloud'
E<TIME>tomorrow'
E=cloud-increase'(<AGENT>cloud') E=cloud-increase'(<AGENT>cloud' <LOC>north') E=cloud-increase'(<AGENT>cloud' <LOC>north' <TIME>tomorrow')
Ontological Path ⇝ Logica dei Predicati
Per domani quindi nubi in aumento al nord ...
[meteo 19-F4]
∃ (ev1 t1 l1 x1) (cloud-increase(ev1) ⋀ time(ev1, t1) ⋀ deictic-descr(t1, t2) ⋀ id(t2,tomorrow') ⋀ location(ev1, l1) ⋀ id(l
⇝
1, nord') ⋀ agent(ev1, x1) ⋀ cloud(x1))Ecloud-increase<AGENT> cloud' ⋀ Ecloud-increase<LOC> north' ⋀ Ecloud-increase<TIME> tomorrow'
1. Dependency-chunking
...
(ADJ-QUALIF BEFORE
(ADV (TYPE MANNER) ) ADVMOD-MANNER )
...
... davvero veloce ...
davvero veloce
ADVMOD-MANNER
nuvole le
aumenteranno
sbj-verb
det-noun
domani
mod-adv
1. Dependency-chunking
...
(ART def BEFORE
(NOUN (TYPE COMMON) ) DET+DEF-ARG )
...
... le nuvole ...
nuvole le
aumenteranno
sbj-verb
det-noun
domani
mod-adv