Processamento de Linguagem Natural

Documentos relacionados
Processamento de Linguagem Natural

Processamento de Linguagem Natural

Processamento de Linguagem Natural

Apresentação 11 Lista de abreviações 13. Parte I: NATUREZA, ESTRUTURA E FUNCIONAMENTO DA LINGUAGEM

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

28/04/2011 SINTAXE PARTE 1. SCC5908 Tópicos em Processamento de Língua Natural. Thiago A. S. Pardo SINTAXE E GRAMÁTICAS

Comunicação. Capítulo 22

Introdução ao Processamento de Línguas Naturais (PLN) SCC0230 Introdução à IA. Prof. Thiago A. S. Pardo. Em oposição às linguagens artificiais

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

Definições Exemplos de gramáticas

17/09/2010 SINTAXE PARTE 1. SCC5869 Tópicos em Processamento de Língua Natural. Thiago A. S. Pardo SINTAXE E GRAMÁTICAS

Sumarizando: o que é uma língua. Métodos para seu estudo...44

6 Atributos. A dívida da empresa subiu.

Exercícios de múltipla escolha

Introdução à Programação

Gramáticas Livres de Contexto

Curso: Letras Português/Espanhol. Disciplina: Linguística. Docente: Profa. Me. Viviane G. de Deus

Gramática de Montague

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Morfologia, Sintaxe e Morfossintaxe substantivo, verbo, Morfologia. Morfologia classes gramaticais

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Análise Sintática. Fabiano Baldo

Gramáticas ( [HMU00], Cap. 5.1)

Língua Portuguesa. Professoras: Fernanda e Danúzia

Classificação de Palavras/Vocábulos

Gramáticas e Linguagens independentes de contexto

RELAÇÃO DOS VERBETES. B behaviorismo bilingüismo Black English boa formação

Prof. A. G. Silva. 21 de setembro de Prof. A. G. Silva Programação em Lógica 21 de setembro de / 1

PORTUGUÊS CONCORDÂNCIA NOMINAL (ESTUDO DIRIGIDO)

Construção de Compiladores

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Conteúdos para o teste de ingresso MATEMÁTICA agosto 2018 (Ingresso em 2019) INGRESSO DE 6ª PARA 7º. ANO/2019 DO ENSINO FUNDAMENTAL

Python e sua sintaxe LNCC UFRJ

Compiladores Aula 4. Celso Olivete Júnior.

01/10/2010 SINTAXE PARTE 3. SCC5869 Tópicos em Processamento de Língua Natural. Thiago A. S. Pardo ATRIBUTOS E UNIFICAÇÃO

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Linguagens Formais e Autômatos P. Blauth Menezes

O SISTEMA DE CASOS: INTERFACE ENTRE A MORFOLOGIA E A SINTAXE Dimar Silva de Deus (Unipaulistana)

COMPILAÇÃO. Ricardo José Cabeça de Souza

Gramáticas Livres de Contexto Parte 1

Português - alfabeto; - sequência alfabética; - formação de palavras; - leitura e interpretação (imagem, palavra, frase e texto).

O pulo do gato MORFOLOGIA GRAMÁTICA

PORTUGUÊS III Semestre

Há dois sintagmas essenciais: o sintagma nominal (SN), cujo núcleo é um nome ou palavra que seja equivalente; e o sintagma verbal (SV) cujo núcleo é

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Gramática. Gramática

Sumário PARTE 1. Gramática

Desenvolvimento de Aplicações Desktop

Tradução Dirigida Pela Sintaxe

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

A SINTAXE A FAVOR DA CLAREZA. Paola C. Buvolini Freitas Mestre em Estudos Linguísticos Professora de Português do UniSALESIANO Lins

Introdução ao Processamento de Línguas Naturais. Thiago A. S. Pardo

HORÁRIO DE RECUPERAÇÃO 7 o ANO. Componente Curricular DATA. 1 a SEMANA DESENHO GEOMÉTRICO / ARTES VISUAIS. História CIÊNCIAS MATEMÁTICA 1

