Parte 2 - Sintaxe - T1 e T2 Formalismos gramaticais Indice • Formalismos gramaticais alternativos às GLC • Gramáticas categoriais • Gramáticas de dependências • ... • TreeBanks • Gramáticas Probabilísticas Jurafsky • Capítulo 12, secção 12.7 (versão draft), páginas 31 - 34 GRAMÁTICAS CATEGORIAIS • As categorias gramaticais podem ser: • Argumentos • ex: nomes • Funções • ex: verbos e determinantes • Motivação: o determinante pode ser visto como uma função que se aplica a um nome à sua direita para produzir um SN. GRAMÁTICAS CATEGORIAIS • Componentes: • Léxico categorial: associa cada palavra a uma categoria sintáctica e semântica • Regras de combinação: permite combinar funções e argumentos • X/Y: função de Y para X, isto é, algo que se combina com um Y à direita e produz um X • X\Y: uma função de Y para X, isto é, algo que se combina com um Y à esquerda e produz um X GRAMÁTICAS CATEGORIAIS • Exemplos de associações • determinantes: SN/N, isto é, são funções que recebem um N à direita e produzem um SN • verbos transitivos: SV/SN • ou, mais elaborado, (S\SN)/SN • verbo bitransitivo (ex: dar): (VP/NP)/NP GRAMÁTICAS CATEGORIAIS • Exemplo: • Léxico categorial: • o, as: SN/N • João, maçãs: N • come: (S\SN)/SN • Análise de: o João come as maçãs • o João: SN/N . N --> SN • as maçãs: SN/N . N --> SN • come as maçãs: (S\SN)/SN . SN --> (S\SN) • o João come as maçãs: (SN . (S\SN)) --> S GRAMÁTICAS DE CATEGORIAS —EXEMPLO— João SN come (S\SN)/SN S\SN S maçãs SN Exercício • E para representar a “O João come sopa” com a gramática anterior? O que tinha de ser acrescentado/alterado? Actualmente • As gramáticas categoriais actuais incluem regras combinatórias mais complexas que são necessárias para lidar com coordenação e com outros fenómenos. GRAMÁTICAS DE DEPENDÊNCIA • Não usam o conceito de constituinte, sendo a sintaxe descrita em termos de: • Palavras • Relações binárias (sintácticas ou semânticas) entre palavras GRAMÁTICAS DE DEPENDÊNCIA • Exemplos de relações: • Sujeito (suj) • Objecto directo (obj) • Objecto indirecto (dat) • Advérbios temporais (tmp) • Atributos nominais (attr) • ... GRAMÁTICAS DE DEPENDÊNCIA • eu perdi o meu telefone • perdi -> eu (seta etiquetada por subj) • perdi -> telefone (seta etiquetada por obj) • telefone -> meu (seta etiquetada por attr) • root -> perdi (seta etiquetada por main) GRAMÁTICAS DE DEPENDÊNCIA • Como não consideram a ordem em que surgem as palavras, lidam bem com alterações de ordem entre as palavras como acontece em algumas línguas como o checo OUTROS FORMALISMOS • Gramáticas que conjugam constituintes nucleares com dependências • (vi)SV(o homem)SN(no monte)SP1(com os binóculos)SP2 • SP1 -> SN ou SP1 -> SV • etc. • ... e tantos, tantos, tantos outros formalismos (GPSG, HPSG, FCG, CG, ...) Indice • Formalismos gramaticais alternativos às GLC • Gramáticas categoriais • Gramáticas de dependências • ... • TreeBanks • Gramáticas Probabilísticas Jurafsky • Capítulo 12, secção 12.4 (versão draft), páginas 20 - 25 • Página da Linguateca • http://www.linguateca.pt/Floresta/ Treebanks • Uma gramática pode ser usada para calcular uma (ou mais) estruturas sintácticas de uma frase. • Pode-se assim construir um CORPUS denominado TREEBANK - em que cada frase está sintacticamente anotada. • Tipicamente, a anotação sintáctica é feita automaticamente e depois corrigida manualmente Treebanks • Penn Treebank (reúne textos do Brown corpus, entre outros) • Prague dependency Treebank (Checo - gramática de dependências) • Negra treebank (Alemão) • Susanne (Inglês) • Floresta Sintáctica (Linguateca) (Português) Projecto Floresta Sintáctica • Corpora: • Floresta Virgem — texto jornalístico em português europeu e brasileiro (dos corpora CETEMPúblico e CETENFolha, respectivamente), 1.639.585 palavras. • Bosque — subconjunto da Floresta, visto manual e intelectualmente, 184.985 palavras. • Selva — texto literário, científico e transcrição de fala, em português europeu e brasileiro, com cerca de 300.000 palavras e parcialmente revisto por linguistas. Projecto Floresta Sintáctica • A menina gulosa jantou duas tigelas de sopa de legumes • • • • • • • • • • • • • • • • • • A1 STA:fcl =SUBJ:np ==>N:art('a' <artd> F S) a ==H:n('menina' F S) menina ==N<:adj('guloso' F S) gulosa =P:v-fin('jantar' PS 3S IND) jantou =ACC:np ==>N:num('duas' <card> F P) duas ==H:n('tigela' F P) tigelas ==N<:pp ===H:prp('de') de ===P<:np ====H:n('sopa' F S) sopa ====N<:pp =====H:prp('de') de =====P<:np ======H:n ('legume' M P) legumes Utilização de um Treebank como uma gramática • As frases anotadas sintacticamente no TreeBank constituem uma gramática implícita. Utilização de um Treebank como uma gramática • Por exemplo, a gramática tirada do Penn Treebank resulta em muitas e longas regras gramaticais. • Ex: 4500 regras para VPs • VP -> VBD PP • VP -> VBD PP PP • VP -> VBD PP PP PP • VP -> VBD ADV PP • VP -> VBD PP ADV • ... • VP -> VBD PP PP PP PP PP ADV PP Utilização de um Treebank como uma gramática • A regra • VP -> VBD PP PP PP PP PP ADV PP • vem de • “we go from football in the fall to lifting in the winter to football again in the spring” Utilização de um Treebank como uma gramática • Sendo visto como uma gramática, o Penn TreeBank III Wall Street Journal corpus (aproximadamente 1 milhão de palavras) tem cerca de 17 500 tipos de regras distintas e 1 milhão de regras não lexicais. • Tipicamente, há muitas alterações a fazer a uma gramática retirada de um TreeBank. Pesquisa num Treebank • Os TreeBanks são também muito usados na pesquisa de certos fenómenos sintácticos. Pesquisa num Treebank • TGrep/TGrep2 • NP: devolve a sub-árvore com nó NP • NN|NNS: devolve nomes no singular ou no plurar (também é possível fazer /NN?/) • NP < PP: apanha todos os NPs que dominam imediatamente um PP • NP << PP: apanha todos os NPs que dominam um PP • NP < JJ . VP: apanha os NP que dominam imediatamente um JJ e que é seguido de um VP Pesquisa num Treebank • Para a Floresta Sintáctica existem as seguintes interfaces: • Milhafre e Águia: interfaces de busca para os corpora da Floresta Sintáctica • tgrepeye: sistema de procura sobre o formato do Penn Treebank que permite também a visualização das árvores em formato gráfico Indice • Formalismos gramaticais alternativos às GLC • Gramáticas categoriais • Gramáticas de dependências • ... • TreeBanks • Gramáticas Probabilísticas Jurafsky • Capítulo 14, secção 14.1 (versão draft), páginas 1 -5 GRAMÁTICAS PROBABILÍSTICAS (motivação) • Relebrar o clássico: • vi o homem no monte com os binóculos • Supondo a gramática: • S -> SV | SV SP • SV -> v SN | v SN SP • SN -> SN SP | SN SP SP | SN SP SP SP • Vejam lá a quantidade de árvores geradas • E seria possível relacionar “o homem” com “os binóculos” e “vi” com “no monte”? GRAMÁTICAS PROBABILÍSTICAS (motivação) • O caso anterior é genuinamente ambíguo, mas há muitos casos de ambiguidade que se devem apenas à gramática em si. • Ex: Indique-me um hotel com piscina com água quente • S -> SV | SV SP • SV -> SN SP | SN SP SP • O hotel é que tem água quente? GRAMÁTICAS PROBABILÍSTICAS (motivação) • Portanto, temos um problema: como é que conseguimos descobrir a árvore de análise correcta? GRAMÁTICAS PROBABILÍSTICAS (motivação) • Soluções possíveis: • Deixar que as situações de ambiguidade sejam resolvidas pela análise semântica? • Usar regras de desambiguação manuais? • Usar modelos probabilísticos para atribuir probabilidades às diferentes arvores? GRAMÁTICAS PROBABILÍSTICAS (motivação) • Como calcular estas probabilidades? GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Uma gramática livre de contexto probabilística (PGLC) é um tuplo (N, T, S0, R) composta por: • N: Conjunto de símbolos não-terminais • T: Conjunto de símbolos terminais • S0: símbolos não-terminal, designado por símbolo inicial • R: Conjunto de regras da forma A → α [p], onde: • A é um símbolo não terminal; • α é uma cadeia de zero ou mais símbolos terminais e não terminais; • p é um número entre 0 e 1 que representa P(α |A) GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • p = P(α |A) = probabilidade de um dado não terminal A ser expandido na expressão α. • p = P(α |A) = P(A -> α) = P(A-> α | A) = • P(RHS | LHS), em que: • RHS = right-hand-side • LHD = left-hand-side GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Atenção que: GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • E agora, o que fazemos com isto? • Podemos usar uma PCFG para estimar a probabilidade associada a uma dada árvore, o que vai permitir arranjar uma solução para os casos de ambiguidade. GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Mas antes, temos de calcular as probabilidades associadas a cada regra. Como fazê-lo? GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Supondo n regras da forma A→ αi • Calcula-se P(A→αi|A) • Podem-se calcular estes valores, fazendo contagens... num TreeBank GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Estas contagens podem ser feitas através da seguinte fórmula: GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Consegue-se deste modo associar probabilidades às regras e construir uma gramática probabilística: • SV → Verbo [.50] • SV → Verbo SN [.45] • SV → Verbo SN SN [.05] GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS S → NP VP[.80] | Aux NP VP[.15] | VP[.05] NP → Det Nom [.20] | Proper-Noun [.35] | Nom[.05] | Pronoun [.40] Nom → Noun [.75] | Noun Nom [.20] | Proper-Noun Nom [.05] VP → Verb [.55] | Verb NP [.40] | Verb NP NP [.05] Det → that [.05] | the [.80] | a [.15] Noun → book [.10] | flights [.50] | meal [.40] Verb → book [.30] | include [.30] | want [.40] Aux → can [.40] | does [.30] | do [.30] Proper-Noun → TWA [.40] | Denver [.60] Pronoun → you [.40] | I [.60] GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Pronto, e agora que construímos a gramática probabilística, como é que associamos probabilidades às árvores? GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Considerando que a probabilidade de cada constituinte é independente do contexto em que aparece na árvore global de análise, temos que a probabilidade do constituinte A, obtido a partir de α1,…,αn, através da regra A→ α1…αn é dada por: • P(A) = P(A→ α1…αn|A) * P(α1) * … * P(αn) • Adicionalmente. • Nas folhas da árvore, usam-se as probabilidades POS P(αi|wi) GRAMÁTICAS LIVRES DE CONTEXTO PROBABILÍSTICAS • Dado que uma árvore é constituída pelo conjunto de regras que participam na sua derivação, a probabilidade associada a cada árvore é o produto das probabilidades das regras usadas na sua derivação. EXEMPLO • Considere a gramática: • F → SN SV [0.6] | SV[0.4] • SN → Nome[1.0] • SV → Verbo [0.3] | Verbo SN [0.7] • Nome → nota [0.1] | ... [0.9] • Verbo → nota [0.2] | ... [0.8] • Calcule a probabilidade associada às árvores de derivação da frase “nota nota” EXEMPLO • Árvores para a frase “nota nota” • Caso 1: [F [SN [Nome nota]] [SV [Verbo nota]]] • P([Nome nota]) = P(Nome→nota) = 0.1 • P([Verbo nota]) = P(Verbo→nota) = 0.2 • P([SN [Nome nota]])=P(SN→Nome)P([Nome nota]) =1.0*0.1=0.1 • P([SV [Verbo nota]])=P(SV→Verbo)P([Verbo nota]) =0.3*0.2=0.06 • P [F [SN [Nome nota]] [SV [Verbo nota]]]) = P(F→SN VP)*0.1*0.06 = 0.6*0.1*0.06 = 0.0036 EXEMPLO • Árvores para a frase “nota nota” • Caso 2: [F [SV [Verbo nota] [SN [Nome nota]]]] • P([SV [Verbo nota] [SN [Nome nota]]]) = P(SV→Verbo SN) * 0.2 * 0.1 = 0.7 * 0.2 * 0.1= 0.014 • P([F [SV [Verbo nota] [SN [Nome nota]]]]) = P(F→VP) *0.014=0.4*.014=0.0056 • => Esta árvore é mais provável EXERCÍCIO • Considerando a seguinte gramática • F → SN COORD SV [0.6] | SN COORD SN [0.4] • SN → Nome [1.0] • SV → Verbo[0.3] |Verbo COORD SN • Nome → bucha[0.1] | estica [0.2] | ... • Verbo → estica [0.2] | ... • COORD → e [0.7] [0.7] [0.8] [1.0] • Calcular a probabilidade associada às árvores da seguinte expressão • “bucha e estica”