Extração baseada em PLN (Processamento de Linguagem Natural) Flávia Barros Jacques Robin Fred Freitas Centro de Informática - UFPE CIn/UFPE Roteiro PLN Morfologia Sintaxe Semântica Análise do Discurso Extração com PLN Exemplos • AutoSlog • LIEP Extratores com SBC x Extratores com Aprendizado CIn/UFPE Processamento de Linguagem Natural Há 20 anos atrás... • os dados estavam ordenadamente armazenados em Bancos de Dados Hoje: • os dados estão armazenados em forma de texto – e.g., Internet • Como ter acesso a esses dados? Processamento de Linguagem Natural (PLN) !!! • tem por objetivo interpretar e gerar frases isoladas ou textos em alguma língua natural • congrega estudos da Lingüística e da Ciência da Computação. CIn/UFPE Arquitetura de Sistemas para PLN CIn/UFPE Processamento Morfológico Morfologia: estuda, através dos morfemas • a estrutura (ou forma) das palavras e • suas leis de formação e inflexão. Processamento morfológico no PLN: Decompõe as palavras da frase de entrada em radical + morfema gramatical • morfologia inflexional: – menina = menin + a --- cadeiras = cadeira + s • morfologia derivativa: – fazia = faz + ia --- desfaz = des + faz CIn/UFPE Processamento Morfológico Análise morfológica: • armazenam-se apenas os radicais, morfemas gramaticais e regras morfológicas de formação das palavras • é central na construção de – verificadores ortográficos automáticos – mecanismos de busca na Web (search engines) – para fazer busca pelo radical da palavra – tradução automática – auxilia na derivação da classe gramatical da palavra – qualquer aplicação com léxico e gramática de grande tamanho CIn/UFPE Processamento Sintático Sintaxe: • estuda as regras que governam a formação de frases de uma determinada língua. Processamento sintático no PLN • derivação da estrutura sintática da frase -- Parsing Parser: • algoritmo que mapeia uma frase na sua estrutura sintática • com base no léxico (dicionário) e na gramática do sistema. CIn/UFPE Processamento Sintático Frases são formadas por constituintes • palavras ou sintagmas que constituem a frase. Sintagma: • grupo de palavras classificado de acordo com a categoria sintática de seu elemento núcleo Exemplo: • SN (s. nominal) - João; o menino; a maçã verde; o gato de rabo longo. • SV (s. verbal) - chove; chegou cedo; tem estado doente; falaram de Maria a Pedro. • SP (s. preposicional) - para você; de Maria a Pedro. • SAdv (s. adverbial) - cedo; muito rapidamente. CIn/UFPE Parsing Etapas de processamento: • rotular cada palavra com sua categoria sintática (POStagging) – mesa: substantivo; casa: subst. ou verbo • delimitar constituintes sintáticos - sintagmas (bracketing) • rotular os constituintes com categorias sintáticas – SN (sintagma nominal), SV (sintagma verbal), etc • rotular os constituintes com sua função sintática – sujeito, objeto, predicado, ... • identificar dependências estruturais entre os constituintes – oração coordenada, subordinada,... CIn/UFPE O Léxico Dicionário com os termos utilizados pelo sistema. Existem variados formalismos para representação dos léxicos. A representação do léxico deve estar de acordo com a da gramática do sistema. Exemplos de entradas de um léxico em PATR-II (Shieber 1984): mesa <categoria> = substantivo <gênero> = feminio <número> = singular <contável> = yes comprou <cat> = verbo <tempo> = pretérito-perfeito <número> = singular <pessoa> = 3 <voz passiva> = yes <arg1> = SN <arg2> = SN CIn/UFPE A Gramática Define, através de regras, quais são as cadeias de palavras válidas para o sistema. Sistemas de PLN tratam um sub-conjunto de uma língua natural. Existem diversos formalismos para a representação de gramáticas. Exemplos de regras de uma gramática em PATR-II: • este formalismo oferece mecanismos para verificação de concordância gênero e número, por exemplo. SN Det Subst <Det gênero> = <Subs gênero> <Det número> = <Subs número> SN Subst Adj <Subst gênero> = <Adj gênero> <Subst número> = <Adj número> CIn/UFPE A Gramática Essa verificação é feita em termos de categorias sintáticas, e não de uma lista exaustiva de frases. • línguas naturais possuem um número infinito de frases gramaticalmente corretas. É a BC mais portável dos sistemas de PLN • é essencialmente independente do domínio. CIn/UFPE Resultado da Análise Sintática SN Det N F -> SN, SV. SN -> Det, Subst. SV -> Verbo, SN. SV V SN Det -> o Subst ->menino, chapéu Verbo -> usa Det N O menino usa o chapéu. CIn/UFPE Ambigüidade no nível Sintático Frases onde as palavras podem assumir categorias sintáticas diferentes, a depender da interpretação: • I saw her duck • Time flies like an arrow Ambigüidade estrutural: • Eu vi o banco da praça • Eu vi o rapaz no parque com o binóculo. (1) O rapaz estava com o binóculo (2) Eu estava com o binóculo CIn/UFPE Interpretação Semântica Estrutura sintática apenas não basta! • frases com palavras e estruturas sintáticas diferentes, porém com mesmo significado: (1) Eu dei um livro a Maria. (2) Maria recebeu um livro de mim. • receber e dar conceito semântico de transferência Controle de inferência • Eu vi uma baleia grande – eu vi uma baleia – eu vi algo grande • Eu vi uma baleia pequena – eu vi algo pequeno??? CIn/UFPE Interpretação Semântica Semântica • estuda o significado das palavras e como elas se combinam para formar o significado das frases. Objetivo: Mapear a estrutura lingüística da frase nos conceitos do domínio que a frase pode expressar. • problema: ambigüidade – Ela estava em minha companhia (1) companhia = empresa (2) companhia = pessoa (i.e., ela estava comigo) CIn/UFPE Restrições de Seleção Restrições de seleção são atribuídas às palavras no léxico: • menino [+humano], [+masculino], [-adulto] • pensamento [+abstrato] • cabo [+vivente], [+humano], [+adulto] • cabo [+concreto], [+inanimado] • jovem = Substantivo modificado pelo adjetivo [+vivente] • morrer = Substantivo sujeito do verbo [+vivente] • Exemplo: – o cabo é jovem – o cabo é longo CIn/UFPE Restrições de Seleção Ontologias Restrições de seleção definem classes semânticas de palavras, que podem ser organizadas em hierarquias de tipos (representadas por ontologias). [Sowa 99] CIn/UFPE Gramáticas de Casos Formalismo muito utilizado no processamento semântico de frases. Papéis temáticos, ou casos, são atribuídos aos constituintes da frase. Papéis temáticos são determinados pelo verbo, o constituinte central da frase. Exemplo de entrada lexical para o verbo entregar: entregar, Verbo argumentos: agente, tema, beneficiário • Eu entreguei a carta a Pedro. CIn/UFPE O Modelo do Domínio Fornece o contexto enciclopédico do sistema. Armazena conhecimento a respeito das entidades, relações, eventos, lugares e datas do domínio da aplicação. O conhecimento é representado em uma Ontologia do domínio, em um (ou mais de um) formalismo de IA • e.g., Lógica de Predicados, Redes Semânticas, Frames, Scripts. Interpretação do conteúdo implícito das palavras. CIn/UFPE Processamento Automático do Discurso Problema: Antônio quer fazer uma festa de formatura na sua casa. Ele a limpou e arrumou ontem. Qual o referente do pronome a? • festa e casa apresentam os mesmos traços morfológicos (fem, sing) e sintáticos (subs). • o que nos ajuda a optar por casa é o nosso conhecimento do mundo (ou senso comum). CIn/UFPE Processamento Automático do Discurso Como é possível resolver automaticamente problemas desta natureza? Foram desenvolvidos teorias lingüísticas e algoritmos computacionais para representar, interpretar e gerar discurso, a fim de construir sistemas de PLN capazes de manter um diálogo com o usuário. Discurso: qualquer produção lingüística composta por mais de uma frase. CIn/UFPE Discurso tem Estrutura (a) João e Maria saíram para comprar um cortador de grama novo (b) porque o deles foi roubado. (c) Maria viu os homens que o roubaram. (d) Ela os seguiu até o final da rua, (e) mas eles fugiram num caminhão. (f) Depois de procurar no shopping center, (g) eles concluíram que não têm dinheiro para um novo. (h) A propósito, João perdeu o emprego, (i) por isso ele está sem dinheiro. (j) Finalmente, eles decidiram comprar um cortador usado. CIn/UFPE Análise do Discurso Estuda os princípios que governam a produção de seqüências estruturadas de frases = discurso escrito ou falado. O discurso é formado por segmentos • unidades lingüísticas que contêm uma ou mais frases consecutivas • que tratam do mesmo assunto (o foco daquele trecho do discurso). Qual a importância de se identificar a estrutura do discurso? • entre outras, a identificação dos referentes de pronomes e dêiticos (e.g., hoje, aqui, agora). CIn/UFPE Análise do Discurso Como determinar automaticamente a fronteira entre segmentos? • analisando a “superfície” do texto em busca de marcadores discursivos – e.g., "A propósito", "Bem", "Como eu ia dizendo", "Em resumo", etc. • analisando o "conteúdo semântico" do , em busca de identificar mudanças de foco. CIn/UFPE O Modelo do Discurso Fornece o contexto discursivo. É construído dinamicamente durante o processamento do discurso. Armazena informações sobre as frases previamente processadas. Central na interpretação e geração de pronomes e dêiticos. Geralmente, consiste em uma pilha contendo as caraterísticas sintáticas e semânticas das entidades já introduzidas no discurso. Essa pilha deve espelhar a estrutura do discurso, indicando onde começa e termina cada segmento. CIn/UFPE Extração baseada em PLN CIn/UFPE Estrutura geral Tokenização Análise Léxica /Morfológica Análise Sintática /Semântica Construção de Regras de Extração Análise de Discurso Preenchimento de Templates CIn/UFPE Tokenização Tokenização Análise Léxica /Morfológica Análise Sintática /Semântica •Segmentação das Palavras •Divisão em segmentos (estruturas) •Pre-processamento Construção de Análise de – ignorarRegras partesdedo texto Extração Discurso Preenchimento de Templates CIn/UFPE Análise Léxica Tokenização Análise Léxica /Morfológica Análise Sintática /Semântica Construção de Análise de •Classificação Morfológica (artigo, verbo, Regras de Extração Discurso substantivo). •Reconhecimento de nomes próprios, empresas, datas, ... Preenchimento •Etiquetagem automática de Templates CIn/UFPE Análise Sintática Tokenização Análise Léxica /Morfológica Análise Sintática /Semântica Construção •Construção arvore de sintática Análise de Regras de Extração Discurso •Grupos Nominais •Grupos Verbais •Análise sintática parcial Preenchimento de Templates CIn/UFPE Construção de Padrões •Dicionário de padrões de Extração •Específico ao Domínio Tokenização •Automática X Manual •eficiência, portabilidade, treinamento, alterações Análise Léxica ad hoc Análise Sintática /Morfológica /Semântica Construção de Regras de Extração Análise de Discurso Preenchimento de Templates CIn/UFPE Análise de Discurso Tokenização •Relações entre sentenças do texto. •Correferência •Ligações entre palavras. Análise Léxica /Morfológica Análise Sintática /Semântica Construção de Regras de Extração Análise de Discurso Preenchimento de Templates CIn/UFPE Preenchimento dos Templates Tokenização Análise Léxica /Morfológica Análise Sintática /Semântica •Preenches os dados em templates especificados pela aplicação. Construção de Análise de •Objetos ou tabelas Regras de Extração Discurso Preenchimento de Templates CIn/UFPE Extração com PLN Modelo do domínio (portável) • Ontologias com papéis lingüistícos e semânticos • conceitos e relacionamentos do domínio sendo tratado Extraem dados declarativos Podem usar aprendizado • Na aquisição de conhecimento • No refinamento de conhecimento -> melhor performance Shallow Parsing • Gramáticas representados como autômatos finitos CIn/UFPE Ontologia do Domínio (Hierarquia) - Terrorismo - CIn/UFPE SAN SALVADOR, 10 JAN 90 (AFP) -- [TEXT] OFFICIAL SOURCES HAVE REPORTED THAT SEVERAL GUERRILLA ATTACKS AND HEAVY FIGHTING TOOK PLACE THE EVENING OF 9 JANUARY AND THIS MORNING THROUGHOUT THE COUNTRY, AND AS A RESULT, THREE SOLDIERS WERE KILLED AND THREE OTHERS INJURED. ALLEGED GUERRILLA URBAN COMMANDOS LAUNCHED TWO HIGHPOWER BOMBS AGAINST A CAR DEALERSHIP IN DOWNTOWN SAN SALVADOR THIS MORNING. A POLICE REPORT SAID THAT THE ATTACK SET THE BUILDING ON FIRE, BUT DID NOT RESULT IN ANY CASUALTIES ALTHOUGH ECONOMIC LOSSES ARE HEAVY. DURING THE EVENING OF 9 JANUARY, GUERRILLA URBAN COMMANDOS BOMBED TWO ELECTRICITY FACILITIES IN DIFFERENT PLACES IN SAN SALVADOR, WHICH CAUSED POWER OUTAGES IN SOME AREAS OF THE CAPITAL. MEANWHILE, THE ARMED FORCES PRESS COMMITTEE (COPREFA) REPORTED TODAY THAT THREE ARMY SOLDIERS WERE KILLED RECENTLY IN CLASHES AGAINST MEMBERS OF THE FARABUNDO MARTI NATIONAL LIBERATION FRONT (FMLN) IN DIFFERENT PARTS OF THE CENTRAL AND EASTERN REGIONS OF THE COUNTRY. THE WAR BULLETIN BY COPREFA STATED THAT THE CLASHES, IN WHICH THREE MEMBERS OF THE GENERAL JUAN RAMON BELLOSO BATTALION WERE INJURED, TOOK PLACE IN SAN JOSE GUAYABAL, IN THE CENTRAL CUSCATLAN DEPARTMENT, AND IN SANTA ELENA IN THE EASTERN USULUTAN DEPARTMENT. CIn/UFPE 0. message: id dev-muc3-0018 (nccosc) 1. message: template 1 2. incident: date 10 jan 90 3. incident: location el salvador: san salvador (city) 4. incident: type bombing 5. incident: stage of execution accomplished 6. incident: instrument id "highpower bombs" 7. incident: instrument type bomb: "highpower bombs" 8. perp: incident category terrorist act 9. perp: individual id "guerrilla urban commandos" 10. perp: organization id -11. perp: organization confidence -12. phys tgt: id "car dealership" 13. phys tgt: type commercial: "car dealership" 14. phys tgt: number 1: "car dealership" 15. phys tgt: foreign nation -16. phys tgt: effect of incident some damage: "car dealership" 17. phys tgt: total number -18. hum tgt: name -19. hum tgt: description -20. hum tgt: type -21. hum tgt: number -22. hum tgt: foreign nation -23. hum tgt: effect of incident no injury or death: "-" 24. hum tgt: total number - CIn/UFPE Exemplo de extração pelo AutoSlog [Riloff 94] The priest was murdered by the guerrillas.” Name: target-subject-passive-verb-bombed Trigger: murdered Variable Slots: (target (*SUBJECT* 1)) Constraints: (class phys-target *SUBJECT*) Constant Slots: (type murder) Enabling Conditions: ((passive)) CIn/UFPE Caso que o reconheceu CIn/UFPE AutoSlog Textos são anotados previamente • Anotação semi-automática garante rapidez ao processo Padrões são aprendidos Padrões são selecionados estatisticamente • Por frequência de ocorrência • Por corretude score = relevance rate * log2 (frequency) CIn/UFPE Resultados Dicionário da MUC-4\ • construção manual • 389 definições • ~1500 pessoas-hora • requer anotadores experientes • performed well Dicionário gerado pelo AutoSlog dictionary • construção automática • 450 definições • 5 pessoas-hora (!!) • requer pouco treinamento • 98% da performance do MUC-4 CIn/UFPE LIEP [Huffman 95] Aprende regras de extração • Uma regra para vários itens TARGET-was-bombed-by-PERPETRATOR: noun-group( TRGT, head( isa(physical-target) ) ), noun-group( PERP, head( isa(perpetrator) ) ) verb-group( VG, type(passive), head(bombed) ) preposition( PREP, head(by) ) subject( TRGT, VG ), post-verbal-prep( VG, PREP ), prep-object( PREP, PERP ) => bombing-event( BE, target(TRGT), agent(PERP) ) CIn/UFPE Aquisição de conhecimento X Sistemas com aprendizado Aquisição de conhecimento Sistemas com aprendizado Não são conceitualmente dificeis de desenvolver Têm melhor performance Soluções mais portáveis Não precisam de expertise Cobertura sobre os exemplos São trabalhosos de construir Difícil manutenção Requer Expertise Exemplos de treinamento podem não existir Anotação é trabalhoso e requer alguma expertise CIn/UFPE Quando usar? Aquisição de conhecimento Sistemas com aprendizado Recursos (léxicos, etc) disponíveis Poucos dados Padrões podem mudar de desenvolver Precisa-se de ótima performance Recursos (léxicos, etc) disponíveis Padrões difíceis Dificuldades de programar regras Padrões estáveis Boa performance é aceitável Co-referência CIn/UFPE