Preliminares, cap. 3 de Introdução à Lógica (Mortari 2001) Luiz Arthur Pagani

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

..AASsrâT" ROSA VIRGÍNIA MATTOS E SILVA. O Português Arcaico. Uma Aproximação. Vol. I Léxico e morfologia

HORÁRIO DO CURSO DE LETRAS PERÍODOS DIURNO E NOTURNO ANO LETIVO DE º ANO/1º SEMESTRE

Linguagens Formais e Autômatos P. Blauth Menezes

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC

CALENDÁRIO DE PROVAS - P2 1º TRIMESTRE

IV Gramáticas Livres de Contexto

Língua Portuguesa A MORFOSSINTAXE. Profª. Fernanda Machado

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Conteúdo para concurso de bolsa 9º ano

Introdução à Lógica Proposicional Sintaxe

I.2 Introdução a Teoria da Computação

Prof. Adriano Maranhão COMPILADORES

MÓDULO BÁSICO. Linguagem IV Subtotal MÓDULO AVANÇADO

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Transcrição:

Processamento de Linguagem Natural Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Introdução Processamento de linguagem natural (PLN) consiste no desenvolvimento de modelos computacionais para a realização de tarefas que dependem de informações expressas em uma língua natural. Alguns exemplos de aplicação: tradução e interpretação de textos busca de informações em documentos interface homem-máquina (chatterbots) Aspectos da pesquisa em PLN: som: fonologia estrutura: morfologia e sintaxe significado: semântica e pragmática Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 2

Alguns aspectos da pesquisa em PLN Fonologia: reconhece os sons (fonemas) que formam as palavras de uma língua. Morfologia: reconhece uma palavra em termos de unidades básicas (morfemas). Sintaxe: define a estrutura de uma frase com base na forma como as palavras desta frase se relacionam entre si (categorias gramaticais). Semântica: associa significado às estruturas sintáticas, em função do significado das palavras que a compõem. Pragmática: adequa o significado de uma frase ao contexto em que ela é usada. Considerações PLN é uma vasta área de pesquisa que envolve diversas áreas do conhecimento. Para simplificar, abordaremos apenas alguns conceitos básicos de análise sintática. Mostraremos como usar conceitos básicos de linguagens formais para definir uma gramática capaz de gerar e reconhecer um conjunto restrito de frases em português. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 3

Gramáticas Uma linguagem é um conjunto de sentenças, formadas pela concatenação de símbolos. Linguagens formais são linguagens artificiais (tais como lógica proposicional ou Pascal) que podem ser matematicamente definidas, de forma rigorosa. Linguagens naturais (tais como português ou inglês) não são matematicamente definidas. Embora a correspondência não seja perfeita, podemos tratar linguagens naturais como tratamos linguagens formais. Uma gramática é uma especificação matemática da estrutura das sentenças de uma linguagem. Formalmente, uma gramática é definida por: S: o símbolo inicial da gramática (S N) T: um conjunto de símbolos terminais, denotando palavras da linguagem (léxico). N: um conjunto de símbolos não-terminais, denotando componentes de sentenças. R: um conjunto de regras de produção, que especificam como símbolos não-terminais podem ser expandidos em símbolos não-terminais e terminais. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 4

Especificação de gramática usando diferença de listas Considere a gramática a seguir: S = {frase} T = {o, gato, rato, caçou} N = {frase, sujeito, predicado, artigo, substantivo, verbo} R = {frase --> sujeito, predicado ; sujeito --> artigo, substantivo ; predicado --> verbo, artigo, substantivo ; artigo --> [o] ; substantivo --> [gato] [rato] ; verbo --> [caçou]} De acordo com esta gramática: uma frase é um sujeito seguido de um predicado um sujeito é um artigo seguido de um substantivo um predicado é um verbo, seguido de um artigo, seguido de um substantivo um artigo é o símbolo terminal o um substantivo é o símbolo terminal gato ou rato um verbo é o símbolo terminal caçou Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 5

