1 / 85

Processamento de Linguagem Natural Ilson Wilmar Rodrigues Filho, Dr. inf.ufsc.br/~ilson

Processamento de Linguagem Natural Ilson Wilmar Rodrigues Filho, Dr. http://www.inf.ufsc.br/~ilson ilson@inf.ufsc.br João Bosco da Mota Alves, Dr. jbosco@inf.ufsc.br. Bibliografia.

caden
Download Presentation

Processamento de Linguagem Natural Ilson Wilmar Rodrigues Filho, Dr. inf.ufsc.br/~ilson

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Processamento de Linguagem Natural Ilson Wilmar Rodrigues Filho, Dr. http://www.inf.ufsc.br/~ilson ilson@inf.ufsc.br João Bosco da Mota Alves, Dr. jbosco@inf.ufsc.br

  2. Bibliografia BARROS, F. A.; ROBIN, J. – Processamento de Linguagem Natural. Departamento de Informática, Universidade Federal de Pernambuco, Recife, março de 1997. FERNANDO, P.; MENEZES, B. – Linguagens Formais e Autômatos. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto Editores, 1997. GAL, A.; LAPALME, G. – Prolog for Natural Language Processing. John Wiley & Sons Ltd., 1991. GAZDAR, G.; MELLISH, C. – Natural Language in Prolog. Addison-Weslwy Publishing Company, 1989, JOSÉ NETO, J. – Introdução à Compilação. Rio de Janeiro. LTC – Livros Técnicos e Científicos Editora S. A., 1987.

  3. Bibliografia MONARD, M. C. & NICOLETTI, M. do C. – Programas Prolog para Processamentode Listas e Aplicações, Janeiro de 1993 – Versão 2.0 MOREIRA, N. – Processamento de Linguagem Natural, Mestrado de Lingüística Portuguesa Descritiva, Faculdade de Letras da Universidade do Porto NUNES, M. das G. V. at al. – Introdução ao Processamento das Línguas Naturais. São Carlos: Notas Didáticas do ICMC No. 38, Instituto de Ciências Matemáticas e de Computação, 1999. PINERO, R. B. – Lenguajes Formales y Autómatas. Centro de Inteligencia Artificial, Instituto Tecnológico y de Estudios Superiores de Monterrey. Enero de 1997. TOWSEND, C. – Técnicas Avançadas em Turbo Prolog, Rio de Janeiro: Editora Campus, 1990.

  4. Avaliação Exercícios para serem resolvidos individualmente e um trabalho (que pode ser feito em grupo) que deve ser entregue no dia da apresentação (seminário). Média Final = N1 x 0.4 + N2 x 0.3 + N3 x 0.3 onde: N1 = Média Aritmética dos exercícios N2 = Nota do Trabalho N3 = Nota da Apresentação do trabalho (seminário)

  5. Processamento de Linguagem Natural O processamento de linguagem natural é o estudo dos sistemas computacionais para compreensão e geração de línguas naturais faladas e escritas.

  6. Divisões do PLN • lingüística computacionalou processamento de linguagem natural: tratamento da língua escrita. • reconhecimento e síntese de voz: tratamento da língua falada.

  7. Outras Denominações • Processamento de Linguagem Natural: Inteligência Artificial • Lingüística Computacional: Lingüística • Outros termos propostos: Processamento Computacional das Línguas, Engenharia da Linguagem. Especificamente para a língua portuguesa tem sido sugerido: Processamento Computacional do Português, Processamento Computacional da Língua Portuguesa.

  8. Histórico • PLN nasceu com o computador: • 2a Guerra: militares americanos tinham interesse de traduzir automaticamente conversações gravadas dos russos; • A comunidade científica precisava de traduções de trabalhos estrangeiros - a cada dia fazia-se novas descobertas científicas.

  9. Tradução Automática • A possibilidade de fazer tradução automática de publicações sobre tecnologia e ciência deixou os cientistas animados. • Essa foi uma das razões para que pesquisas fossem financiadas na área.

  10. Primeiros Sistemas de PLN • Primeiros trabalhos sobre PLN: • tradução automática - começaram em 1946. Eram trabalhos sobre tradução russo-inglês.  tradução palavra por palavra;  traduções: listas de palavras chaves.

  11. Histórico 1948:Preocupação com as regras de construção de frases foi levada em consideração (num trabalho do inglês Pichens).  Primeiro congresso sobre tradução automática foi realizado no ano de 1952, nos EUA, no MIT – Massachusetts Institute of Technology com a participação de 18 pesquisadores.

  12. O Relatório ALPAC  Relatório ALPAC (Automatic Language Processing Advisory Comitee) - relatório encomendado pelo governo norte-americano à Academia de Ciências daquele país sobre as pesquisas em tradução automática. O relatório publicado em 1966 teve um teor fortemente negativo que provocou o corte das verbas de financiamento

  13. Renascimento do Interesse na Tradução Automática  Anos 80: renascimento do interesse na tradução automática, na Europa, em função da criação da Comunidade Européia.  1982: projeto EUROTRA - sistema de tradução automática para nove línguas de países que constituíam a Comunidade Européia.

  14. Modelos Conceituais Modelos formais ou modelos baseados em regras; Modelos estatísticos; Modelos conexionistas

  15. Áreas de Aplicação de técnicas de PLN (1) Acesso a banco de dados; (2) Recuperação de informação; (3) Extração de informação; (4) Tradução automática; (5) Geração de resumos.

  16. Acesso a Banco de Dados  Acesso a banco de dados são feitos usualmente utilizando-se “query languages”

  17. Recuperação de Informação  Recuperação de Informação é o estudo e desenvolvimento de técnicas que permitam encontrar documentos relevantes de uma coleção de documentos.

  18. Recuperação de Informação

  19. Extração de Informação Na extração de informação procura-se por informações diretamente nos textos , mostrando a informação ao invés de documentos.  Técnicas utilizadas: baseadas na busca de determinadas palavras chaves (denominadas de tags), tais como - Nome de pessoas - Nome de empresas;

  20. Tradução Automática  Tradução automática é a tradução por computador de frases dadas numa língua para outra língua.  Os primeiros trabalhos utilizavam dicionários bilingües e faziam tradução palavra a palavra.  A teoria lingüística começou a ser incorporada nos sistemas de tradução automática com os trabalhos de Noam Chomsky.

  21. Gramática  Segundo Chomsky, o conhecimento que o falante de uma língua natural teria da mesma poderia ser descrita através de um conjunto finito de regras. Tais regras seriam universais, ou seja, valeriam para todas as línguas. Elas poderiam gerar um número infinito de frase de uma língua.  Uma frase seria gramatical (pertencente à língua) ou agramatical (não pertencente à língua).

  22. Problemas em Processamento de Linguagem Natural  Homonímia Lexical: um exemplo clássico é: manga = parte de uma peça de vestuário destinada a cobrir os braços / manga = fruto da mangueira

  23. Problemas em Processamento de Linguagem Natural  Ambigüidade sintática: a sentença aceita duas análises sintáticas diferentes. Exemplo: Viajando pela primeira vez para a Europa, cruzei com um grupo de jovens brasileiros. Quem viajou pela primeira vez? Eu ou o grupo de jovens brasileiros?

  24. Problemas em Processamento de Linguagem Natural  Ambigüidade de Escopo: Percebe-se às vezes que a sentença indica dois ou mais escopos. Exemplos: Apesar de ser exímio advogado, o procurador da Universidade não cumpre todas as disposições estatutárias. Essa sentença poderia significar que: - O procurador descumpre todas as disposições (Des- cumpre todas = tem por norma violar a legislação) • O procurador cumpre as disposições, mas não todas (não tem por norma violar a legislação, mas comete falhas).

  25. Problemas em Processamento de Linguagem Natural  Diferentes correferências possíveis: é a compatibilidade de um anafórico com dois ou mais antecedentes distintos, também chamada de ambigüidade anafórica. Exemplo: O ladrão entrou na casa do prefeito e tirou toda a sua roupa.

  26. Conhecimento do Mundo  A compreensão da linguagem natural implica num determinado grau de conhecimento do mundo. Exemplo: "as mães com filhos menores de dez anos". Tal expressão poderia er as seguintes representações lógicas: 1. {x | З y, M(x,y) ^ i(y) < 10}; 2. {x | З y, M(x,y) ^ i(x) < 10}; 3. {x | З (y,z), M(x,y) ^ M(x,z) ^ i(y) < 10} ^ i(x) < 10} onde: M(x,y) significa x é mãe de y; i(x) significa idade de x; i(y) significa idade de y.

  27. Fases do Desenvolvimento de um Sistema de PLN (1) Análise morfológica; (2) Análise Sintática; (3) Análise Semântica; (4) Análise do Discurso; (5) Análise Pragmática.

  28. Análise Morfológica  É o estudo da estrutura e da classificação das palavras em função do uso: substantivos artigos adjetivos advérbios pronomes preposições verbos conjunção numerais interjeição

  29. Regras morfológicas  As línguas naturais possuem regras morfológicas que produzem as possíveis variantes de cada palavra. Exemplo: construir tem como variantes, entre outras, construção e construído. Um pedaço da palavra (constru) se repete nas demais, que receberam a aposição do que chamamos de sufixos. Este pedaço de palavra que se mantém nas variantes, chamamos de lexemas.

  30. Análise Sintática  É o estudo das unidades básicas da linguagem - as sentenças.  Na fase da análise sintática, o sistema de processamento de linguagem natural verifica se a seqüência das palavras nas sentenças são válidas para a gramática utilizada.

  31. Análise Semântica Durante a análise semântica, utiliza-se a estrutura gerada durante a análise sintática para construir outras estruturas que representem o significado das sentenças.  Formalismos utilizados nesta fase do processamento de linguagem natural podem ser classificados em fracos e fortes:  Formalismos fracos: redes semânticas e frames;  Formalismos fortes: gramáticas de casos, dependência conceitual e scripts.

  32. Análise do Discurso  Análise do discurso é a identificação da estrutura do discurso. O discurso é também organizado em unidades constituídas por um mais elementos denominados segmentos do discurso.

  33. Análise Pragmática  Na análise pragmática são estudados os enunciados, ou seja, os significados das frases, sob o ponto de vista dos interlocutores. Esta análise é de suma importância principalmente nos diálogos onde é preciso determinar as intenções dos interlocutores.

  34. Fundamentos Matemáticos para o Processamento de Linguagem Natural

  35. Conjuntos Conjunto é uma coleção de objetos, distintos, de qualquer espécie (definição intuitiva).  Aos objetos do conjunto denominamos elementos do conjunto.  Os elementos do conjunto distinguem-se uns dos outros, ou seja, não há repetição de elementos no conjunto.

  36. Relação de Pertinência entre Elemento e Conjunto  Vamos supor o conjunto das vogais:: V = {a,e,i,o,u}  Para indicar que u pertence ao conjunto V e que b não pertence, escrevemos: u  V b  V

  37. Relação de Pertinência entre Elemento e Conjunto  Em Prolog, vamos utilizar listas: V = [a,e,i,o,u] pertence(u,[a,e,i,o,u]). not(pertence(b,[a,e,i,o,u]).

  38. Listas Uma lista em Prolog é uma coleção de elementos separados por vírgulas e dentro de colchetes. O primeiro elemento da lista é denominado cabeça de lista e os demais elementos formam uma lista denominada cauda da lista.

  39. A Relação pertence/2  a relação pertence/2pode ser estabelecida através de duas regras: (1) Um objeto pertence a uma lista se ele for a cabeça da lista; (2) Um objeto pertence a uma lista se ele pertence à cauda da lista.

  40. pertence/2 em Visual Prolog Domains stringlist = string* Predicates nondeterm pertence(string,stringlist) Clauses pertence(X,[X|_]). pertence(X,[_|T]):- pertence(X,T).

  41. pertence/2 - Exemplos  Goal pertence(u,[a,e,i,o,u]). yes  Goal not(pertence(b,[a,e,i,o,u])). yes

  42. pertence/2 - Exemplos  Se quisermos saber quais os objetos de um dado conjunto (por exemplo: [a,e,i,o,u]), perguntaríamos em Prolog: Goal pertence(X,[a,e,i,o,u]). X = a X = e X = i X = o X = u 5 Solutions

  43. Conjunto Vazio  Um conjunto sem objetos, denominado conjunto vazio, é denotado por {} ou . Para utilização de Prolog vamos representar o conjunto vazio por [], ou seja,  = []

  44. Subconjunto  Um dado conjunto A é subconjunto de B se e somente se todo elemento de A pertence também a B, que se representa como: A  B e dizemos que o conjunto Aestá contido no conjunto B, ou ainda que BcontémA: B  A

  45. Subconjunto em Prolog, teremos: esta_contido(A,B). contem(B,A).

  46. esta_contido/2 Domains stringlist = string* Predicates nondeterm esta_contido(stringlist,stringlist nondeterm pertence(string,stringlist) Clauses esta_contido([],_). esta_contido([H1|T1],L2):- pertence(H1,L2), esta_contido(T1,L2).

  47. esta_contido/2 - Exemplos Goal esta_contido([],[c,b,a]). yes Goal esta_contido([a,b],[c,b,a]). yes Goal esta_contido([a,b],[b,a]). yes Goal esta_contido([b,a],[c,b,a]). yes

  48. contem/2 Domains stringlist = string* Predicates nondeterm contem(stringlist,stringlist) nondeterm esta_contido(stringlist,stringlist) Clauses contem(B,A):- esta_contido(A,B).

  49. contem/2 - Exemplos Goal contem([a,b],[]). yes Goal A = [a], B = [a,e,i,o,u], contem(B,A). A = [a] B = [a,e,i,o,u] yes

  50. eh_subconjunto/2 Para verificar se um conjunto A é subconjunto de um conjunto B podemos criar o predicado eh_subconjunto/2, que responda sim ou não (yes/no) caso A seja subconjunto ou não de B. Basta utilizar uma das relações definidas (esta_contido/2 ou contem/2)

More Related