Processamento de Linguagem Natural
|
|
|
- Luiz Guilherme Vasques Weber
- 9 Há anos
- Visualizações:
Transcrição
1 Processamento de Linguagem Natural Silvio do Lago Pereira 1 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 alguma língua natural (e.g. tradução e interpretação de textos, busca de informações em documentos e interface homem-máquina) [1,4]. Conforme [2], a pesquisa em Pln está voltada, essencialmente, a três aspectos da comunicação em língua natural: som: fonologia estrutura: morfologia e sintaxe significado: semântica e pragmática A fonologia está relacionada ao reconhecimento dos sons que compõem as palavras de uma língua. A morfologia reconhece as palavras em termos das unidades primitivas que a compõem (e.g. caçou caç+ou). A sintaxe define a estrutura de uma frase, com base na forma como as palavras se relacionam nessa frase (figura 1). A semântica associa significado a uma estrutura sintática, em termos dos significados das palavras que a compõem (e.g. à estrutura da figura 1, podemos associar o significado um animal perseguiu/capturou outro animal ). Finalmente, a pragmática verifica se o significado associado à uma estrutura sintática é realmente o significado mais apropriado no contexto considerado (e.g. no contexto predador-presa, perseguiu/capturou comeu ). frase sujeito predicado / \ / \ artigo substantivo verbo artigo substantivo o gato caçou o rato Figura 1. Uma árvore sintática Como podemos ver, Pln é uma área de pesquisa muito vasta, que envolve diversas disciplinas do conhecimento humano. Por se tratar de um assunto complexo, nesse artigo, vamos abordar apenas a análise sintática de algumas frases
2 2 S. L. Pereira em português. Mostraremos como especificar uma gramática 1 capaz de gerar um conjunto finito de sentenças e de decidir se uma determinada sentença pertence ou não à linguagem definida pela gramática. Em seguida, estenderemos essa gramática para tratar concordância de gênero e número, bem como tempo verbal. Finalmente, mostraremos como modificar a gramática para que ela construa a árvore sintática de uma sentença de forma automática. 2 Gramática e análise sintática Uma gramática é uma especificação formal da estrutura das sentenças permitidas numa linguagem. O modo mais simples de definir uma gramática 2 é especificando um conjunto de símbolos terminais, denotando palavras da linguagem, um conjunto de símbolos não-terminais, denotando os componentes das sentenças, e um conjunto de regras de produção, que expandem símbolos não-terminais numa seqüência de símbolos terminais e não-terminais [3]. Além disso, a gramática deve ter um símbolo não-terminal inicial. Por exemplo, a gramática a seguir define um fragmento da língua portuguesa: Gramática 1. f rase sujeito predicado sujeito artigo substantivo predicado verbo artigo substantivo artigo o substantivo gato rato verbo caçou Nessa gramática, os símbolos terminais são o, gato e rato, sendo os demais símbolos não-terminais 3. A regra de produção frase sujeito predicado estabelece que uma frase é composta de um sujeito seguido de um predicado; enquanto a regra substantivo gato rato estabelece que um substantivo pode ser a palavra gato ou rato. Além disso, para essa gramática, o símbolo não-terminal inicial será f rase. Nas gramáticas livres de contexto (do tipo que consideramos nesse artigo), o lado esquerdo de uma regra de produção será sempre um único símbolo nãoterminal, enquanto o lado direito pode conter símbolos terminais e não terminais. Como veremos a seguir, uma gramática pode ser usada tanto para reconhecimento, ou seja, para decidir se essa frase pertence à linguagem definida pela gramática; quanto para geração, ou seja, para construir uma frase pertencente à linguagem definida pela gramática. 1 Usaremos a gramática de cláusulas definidas da linguagem Prolog. 2 Nesse artigo, tratamos apenas de gramáticas livres de contexto. 3 Os símbolos não-terminais são escritos em itálico.
3 Processamento de Linguagem Natural Reconhecimento de frases Há duas estratégias que podem ser aplicadas para o reconhecimento de frases: Top-down: com essa estratégia, sintetizamos a frase a ser reconhecida aplicando as regras de produção de forma progressiva, em profundidade, a partir do símbolo inicial da gramática. Por exemplo, para reconhecer a frase o gato caçou o rato, procedemos da seguinte maneira: frase sujeito predicado artigo substantivo predicado o substantivo predicado o gato predicado o gato verbo artigo substantivo o gato caçou artigo substantivo o gato caçou o substantivo o gato caçou o rato Como a frase pôde ser sintetizada, a partir das regras de produção da gramática, concluímos que ela pertence à linguagem definida pela gramática. O processo de reconhecimento top-down também pode ser representado por meio de uma árvore sintática (gerada de forma semelhante a uma árvore de busca em profundidade, conforme a numeração indica), veja: 1-frase 2-sujeito 5-predicado / \ / \ 3-artigo 4-substantivo 6-verbo 7-artigo 8-substantivo "o" "gato" "caçou" "o" "rato" Numa árvore sintática, as folhas são sempre símbolos terminais (i.e. palavras da linguagem), enquanto os demais nós são sempre símbolos não-terminais (i.e. nomes da unidades componentes da frase). Considere agora a frase o gato rato caçou o : frase sujeito predicado artigo substantivo predicado o substantivo predicado o gato predicado o gato verbo artigo substantivo Como não há na gramática uma regra que seja capaz de derivar o símbolo terminal rato, a partir do símbolo não-terminal verbo, o reconhecimento fracassa.
4 4 S. L. Pereira Exercício 1 Com base na gramática definida a seguir, faça o reconhecimento top-down das frases um gato mia e um rato corre desesperadamente e desenhe as árvores sintáticas. f rase sujeito predicado sujeito artigo substantivo predicado verbo intransitivo predicado verbo intransitivo advérbio modal artigo um substantivo gato rato verbo intransitivo mia corre advérbio modal desesperadamente Botton-up: com essa estratégia derivamos o símbolo inicial da gramática, a partir da frase a ser reconhecida, aplicando as regras de produção de forma regressiva. Por exemplo, para reconhecer a frase o gato caçou o rato, fazemos: o gato caçou o rato artigo gato caçou o rato artigo substantivo caçou o rato sujeito caçou o rato sujeito verbo o rato sujeito verbo artigo rato sujeito verbo artigo substantivo sujeito predicado frase Como conseguimos obter o símbolo não-terminal inicial da gramática, a partir da frase sendo reconhecida, concluímos que essa frase pertence à linguagem definida pela gramática. Vejamos um outro exemplo o gato rato caçou o : o gato rato caçou o artigo gato rato caçou o artigo substantivo rato caçou o sujeito rato caçou o sujeito substantivo caçou o sujeito substantivo verbo o sujeito substantivo verbo artigo Como não há na gramática uma regra que seja capaz de reconhecer a seqüência substantivo verbo artigo como um predicado, o reconhecimento fracassa. Exercício 2 Refaça o exercício 1, usando reconhecimento botton-up.
5 Processamento de Linguagem Natural Geração de frases O processo de geração de frases funciona de forma semelhante ao reconhecimento top-down, exceto pelo fato que, quando um símbolo não-terminal pode ser expandido por duas ou mais regras de produção distintas, devemos criar uma ramificação para cada possibilidade. Como exemplo, vamos gerar as frases da linguagem definida pela Gramática 1. frase sujeito predicado artigo substantivo predicado "o" substantivo predicado "o gato" predicado "o rato" predicado "o gato" verbo artigo substantivo "o rato" verbo artigo substantivo "o gato caçou" artigo substantivo "o rato caçou" artigo substantivo "o gato caçou o" substantivo "o rato caçou o" substantivo "o gato caçou o gato" "o gato caçou o rato" "o rato caçou o gato" "o rato caçou o rato" Exercício 3 Gere todas as frases da linguagem definida pela gramática a seguir: f rase sujeito predicado sujeito pronome pessoal nome próprio predicado verbo intransitivo pronome pessoal voc^e nome próprio Zé verbo intransitivo come dorme 3 Gramática de cláusulas definidas Prolog é a linguagem ideal para o processamento de linguagem natural [2]. Usando um recurso embutido no compilador, conhecido como notação Dcg, podemos escrever gramáticas que podem ser utilizadas tanto para o reconhecimento, quanto para a geração de frases, de forma automática. Nessa notação, as regras de produção são codificadas da seguinte forma: Gramática 2. Usando a notação Dcg frase --> sujeito, predicado. sujeito --> artigo, substantivo. predicado --> verbo, artigo, substantivo. artigo --> [o]. substantivo --> [gato] [rato]. verbo --> [caçou].
6 6 S. L. Pereira Reconhecimento automático de frases: Compilando essa gramática com o Swi-Prolog, podemos entrar no modo de consulta e digitar:?- frase([o,gato,caçou,o,rato],[]). A essa consulta, o sistema responderá yes, indicando que a frase foi reconhecida como pertencente à linguagem definida pela gramática. Para reconhecer essa frase, o Swi-Prolog procede da seguinte maneira:?- frase([o,gato,caçou,o,rato],[]) (expandindo frase)?- sujeito([o,gato,caçou,o,rato],r0), predicado(r0,[]) (expandindo sujeito)?- artigo([o,gato,caçou,o,rato],r1), substantivo(r1,r0), predicado(r0,[]) (expandindo artigo: consome "o")?- substantivo([gato,caçou,o,rato],r0), predicado(r0,[]) (expandindo substantivo: consome "gato")?- predicado([caçou,o,rato],[]) (expandindo predicado)?- verbo([caçou,o,rato],r2), artigo(r2,r3), substantivo(r3,[]) (expandindo verbo: consome "caçou")?- artigo([o,rato],r3), substantivo(r3,[]) (expandindo artigo: consome "o")?- substantivo([rato],[]) (expandindo substantivo: consome "rato") sucesso Observe que cada predicado tem dois parâmetros: o primeiro representa a lista de palavras a serem reconhecidas e o segundo representa a lista de palavras ainda não reconhecidas. O reconhecimento termina com sucesso se todas as palavras da frase podem ser reconhecidas (consumidas) durante a busca.
7 Processamento de Linguagem Natural 7 Vejamos, agora, um exemplo onde a frase não pode ser reconhecida. Digitando?- frase([o,gato,rato,caçou,o],[]). o sistema responderá no. Para decidir que essa frase não está de acordo com a gramática, o sistema procede da seguinte forma:?- frase([o,gato,rato,caçou,o],[]) (expandindo frase)?- sujeito([o,gato,rato,caçou,o],r0), predicado(r0,[]) (expandindo sujeito)?- artigo([o,gato,rato,caçou,o],r1), substantivo(r1,r0), predicado(r0,[]) (expandindo artigo: consome "o")?- substantivo([gato,rato,caçou,o],r0), predicado(r0,[]) (expandindo substantivo: consome "gato")?- predicado([rato,caçou,o],[]) (expandindo predicado)?- verbo([rato,caçou,o],r2), artigo(r2,r3), substantivo(r3,[]) (impossível consumir "rato" como verbo) fracasso Note que o sistema não consegue reconhecer a frase porque, para expandir o símbolo não-terminal verbo, o sistema precisa consumir um verbo, que deveria ser a primeira palavra da lista. Entretanto, como a lista inicia com rato, e essa palavra não é um verbo, o sistema fracassa. Exercício 4 Usando a notação Dcg, especifique uma gramática capaz de reconhecer as frases o gato e o rato correm pela casa, o gato e o rato dormem pela rua e o gato e o rato dormem silenciosamente. Geração automática de frases: Além de reconhecer, usando o Swi-Prolog, podemos gerar todas as frases da linguagem definida pela gramática, conforme exemplificado a seguir:?- frase(f,[]). F = [o, gato, caçou, o, gato] ; F = [o, gato, caçou, o, rato] ; F = [o, rato, caçou, o, gato] ; F = [o, rato, caçou, o, rato] ; no O processo de geração é semelhante ao processo de reconhecimento; entretanto, em vez de consumir palavras durante as expansões, o sistema as produz.
8 8 S. L. Pereira Exercício 5 Usando a notação Dcg, codifique as gramáticas dos exercícios 1 e 3, e utilize o Swi-Prolog para gerar todas as frases das linguagens definidas por essas gramáticas. 3.1 Concordância de gênero Agora, vamos ampliar a gramática com artigos e substantivos femininos: Gramática 3. Gramática ampliada com gênero feminino frase --> sujeito, predicado. sujeito --> artigo, substantivo. predicado --> verbo, artigo, substantivo. artigo --> [o] [a]. substantivo --> [gato] [gata] [rato] [rata]. verbo --> [caçou]. Usando a gramática para reconhecer a frase o gata caçou a rato, obtemos:?- frase([o,gata,caçou,a,rato],[]). yes Evidentemente, deveríamos esperar que a resposta fosse no. Entretanto, da forma como foi definida, a gramática não tem como garantir que artigos e substantivos concordem em gênero. Para tanto, precisamos modificar a gramática, impondo restrições de gênero: Gramática 4. Gramática ampliada com concordância de gêneros frase --> sujeito, predicado. sujeito --> artigo(g), substantivo(g). predicado --> verbo, artigo(g), substantivo(g). artigo(m) --> [o]. artigo(f) --> [a]. substantivo(m) --> [gato] [rato]. substantivo(f) --> [gata] [rata]. verbo --> [caçou]. A modificação que fizemos consiste em definir os gêneros dos artigos e substantivos (m - masculino e f - feminino) e exigir que eles tenham o mesmo gênero G, quando aparecem juntos no sujeito ou no predicado de uma frase. Para ver como a restrição de gênero funciona, analise o processo de reconhecimento do sujeito o gato :
9 Processamento de Linguagem Natural 9?- sujeito([o,gato],[]) (expandindo sujeito)?- artigo(g,[o,gato],r0), substantivo(g,r0,[]) (expandindo artigo: consome "o" e deduz G="m")?- substantivo(m,[gato],[]) (expandindo substantivo: consome "gato" do g^enero "m") sucesso Agora compare com o processo de reconhecimento do sujeito o gata :?- sujeito([o,gata],[]) (expandindo sujeito)?- artigo(g,[o,gata],r0), substantivo(g,r0,[]) (expandindo artigo: consome "o" e deduz G="m")?- substantivo(m,[gata],[]) (impossível consumir "gata" do g^enero "m") fracasso Na verdade, na linguagem definida pela Gramática 4, haverá apenas frases com artigo concordando com substantivo em gêrero:?- frase(f,[]). F = [o, gato, caçou, o, gato] ; F = [o, gato, caçou, o, rato] ; F = [o, gato, caçou, a, gata] ; F = [o, gato, caçou, a, rata] ; F = [o, rato, caçou, o, gato] ; F = [o, rato, caçou, o, rato] ; F = [o, rato, caçou, a, gata] ; F = [o, rato, caçou, a, rata] ; F = [a, gata, caçou, o, gato] ; F = [a, gata, caçou, o, rato] ; F = [a, gata, caçou, a, gata] ; F = [a, gata, caçou, a, rata] ; F = [a, rata, caçou, o, gato] ; F = [a, rata, caçou, o, rato] ; F = [a, rata, caçou, a, gata] ; F = [a, rata, caçou, a, rata] ; no Exercício 6 Modifique a Gramática 4, acrescentando também os artigos indefinidos um e uma. Em seguida, utilize o Swi-Prolog para gerar todas frases dessa nova linguagem.
10 10 S. L. Pereira 3.2 Concordância de número Agora, vamos ampliar mais um pouco a nossa gramática, incluindo plural: Gramática 5. Gramática ampliada com número frase --> sujeito, predicado. sujeito --> artigo(g), substantivo(g). predicado --> verbo, artigo(g), substantivo(g). artigo(m) --> [o] [os]. artigo(f) --> [a] [as]. substantivo(m) --> [gato] [gatos] [rato] [ratos]. substantivo(f) --> [gata] [gatas] [rata] [ratas]. verbo --> [caçou] [caçaram]. Como podemos esperar, essa gramática não fará concordância de número:?- frase([os,gato,caçou,a,rata],[]). yes Para corrigi-la, também vamos precisar impor restrições quanto ao número: Gramática 6. Gramática ampliada com concordância de número frase --> suj(n), pred(n). sujeito(n) --> artigo(n,g), substantivo(n,g). predicado(n) --> verbo(n), artigo(m,g), substantivo(m,g). artigo(s,m) --> [o]. artigo(p,m) --> [os]. artigo(s,f) --> [a]. artigo(p,f) --> [as]. substantivo(s,m) --> [gato] [rato]. substantivo(p,m) --> [gatos] [ratos]. substantivo(s,f) --> [gata] [rata]. substantivo(p,f) --> [gatas] [ratas]. verbo(s) --> [caçou]. verbo(p) --> [caçaram]. Observe que, na regra de produção para frase, o número do sujeito N deve concordar com o número do verbo no predicado. De forma análoga, na regra para sujeito, artigo e substantivo devem ter o mesmo número N. Entretanto, na regra para predicado, o número do verbo N não precisa, necessariamente, concordar com o número M, do artigo e substantivo que seguem o verbo.
11 Processamento de Linguagem Natural 11 Veja alguns exemplos de reconhecimento com concordância de número:?- frase([os,gato,caçou,a,rata],[]). no?- frase([os,gatos,caçou,a,rata],[]). no?- frase([os,gatos,caçaram,a,rata],[]). yes Exercício 7 Modifique a Gramática 6, de modo a reconhecer sujeito composto como sendo plural. Por exemplo, para o sujeito composto o gato e a gata o verbo caçar deve estar no plural. 3.3 Tempo verbal É possível ampliar ainda mais a gramática para considerar tempos verbais. Por simplicidade, vamos considerar apenas passado, presente e futuro simples. Gramática 7. Gramática ampliada com tempo verbal frase(t) --> sujeito(n), predicado(t,n). sujeito(n) --> artigo(n,g), substantivo(n,g). predicado(t,n) --> verbo(t,n), artigo(m,g), substantivo(m,g). artigo(s,m) --> [o]. artigo(p,m) --> [os]. artigo(s,f) --> [a]. artigo(p,f) --> [as]. substantivo(s,m) --> [gato] [rato]. substantivo(p,m) --> [gatos] [ratos]. substantivo(s,f) --> [gata] [rata]. substantivo(p,f) --> [gatas] [ratas]. verbo(pas,s) --> [caçou]. verbo(pas,p) --> [caçaram]. verbo(pre,s) --> [caça]. verbo(pre,p) --> [caçam]. verbo(fut,s) --> [caçará]. verbo(fut,p) --> [caçar~ao]. Nessa nova versão da gramática, a cada forma do verbo caçar é associado um tempo verbal. Assim, quando gerarmos uma frase, podemos indicar o tempo verbal da frase a ser gerada. Analogamente, quando o sistema reconhecer uma frase, ele indicará o tempo verbal dessa frase.
12 12 S. L. Pereira Veja alguns exemplos de reconhecimento e geração de frases, considerando o tempo verbal:?- frase(t,[o,gato,caçou,o,rato],[]). T = pas yes?- frase(pre,f,[]). F = [o,gato,caça,o,gato] <enter> yes?- frase(fut,f,[]). F = [o,gato,caçará,o,gato] <enter> yes Exercício 8 Especifique uma gramática para considerar pessoa e tempo verbal. Considere que o sujeito pode ser apenas um dos pronomes pessoais (eu, tu, ele, nós, vós, eles) e que o verbo é falar. Em seguida, utilize o Swi-Prolog para gerar a conjugação desse verbo no tempo presente. 3.4 Construção da árvore sintática Vamos fazer uma última modificação na nossa gramática para que ela, ao reconhecer ou gerar uma frase, construa também a sua árvore sintática. Gramática 8. Construindo a árvore sintática 4 frase(t,fra(s,p)) --> sujeito(n,s), pred(t,n,p). sujeito(n,suj(a,s)) --> artigo(n,g,a), subst(n,g,s). pred(t,n,prd(v,a,s)) --> verbo(t,n,v), artigo(m,g,a), subst(m,g,s). artigo(s,m,art(o)) --> [o]. artigo(p,m,art(os)) --> [os]. artigo(s,f,art(a)) --> [a]. artigo(p,f,art(as)) --> [as]. subst(s,m,sub(x)) --> [X], {member(x,[gato,rato])}. subst(p,m,sub(x)) --> [X], {member(x,[gatos,ratos])}. subst(s,f,sub(x)) --> [X], {member(x,[gata,rata])}. subst(p,f,sub(x)) --> [X], {member(x,[gatas,ratas])}. verbo(pas,s,ver(caçou)) --> [caçou]. verbo(pas,p,ver(caçaram)) --> [caçaram]. verbo(pre,s,ver(caça)) --> [caça]. verbo(pre,p,ver(caçam)) --> [caçam]. verbo(fut,s,ver(caçará)) --> [caçará]. verbo(fut,p,ver(caçar~ao)) --> [caçar~ao]. 4 As condições entre chaves são executadas como código normal do Prolog.
13 Processamento de Linguagem Natural 13 Veja um exemplo de árvore sintática construída a partir da Gramática 8:?- frase(pre,a,[o,gato,caça,o,rato],[]). A = fra(suj(art(o), sub(gato)), prd(ver(caça), art(o), sub(rato))) Yes O valor na variável A deve ser interpretado como a seguinte árvore sintática: fra suj prd / \ / \ art sub ver art sub o gato caça o rato Exercício 9 Modifique a gramática a seguir, de modo que ela possa ser usada para construir as árvores sintáticas das frases reconhecidas por ela. s --> sn, sv. sn --> art, subst. sv --> vi vt, sn. art --> [o]. subst --> [gato] [rato]. vi --> [correu]. vt --> [comeu]. Referências 1. Covington, M. NLP for Prolog Programmers, Prentice-Hall, Covington, M., Nute, D. and Vellino, A. Prolog Programming in Depth, Prentice-Hall, Rich, E. and Knight, K. Inteligência Artificial, 2 a ed., Makron Books, Russell, S. and Norvig, P. Artificial Intelligence - a modern approach, Prentice- Hall, 1995.
Processamento de Linguagem Natural
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
Processamento de Linguagem Natural
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 de linguagem natural (PLN)
Processamento de Linguagem Natural
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 de linguagem natural (PLN)
Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Gramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Gramáticas Livres de Contexto Parte 1
Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável
Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl
Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl Roteiro 1. Introdução 2. Objetivos 3. Análise Essencial de Sistemas 4.
Gramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
Apresentação 11 Lista de abreviações 13. Parte I: NATUREZA, ESTRUTURA E FUNCIONAMENTO DA LINGUAGEM
Sumário Apresentação 11 Lista de abreviações 13 Parte I: NATUREZA, ESTRUTURA E FUNCIONAMENTO DA LINGUAGEM O homem, a linguagem e o conhecimento ( 1-6) O processo da comunicação humana ( 7-11) Funções da
Análise Sintática. Fabiano Baldo
Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais
Python e sua sintaxe LNCC UFRJ
Python e sua sintaxe LNCC UFRJ Linguagens naturais e formais Linguagens naturais Linguagem formal Um conjunto finito e não-vazio cujos elementos são símbolos Qualquer cadeia finita de símbolos justapostos
INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: [email protected] URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.
Morfologia, Sintaxe e Morfossintaxe substantivo, verbo, Morfologia. Morfologia classes gramaticais
Língua Portuguesa Nesta bimestral você aprendeu sobre diversos conceitos como Morfologia, Sintaxe e Morfossintaxe, e partir desses conceitos vamos revisar os principais assuntos estudados. Quando falamos
Inteligência Artificial. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional
Inteligência Artificial Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional OBJETIVOS : Introduzir o estudo Processamento de Linguagem Natural. Histórico O processamento de linguagem natural, nasceu
Língua Portuguesa. Professoras: Fernanda e Danúzia
Língua Portuguesa Professoras: Fernanda e Danúzia Nesta bimestral você aprendeu sobre diversos conceitos como Morfologia, Sintaxe e Morfossintaxe, e partir desses conceitos vamos revisar os principais
Familiarização com a ferramenta JavaCC
Ficha nº 2 Familiarização com a ferramenta JavaCC Estrutura do ficheiro JavaCC O JavaCC utiliza um ficheiro com a extensão.jj, onde são descritos, pelo utilizador, o léxico e a sintaxe da linguagem e gera
Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Prentice-Hall.
Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Prentice-Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado
LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO
LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador
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 Hierarquia de Chomsky Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução
Definições Exemplos de gramáticas
Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos
Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória
Variáveis e Memória Revisão Estudamos, na Introdução, que os programas de computador implementam algoritmos, os quais manipulam um conjunto de dados para produzir um resultado. O algoritmo é um conjunto
Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1
Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,
PORTUGUÊS CONCORDÂNCIA NOMINAL (ESTUDO DIRIGIDO)
Instituto de Educação Infantil e Juvenil 9º ANO Inverno, 2017. Londrina, de. Nome: PORTUGUÊS CONCORDÂNCIA NOMINAL (ESTUDO DIRIGIDO) Leia a frase abaixo e reescreva-a utilizando as normas gramaticais. O
Gramáticas e Linguagens independentes de contexto
Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela
Comunicação. Capítulo 22
Comunicação Capítulo 22 Sumário Comunicação Gramáticas Análise sintáctica (parsing) Comunicação Comunicar consiste em trocar informação através da produção e percepção de sinais, pertencentes a um sistema
6 Atributos. A dívida da empresa subiu.
6 Atributos Para buscar o sentimento de um texto automaticamente precisamos encontrar boas pistas ao longo do discurso. Uma grande variedade de palavras e expressões possui conotação positiva ou negativa,
Análise Sintática Introdução
Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais
Gramática de Montague
Gramática de Montague Apresentação Inicial Luiz Arthur Pagani 1 There is in my opinion no important theoretical dierence between natural languages and the articial languages of logicians; indeed I consider
Desenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
28/04/2011 SINTAXE PARTE 1. SCC5908 Tópicos em Processamento de Língua Natural. Thiago A. S. Pardo SINTAXE E GRAMÁTICAS
SINTAXE PARTE 1 SCC5908 Tópicos em Processamento de Língua Natural Thiago A. S. Pardo SINTAXE E GRAMÁTICAS 1 DEFINIÇÃO Forma como as palavras se organizam em uma sentença Longa história: gramática do Sânscrito,
Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens
Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar
Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/01)
Introdução Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/01) Mário S. Alvim ([email protected]) Introdução DCC-UFMG (2018/01) 1 / 18 O que é a Teoria da
Língua Portuguesa A MORFOSSINTAXE. Profª. Fernanda Machado
Língua Portuguesa A MORFOSSINTAXE Profª. Fernanda Machado Nesta bimestral você está aprendendo sobre diversos conceitos como Morfologia e Sintaxe, e partir desses conceitos vamos revisar os principais
Gramáticas ( [HMU00], Cap. 5.1)
Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
Capítulo 1 Linguagens e processadores
1. Linguagens Capítulo 1 Linguagens e processadores 2. Processamento de Linguagens: DI-UBI 2017/2018 1/28 Linguagens Linguagens Processamento de Linguagens: DI-UBI 2017/2018 2/28 Linguagens 1. Definição
COMPILADORES. Análise semântica. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise semântica Tradução dirigida pela sintaxe Parte 02 Prof. [email protected] Sumário Data 18/11/2013 Análise
Aula 8: Gramáticas Livres de Contexto
Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,
Compiladores. Fabio Mascarenhas
Compiladores Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Compiladores x Interpretadores Offline x Online Um compilador transforma um programa executável de uma linguagem fonte
Faculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão
2. Criação de Algoritmos
2. Criação de Algoritmos Neste capítulo, será visto o desenvolvimento de um algoritmo, regras, etapas e simbologias. 2.1 O que é Pseudocódigo? Fig.1: Ilustração de algoritmo Fonte: Internet Os algoritmos
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected]
Compiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior [email protected] Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro
Inteligência Artificial
Repescagem Segundo Teste 31 de Janeiro de 2014 10:30-12:00 1.º Enunciado Esta prova é constituída por 5 enunciados separados. Preencha cuidadosamente o nome e número na primeira página de cada um dos enunciados.
Introdução ao Processamento de Línguas Naturais (PLN) SCC0230 Introdução à IA. Prof. Thiago A. S. Pardo. Em oposição às linguagens artificiais
Introdução ao Processamento de Línguas Naturais () SCC0230 Introdução à IA Prof. Thiago A. S. Pardo 1 Língua Natural Língua humana Em oposição às linguagens artificiais Matemática, lógica, linguagens de
COMPILADORES. Análise semântica. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise semântica Parte 01 Prof. [email protected] Sumário Data 18/11/2013 Análise sintática Parte 01 25/11/2013
Tradução Dirigida Pela Sintaxe
Tradução Dirigida Pela Sintaxe Julho 2006 Sugestão de leitura: Livro do Aho, Sethi, Ullman (dragão) Seções 5.1 5.5 Tradução dirigida pela sintaxe É uma técnica que permite realizar tradução (geração de
Sumarizando: o que é uma língua. Métodos para seu estudo...44
sumário APRESENTAÇÃO...13 1. O que se entende por língua Estudando a língua portuguesa...17 1.1 O Vocabulário: nascimento e morte das palavras. Consultando um dicionário...20 1.2 A Semântica: o sentido
Linguagens Livres do Contexto. Adaptado de H. Brandão
Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Introdução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Conferência Árvores de resolução SLD
Inteligência Artificial Conferência Árvores de resolução SLD O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Construir uma árvore de resolução SLD a partir de um objetivo do PROLOG, aplicando o
IBM1088 Linguagens Formais e Teoria da
IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com
Estrutura geral de um compilador programa-fonte
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke
TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE Professora: Isabela C. Damke [email protected] Linguagem de Programação Uma linguagem de programação é um conjunto de símbolos (
Exercícios de múltipla escolha
Exercícios de múltipla escolha 1-A classe gramatical da palavra alegria é: a-substantivo b-adjetivo c-advérbio d-pronome e-sujeito 2-A função sintática da palavra alegria é: a-predicado b-predicativo do
Morfossintaxe: forma e função
O Substantivo Substantivo são palavras que designam seres visíveis ou não -, ações, estados, sentimentos, desejos, idéias. Morfossintaxe: forma e função Falar é uma atividade tão habitual e natural, que
Linguagens de Programação
45 Linguagens de Programação O paradigma de programação imperativo está diretamente atrelado à arquitetura básica dos computadores sobre os quais os programas eram executados. Boa parte dos computadores
Compiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa
Capítulo1. Capítulo2. Índice A LÍNGUA E A LINGUAGEM O PORTUGUÊS: uma língua, muitas variedades... 15
Capítulo1 Capítulo2 A LÍNGUA E A LINGUAGEM............................................. 9 Linguagem: aptidão inata.............................................. 10 Funções.............................................................
Aula 02. Prof. Diemesleno Souza Carvalho
Interface Homem-Máquina Aula 02 Prof. Diemesleno Souza Carvalho [email protected] http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade I - Introdução à Interface
01/10/2010 SINTAXE PARTE 3. SCC5869 Tópicos em Processamento de Língua Natural. Thiago A. S. Pardo ATRIBUTOS E UNIFICAÇÃO
SINTAXE PARTE 3 SCC5869 Tópicos em Processamento de Língua Natural Thiago A. S. Pardo ATRIBUTOS E UNIFICAÇÃO 1 GRAMATICALIDADE Exemplo simples S SN SV SN pronome art subst SV verbo pronome ele eles ela
Fundamentos de Programação
Fundamentos de Programação Primeiro Teste 6 de Novembro de 200 09:00 0:30 SOLUÇÃO. (.0) Escolha a única afirmação incorrecta. Uma resposta certa vale valor e uma resposta errada desconta 0.4 valores. A.
AGRUPAMENTO de ESCOLAS de SANTIAGO do CACÉM Ano Letivo 2015/2016 PLANIFICAÇÃO ANUAL
AGRUPAMENTO de ESCOLAS de SANTIAGO do CACÉM Ano Letivo 2015/2016 PLANIFICAÇÃO ANUAL Documento(s) Orientador(es): Programa e Metas Curriculares de Português 1º CICLO Português- 3º ano TEMAS/DOMÍNIOS CONTEÚDOS
Cálculo proposicional
O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais
PORTUGUÊS III Semestre
Universidad Nacional Autónoma de México Facultad de Filosofía y Letras Colegio de Letras Modernas Letras Portuguesas PORTUGUÊS III Semestre 2019-1 Profa. Cristina Díaz Padilla Horário: segunda a sexta
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Prof. A. G. Silva. 21 de setembro de Prof. A. G. Silva Programação em Lógica 21 de setembro de / 1
Programação em Lógica Prof. A. G. Silva 21 de setembro de 2017 Prof. A. G. Silva Programação em Lógica 21 de setembro de 2017 1 / 1 I Exercícios sobre bases dinâmicas II Gramáticas Prof. A. G. Silva Programação
Gramá3ca Livre de Contexto (GLC)
Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de
