1 / 19

Elaborazione del linguaggio naturale Analisi sintattica: parsing CHAOS

Elaborazione del linguaggio naturale Analisi sintattica: parsing CHAOS. Maria Teresa PAZIENZA a.a. 2007-08. Sommario. Strumenti per la Sintassi Introduzione Context-Free Grammar ( CFG ) Definizione CFG per la sintassi Limiti e problemi Parsing Parsing a costituenti Parsing Top-Down

Download Presentation

Elaborazione del linguaggio naturale Analisi sintattica: parsing CHAOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elaborazione del linguaggio naturale Analisi sintattica: parsingCHAOS Maria Teresa PAZIENZA a.a. 2007-08

  2. Sommario • Strumenti per la Sintassi • Introduzione • Context-Free Grammar (CFG) • Definizione • CFG per la sintassi • Limiti e problemi • Parsing • Parsing a costituenti • Parsing Top-Down • Parsing Bottom-Up • Parsing misto (left-corner) • Chart parsing • Programmazione dinamica • Algoritmo di Earley • Parsing a dipendenze • Cenni • Conversione • Parser Evaluation • Chaos

  3. CHAOS:A robust syntactic parser for Italian and for English CHAOS is a modular and lexicalized syntactic and semantic parser for Italian and for English. The system implements a modular and lexicalised approach to the syntactic parsing problem. It is based on the notion of eXtended Dependency Graph (XDG) that is considered as a useful representation mechanism in a shallow parsing approach, thus supporting the representation of alternative syntactic interpretation. The system offers a collection of modules for designing parsing architectures. The overall system is seen as a JAVA library offering a standard representation for modules implemented in different programming languages.

  4. CHAOS:eXtended Dependency Graph example

  5. CHAOS:eXtended Dependency Graph example XDG is a mixture of dependencies and constituents. It is a dependency graph whose nodes C are constituents and whose edges ICD are the grammatical dependencies among constituents. Each node is a complete tree whose nodes are feature structures. The XDG formalism efficiently models the syntactic ambiguity.

  6. CHAOS:A robust syntactic parser for Italian and for English The pool of modules consists of: • a tokenizer, TOK, matching words from character streams • a yellow page look-up module YP, that matches named entities existing in catalogues • a morphologic analyser MOA that attaches (possibly ambiguous) syntactic categories and morphological interpretations to each word • a named entities matcher NER, that recognizes complex named entities according to special purpose grammars • a rule-based part-of-speech tagger POS • a POS disambiguation module PMF that resolves potential conflicts among the results of the POS tagger and the morphologic analyser • a chunker CHK • a verb argument detector VSA • a shallow syntactic analyser SSA

  7. Chaos: Parsing sintattico IT L’analisi viene rappresentata in una struttura unica: XDG(grafo costituenti-dipendenze) costituenti : chunks Icd : inter-chunks dependecies Dipend. Verbali Dipend. non verbali plausibilità Testa verbale della frase Costituente complesso

  8. Chaos: Parsing sintattico IT • Approccio ibrido: COSTITUENTI + DIPENDENZE • Vengono identificati i chunks (particolare tipo di costituenti) • Vengono identificate le dipendenze • Vantaggi: • Il raggruppamento in chunks facilita l’analisi a dipendenze • L’analisi a dipendenze consente di gestire long distance dependecies ed altri fenomeni • L’utilizzo della plausibilità(certezza nell’identificare la dipendenza) permette di gestire l’ambiguità • Tre moduli fondamentali: • Chunker : identifica i chunks • Verb Shallow Analyzer (VSA) : identifica le dipendenze verbali principali • Syntactic Shallow Analyzer (SSA) : identifica altre dipendenze

  9. Chaos: Parsing sintattico IT CHAOS Chunker [/data/KB/it/Chunker] • Chunk • I chunk sono un particolare tipo di costituenti • Nucleo non ricorsivo di sintagmi • Non essendoci ricorsività, i chunk possono essere riconosciuti da FSA • Informazione pregressa necessaria: • Morfologia • POS tagging • Come funziona il Chaos Chunker: • Basato su prototipi di chunk in Prolog • Analizza le parole da sinistra a destra, raggruppandole nel chunk più lungo possibile riconosciuto applicando le regole • Individua: • Governatore:parola che veicola il significato del chunk • Testa sintattica (head): parola che lega il chunk al resto della frase

  10. Chaos: Parsing sintattico IT CHAOS Chunker [/data/KB/it/Chunker] • Come identificare un chunk ? • Nella pratica, il chunk è il più grande costituente possibile che lascia la frase aperta a tutte le ammissibili interpretazioni sintattiche. • ESEMPI: • “[Il bel gatto] mangia il topo” “Il bel gatto” è chunk in quanto la sequenza DET-ADJ-NC è l’unica aggregazione possibile, ovvero l’ADJ è legato sempre come specificazione dell’NC in tutte le frasi italiane • “[Il gatto][del vicino] magia il topo” “Il gatto del vicino” è un costituente, ma non è un chunk, in quanto la sequenza DET-NC-PREP-NC non è l’unica interpretazione sintattica possibile. Ovvero esistono sequenze di questo tipo in cui PREP-NC non sono specificazioni di NC, ma di un altro elemento della frase, ad esempio: “Il gatto nel prato mangia”, “nel prato” specifica “mangia” • “[Il gatto][interessato] al topo” “Il gatto interessato” non è un chunk, in quanto la sequenza DET-NC-ADJ non garantisce tutte le interpretazioni sintattiche possibili. Ovvero, il PREP-NC seguente in alcuni casi specifica DET-NC (es.“Il gatto interessato al topo”), in altri ADJ (“Il gatto interessato del vicino”)

  11. Chaos: Parsing sintattico IT CHAOS Chunker [/data/KB/it/Chunker] • Prototipi Prolog per il riconoscimento di semplici chunk aggettivali: constituent_class([_cst1], 'Agg', _mor, 1, 1):- adjective(_cst1), common_morfology(_cst1, _mor). constituent_class([_cst1, _cst2], 'Agg', _mor, 1, 2):- adverb(_cst1), adjective(_cst2), common_morfology(_cst1, _cst2, _mor). constituent_class([_cst1, _cst2, _cst3], 'Agg', _mor, 1, 1):- adjective(_cst1), coordinative_conjunction(_cst2), \+(comma(_cst2)), adjective(_cst3), common_morfology(_cst1, _cst3, _mor). ADJ ADV ADJ ADJ COORD ADJ

  12. Chaos: Parsing sintattico IT CHAOS Chunker [/data/KB/it/Chunker] COMPLEX CONSTITUENT (chunk) head SIMPLE CONSTITUENT (sotto-costituenti del chunk) governor

  13. Chaos: Parsing sintattico IT CHAOS ChunkTypes in IT Agg Chunk aggettivali Avv Chunk avverbiale CongCo Chunk coordinativo CongSub Chunk subordinativo Nom Chunk nominale Prep Chunk preposizionale VerFin Chunk verbale finito VerGer Chunk verbale gerundivo VerInf Chunk verbale infinito VerPart Chunk verbale participio VerPred Chunk verbale predicativo aggettivale VerNom Chunk verbale nominale VerPrep Chunk verbale preposizionale ? Chunk sconosciuti

  14. Chaos: Parsing sintattico IT CHAOS VSA [/data/KB/it/SubcatLexicon] • Identifica le dipendeze (icd) verbali all’interno della struttura • Utilizza un lessico di patterns di sottocategorizzazione verbale (LIFUV.lex) • 1844 sottocategorizzazioni • Codificate manualmente ed apprese automaticamente da corpora • Una dipendenza ricavata dal lessico ha plausibilità=1 pattern(accrescere,[[(oggetto,Post)]]). pattern(accucciare,[[]]). pattern(accumulare,[[(su,Post)],[(oggetto,Post)],[(oggetto,Post)]]). pattern(acquisire,[[(oggetto,Post),(a,Post)],[(oggetto,Post)]]). pattern(acquistare,[[(in,Post)],[(oggetto,Post),(da,Post)]]). pattern(adagiare,[[(su,Post)],[(oggetto,Post),(su,Post)]]). pattern(addolcire,[[(oggetto,Post)],[(oggetto,Post)]]).

  15. Chaos: Parsing sintattico IT CHAOS SSA [/data/KB/it/SSG] • Identifica le dipendeze (icd) che non sono state identificate dall’VSA: • Modificatori verbali:espressioni temporali / spaziali … • Modificatori nominali: sintagmi preposizionali / specificatori aggettivali … • Come funziona: • E’ un parser specifico basato su una grammatica discontinua • Consente di trovare dipendenze tra chunk non adiacenti (gap) anche long distance dependencies • Ambiguità: più dipendenze possono essere prodotte per uno stesso chunk • Viene utilizzata la pausibilità per modellare l’ambiguità POS tagging

  16. Chaos: Parsing sintattico IT CHAOS ICDs Types (VSA+SSA) Grammatical Subject V_Sog Grammatical Object V_Obj Indirect Object V_NP Verb Preposition Modifier V_PP Verb Adverb Modifier V_Adv gruppo Nominale Nominale NP_NP gruppo Nominale Preposizionale NP_PP gruppo Preposizionale Preposizionale PP_PP gruppo Nominale Aggettivo NP_Adj gruppo Nominale Participio NP_VPart gruppo Preposizionale Aggettivo PP_Adj gruppo Preposizionale Participio PP_VPart gruppo Aggettivo Preposizionale Adj_PP gruppo Avverbio Preposizionale Adv_PP Congiunzione coordinativa tra costituenti x_Cong_x gruppo Costituente Congiunzione x_Cong gruppo Costituente Subordinata x_Sub gruppo Verbo Congiunzione Subordinativa V_CSub

  17. Chaos: Valutazione • Utilizzare : • Le misure per i parser a costituenti per valutare i chunk • Le misure per i parser a dipendenze per valutare gli ICD • Non considerare le plausibilità nella valutazione • Esempio: GOLD: Chunks: Prec = 5/5 = 1 Rec = 5/5 = 1 Lab Prec = 4/5= 0.8 Lab Rec = 4/5= 0.8 CHAOS: ICD: Prec = 1/5 = 0.2 Rec = 1/3 =0.3

  18. Progetto : Note • Costrutti frasali complessi in Chaos: • Congiunzione

  19. Progetto : Note • Costrutti frasali complessi in Chaos: • Subordinazione

More Related