Especificação de gramática usando diferença de listas Considere que frases são representadas por listas de palavras. Então, por exemplo, a frase o gato caçou o rato pode ser representada como [o,gato gato,caçou caçou,o,rato rato] Reconhecendo o primeiro artigo em [o,gato,caçou,o,rato], obtemos a lista [gato,caçou,o,rato]. Isto pode ser indicado em Prolog com o fato: artigo([o A],A). Analogamente, reconhecendo o primeiro substantivo em [gato,caçou,o,rato], obtemos a lista [caçou,o,rato]. Isto pode ser indicado com o fato: substantivo([gato gato A],A). Neste ponto, é importante notar que, reconhecendo um artigo seguido de um substantivo, acabamos reconhecendo o sujeito da frase. Em Prolog, isto pode ser indicado pela regra: sujeito(a,c) :- artigo(a,b), substantivo(b,c). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 6

Especificação de gramática usando diferença de listas Após o reconhecimento do sujeito em [o,gato,caçou,o,rato], obtemos a lista [caçou,o,rato]. Reconhecendo o verbo nesta lista, obtemos a lista [o,rato]. Isto pode ser indicado com o fato: verbo([caçou caçou A],A). O artigo em [o,rato] pode ser reconhecido pelo fato já declarado anteriormente e, para reconhecer este novo substantivo, podemos usar o fato: substantivo([rato rato A],A). Aqui também podemos notar que, para reconhecer o predicado da frase, é necessário reconhecer um verbo, seguido de um artigo e um substantivo. Isto pode ser indicado pela regra: predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). Finalmente, para reconhecer uma frase, podemos usar a regra: frase(a,c) :- sujeito(a,b), predicado(b,c). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 7

