INQUER Interacção Pessoa-Máquina em Linguagem Natural Módulo I Análise Sintáctico-Semântica Catarina Ribeiro Tópicos Inquer WordNet.PT Módulo I - Análise Sintáctico-Semântica Tratamento da Base de Dados Lexical Implementação do analisador gramatical INQUER Desenvolvido no CLG (CLUL) Objectivo: Desenvolvimento de um Sistema Pergunta-Resposta que permita interagir em Linguagem Natural com a WordNet.PT INQUER - Arquitectura Geral Pergunta (Português) INQUER MÓDULO I Analisador Base de Dados Lexical Forma Lógica Forma Lógica MÓDULO II Motor de Inferência Resposta MÓDULO III Gerador Resposta (Português) Base de Dados Léxico-Conceptual (WordNet.PT) WordNet.PT Base de Dados de Conhecimento Linguístico Rede Léxico-Conceptual {alimento} Conj. de sinónimos hiperonímia {carne, chicha} hiponíminia {carne picada} ... {carne branca} Conj. de sinónimos Módulo I Análise Sintáctico-Semântica Objectivo Geral: Selecção e modelização de estruturas sintácticas Construção de um analisador gramatical que: Recebe uma pergunta em LN Analisa-a e Reconhece-a sintacticamente Constrói uma representação semântica para cada interpretação possível Módulo I Análise Sintáctico-Semântica Especificidades do módulo: Formalismo Sintáctico: Inspirado no modelo de HPSG (subcategorização representada através de estruturas de traços) Formalismo Semântico: Linguagem de Lógica de Primeira Ordem + Termos Lambda Linguagem de Programação Prolog Módulo I - Arquitectura Pergunta (Expressão em Português) Analisador Gramatical Base de Dados Lexical Processamento da Pergunta Meta-Entradas Lexicais Herança de Traços Representação Semântica das unidades lexicais Regras Lexicais Base de Dados Léxico-Conceptual (WordNet.PT) Regras Sintácticas Representação Semântica da Expressão Forma Lógica Regras Sintagmáticas Base de Dados Lexical Entradas Lexicais retiradas da WordNet.PT Expressões nominais (ex. cão, planta) Expressões verbais (ex. ladrar, andar) Entradas Lexicais e Funcionais introduzidas Verbos (ex. ser, ter) Determinantes (ex. o, todos) Preposições (ex. de) Pronomes relativos e interrogativos (ex. que, qual) Nomes (ex. tipo, raça) Conjunções (ex. e) Operador de negação (não) Base de Dados Lexical Inclusão de traços morfológicos e semânticos nas entradas lexicais Necessários para o processamento sintáctico e morfológico Exemplo: * um vaca um → [gen: mas; num:sing] vaca → [gen:fem; num:sing, cont:s] Implementação de um mecanismo de herança de traços utilizando a estrutura hierárquica da WordNet.PT Base de Dados Lexical Formato das Entradas Lexicais cat(FSem,Ltraços) ---> [Lex]. cat Fsem - Categoria Forma Semântica Ltraços Lex - Lista de traços Unidade Lexical Exemplos de Entradas Lexicais Exemplos de entradas lexicais animal n(’animal',[num:sing,gen:mas,cont:s,abst:n,anim:s, ser_vivo:s, hum:n])---> [animal]. vaca n(’vaca',[num:sing,gen:fem]) ---> [vaca]. Utilizando o mecanismo de herança de traços n(’vaca',[num:sing,gen:fem,cont:s,abst:n,anim:s,ser_vivo:s,hum:n]). Pré-Processamento da Pergunta Verificação da existência do ponto de interrogação (?) Conversão da string introduzida numa lista de unidades lexicais Tratamento de contracções Exemplo: do → de + o Pré-Processamento da Pergunta Reconhecimento do Léxico (através da Base de Dados Lexical) Identificação de lexicalizações não atómicas As fatias douradas são comida? [[as,‘fatias douradas’,são,comida], [as,fatias,douradas,são,comida]] O gato persa é um animal ? [[o,‘gato persa’,é,um,animal]] Meta – Entradas Lexicais Motivação: Adicionam às entradas lexicais informação necessária à aplicação de regras sintácticas e semânticas Economia do sistema Esquema Geral spr: LSpr elex(cat,LTraços, comp: LComps ,Representação Semântica) gap: LGap cat(Forma Semântica,Ltraços)^[Lista Restrições]. Meta – Entradas Lexicais Meta-Entrada para determinantes indefinidos Exemplo: um gato mia? spr : elex(det,Ltraços, comp : , (X^ P)^ (X^ Q)^ d(Palavra,Num, X, P gap : & Q)) det(Palavra, Ltraços)^[retira_elemento(Ltraços, tipo : exist, _), extrai(Ltraços, num, Num)]. (Palavra = um; algum) Regras Lexicais Motivação: Desdobram Meta-Entradas Lexicais permitindo generalizações importantes Economia do sistema Esquema Geral spr : LSpr , Representação Semântica) elex(Cat,Ltraços, comp : gap : LComps spr : LSpr elex(Cat,Ltraços, comp : LComps , Representação Semântica) gap : Regras Lexicais Regra Lexical para o gap de complemento Exemplo: Os membros que o gato tem são patas? spr : elex(v, Ltraços, comp : gap : r (C, _, , X^ P) , _, Y) spr : elex(v, Ltracos, comp : r(C, _, gap : , _, Y), X^ Y^ P) Fenómenos Linguísticos Concordância núcleo - especificador (género e número) Construções com Orações relativas restritivas (de sujeito e complemento) Coordenações Negação frásica Inversão de sujeito (verbo “existir”) Construções com predicados de um ou dois lugares Regras Sintagmáticas Número de Regras: 10 Níveis: Sintáctico Regras sintácticas que reconhecem sintagmas Semântico Regras semânticas que constroem representações de sintagmas Regras Sintagmáticas Esquema geral Regra Exemplo X → Y, X Núcleo - Especificador Os gatos são animais X → X, Y Núcleo - Complemento ... são animais. Coordenação As aranha e os gatos ... X → X1, ..., Xn Regras Sintagmáticas Esquema Geral: r(Cat, Ltraços,Predicados a spr : LSpr executar, comp : LComps , Representação Semântica) gap : LGap Parser Tabular Ascendente [ Lista de constituintes]. Parser Tabular Ascendente Melhores resultados com a gramática utilizada Problemas As regras podem ser chamadas antes de todas as variáveis dos seus constituintes estarem devidamente instanciadas o que provoca falhas Solução: Guardar, numa lista, as acções a tomar quando todas as variáveis dos seus constituintes estiverem instanciados Regras Sintagmáticas Promoção de X para X' spr : LSpr, r(N,T, , comp : , , Sem) gap : LGap spr : LSpr, comp : , , Sem). elex(N, T, gap : LGap Exemplo Os gatos miam? F “os gatos miam?” d(o, plu, A, gato(A) > miar(A)) SN SV “os gatos” “miam” (A^C)^d(o, plu, A, gato(A)>C) D “os” (A^F)^(A^C)^d(o, plu, A, F>C) N’ “gatos” E^gato(E) D^miar(D) Demonstração Em Síntese... Extracção do léxico da WordNet.PT Tratamento da base de dados (herança de traços) Construção e implementação do analisador gramatical Trabalho Futuro Desenvolver regras capazes de lidar com: Inversões de sujeito Adjunções de sintagmas adjectivais a N’ Estruturas com complementos causais Estruturas que envolvem comparação Desenvolvimento do Módulo III-Geração