Reconhecimento de frases Exemplo 1. Especificação completa da gramática frase(a,c) :- sujeito(a,b), predicado(b,c). sujeito(a,c) :- artigo(a,b), substantivo(b,c). predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). artigo([ ([o A],A). substantivo([ ([gato gato A],A). substantivo([ ([rato rato A],A). verbo([ ([caçou caçou A],A). Exercício 1. Uso da gramática para reconhecimento de frases Digite a gramática do Exemplo 1 e faça as consultas a seguir:?- artigo([o,gato,caçou,o,rato],r).?- sujeito([o,gato,caçou,o,rato],r).?- frase([o,gato,caçou,o,rato],[]).?- frase([o,gato,rato,o,caçou],[]).?- frase([o,rato,caçou,o,gato],[]).?- frase([gato,caçou,rato],[]). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 8

Reconhecimento de frases /* 1 */ frase(a,c) :- sujeito(a,b), predicado(b,c). /* 2 */ sujeito(a,c) :- artigo(a,b), substantivo(b,c). /* 3 */ predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). /* 4 */ artigo([ ([o A],A). /* 5 */ substantivo([ ([gato gato A],A). /* 6 */ substantivo([ ([rato rato A],A). /* 7 */ verbo([ ([caçou caçou A],A).?- frase([o,gato,caçou,o,rato] [o,gato,caçou,o,rato],[]),[]).?- sujeito([o,gato,caçou,o,rato] [o,gato,caçou,o,rato],b,b 1 ), predicado(b 1,[]).?- artigo([o,gato,caçou,o,rato] [o,gato,caçou,o,rato],b,b 2 ), substantivo(b 2,B 1 ), predicado(b 1,[]).?- substantivo([gato,caçou,o,rato] [gato,caçou,o,rato],b,b 1 ), predicado(b 1,[]).?- predicado([caçou,o,rato] [caçou,o,rato],[]),[]).?- verbo([caçou,o,rato] [caçou,o,rato],b,b 3 ), artigo(b 3,C 3 ), substantivo(c 3,[]).?- artigo([o,rato] [o,rato],c,c 3 ), substantivo(c 3,[]).?- substantivo([rato] [rato],[]),[]).?- SUCESSO Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 9

Reconhecimento de frases /* 1 */ frase(a,c) :- sujeito(a,b), predicado(b,c). /* 2 */ sujeito(a,c) :- artigo(a,b), substantivo(b,c). /* 3 */ predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). /* 4 */ artigo([ ([o A],A). /* 5 */ substantivo([ ([gato gato A],A). /* 6 */ substantivo([ ([rato rato A],A). /* 7 */ verbo([ ([caçou caçou A],A).?- frase([o,gato,rato,o,caçou] [o,gato,rato,o,caçou],[]),[]).?- sujeito([o,gato,rato,o,caçou] [o,gato,rato,o,caçou],b,b 1 ), predicado(b 1,[]).?- artigo([o,gato,rato,o,caçou] [o,gato,rato,o,caçou],b,b 2 ), substantivo(b 2,B 1 ), predicado(b 1,[]).?- substantivo([gato,rato,o,caçou] [gato,rato,o,caçou],b,b 1 ), predicado(b 1,[]).?- predicado([rato,o,caçou] [rato,o,caçou],[]),[]).?- verbo([rato,o,caçou] [rato,o,caçou],b,b 3 ), artigo(b 3,C 3 ), substantivo(c 3,[]). FALHA Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 10

Geração de frases Exemplo 1. A gramática completa frase(a,c) :- sujeito(a,b), predicado(b,c). sujeito(a,c) :- artigo(a,b), substantivo(b,c). predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). artigo([ ([o A],A). substantivo([ ([gato gato A],A). substantivo([ ([rato rato A],A). verbo([ ([caçou caçou A],A). Exercício 2. Uso da gramática para geração de frases Faça as consultas a seguir, que geram todas as frases da linguagem definida pela gramática do Exemplo 1:?- frase(f,[]).?- forall( frase(f,[]), writeln(f) ). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 11

Geração de frases Exemplo 1. A gramática completa frase(a,c) :- sujeito(a,b), predicado(b,c). sujeito(a,c) :- artigo(a,b), substantivo(b,c). predicado(a,d) :- verbo(a,b), artigo(b,c), substantivo(c,d). artigo([ ([o A],A). substantivo([ ([gato gato A],A). substantivo([ ([rato rato A],A). verbo([ ([caçou caçou A],A). Exercício 3. Ampliação do léxico da gramática Altere a definição da gramática do Exemplo 1, adicionando o artigo um e o verbo assustou. Em seguida, faça as consultas a seguir:?- frase(f,[]).?- forall( frase(f,[]), writeln(f) ). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 12

Notação DCG (Definite Clause Grammar) A linguagem Prolog oferece uma notação, denominada DCG, que facilita a especificação de gramáticas. Ao ser compilada, uma gramática em notação DCG é automaticamente transformada em uma gramática usando diferença de listas. Exemplo 2. Uma gramática em notação DCG frase --> sujeito, predicado. sujeito --> artigo, substantivo. predicado --> verbo, artigo, substantivo. artigo --> [o]. substantivo --> [gato gato] [rato rato]. verbo --> [caçou caçou]. Exercício 4. Análise do resultado da compilação da notação DCG Digite a gramática do Exemplo 2, compile e faça a consulta a seguir:?- listing. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 13

Categorias gramaticais Em PLN, é bastante comum o uso de termos técnicos para designar categorias gramaticais. Alguns destes termos são os seguintes: s : sintagma sentencial (frase) sn : sintagma nominal sv : sintagma verbal det : determinante (artigo) n : nome (substantivo) adj : adjetivo v : verbo vi : verbo intransitivo vt : verbo transitivo adv : advérbio A fim de simplificar a notação, usaremos estes termos na especificação das próximas gramáticas. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 14

Categorias gramaticais Exemplo 3. Gramática G1 s --> sn, sv. sn --> det, n, adj. sv --> vi, adv. sv --> vt, adv, sn. det --> [o]. n --> [gato gato] [rato rato]. adj --> [] [gordo gordo] [magro magro]. vi --> [caçou caçou] [dormiu dormiu]. vt --> [caçou caçou]. adv --> [] [silenciosamente silenciosamente]. Exercício 5. Teste da gramática G1 Gere e analise todas as frases da linguagem definida pela gramática G1. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 15

Dependência de contexto A dependência de contexto ocorre quando uma palavra da frase deve concordar com outras palavras da mesma frase. Exemplo 4. Gramática G2 s --> sn, sv. sn --> det, n. sv --> v, sn. det --> [o]. n --> [gato gato] [rato rato]. v --> [caçou caçou]. Exercício 6. Ampliação da gramática com gênero feminino Amplie a gramática G2, adicionando o artigo a e os substantivos gata e rata. Em seguida, gere e analise todas as frases definidas pela gramática alterada. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 16

Dependência de contexto Exemplo 5. Gramática com concordância de gênero G3 s --> sn, sv. sn --> det(g), n(g). sv --> v, sn. det(m) --> [o]. det(f) --> [a]. n(m) --> [gato gato] [rato rato]. n(f) --> [gata gata] [rata rata]. v --> [caçou caçou]. Exercício 7. Gramática com concordância de gênero Gere e analise todas as frases definidas pela gramática G3. Exercício 8. Ampliação do léxico Adicione os artigos indefinidos um um e uma uma e gere as frases definidas pela gramática. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 17

Dependência de contexto Exemplo 6. Gramática G4 s --> sn, sv. sn --> det(g), n(g). sv --> v, sn. det(m) --> [o] [um um]. det(f) --> [a] [uma uma]. n(m) --> [gato gato] [rato rato]. n(f) --> [gata gata] [rata rata]. v --> [caçou caçou]. Exercício 9. Ampliação da gramática com plural Amplie a gramática G4, adicionando: os artigos: os, uns, as, umas os substantivos: gatos, ratos, gatas, ratas o verbo: caçaram Em seguida, gere e analise todas as frases definidas pela nova gramática. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 18

Dependência de contexto Exemplo 7. Gramática G5 s --> sn(n), sv(n). sn(n) --> det(g,n), n(g,n). sv(n) --> v(n), sn(_). det(m,s) --> [o] [um um]. det(m,p) --> [os os] [uns uns]. det(f,s) --> [a] [uma uma]. det(f,p) --> [as as] [umas umas]. n(m,s) --> [gato gato] [rato rato]. n(m,p) --> [gatos gatos] [ratos ratos]. n(f,s) --> [gata gata] [rata rata]. n(f,p) --> [gatas gatas] [ratas ratas]. v(s) --> [caçou caçou]. v(p) --> [caçaram caçaram]. Exercício 10. Teste da gramática G5 Gere e analise todas as frases definidas pela gramática G5. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 19

Construção de árvore sintática A árvore sintática de uma sentença é uma árvore em que: 1 a raiz é rotulada com o símbolo inicial da gramática 2 as folhas são rotuladas com símbolos terminais da gramática 3 os demais nós são rotulados com símbolos não-terminais da gramática 4 a relação entre nós é definida pelas regras de produção da gramática Exemplo: s --> sn, sv. sn --> det, n. sv --> v, sn. det --> [o]. n --> [gato gato] [rato rato]. v --> [caçou caçou]. s sn sv det n v det n o gato caçou o rato Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 20

Construção de árvore sintática Exemplo 8. Gramática G6 s(s(a,b) s(a,b)) --> sn(a), sv(b). sn(sn(a,b) sn(a,b)) --> det(a), n(b). sv(sv(a,b) sv(a,b)) --> v(a), sn(b). det(det(o) det(o)) --> [o]. n(n(a) n(a)) --> [A], { member(a,[,[gato gato,rato rato]) }. v(v(caçou) v(caçou)) --> [caçou caçou]. Exercício 11. Construção de árvore sintática Digite a gramática G6 e faça as consultas a seguir:?- s(a,[o,gato,caçou,o,rato] [o,gato,caçou,o,rato],[]).,[]).?- s(a,f,[]). Exercício 12. Alteração de gramática para construção de árvore sintática Altere a gramática G5 para que ela construa a árvore das sentenças geradas. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 21

Fim