12/09/2011
1
1
Introdução ao Processamento de Línguas Naturais (PLN)
SCC0230 – Introdução à IA
Prof. Thiago A. S. Pardo
2
Língua Natural
� Língua humana
� Em oposição às linguagens artificiais
� Matemática, lógica, linguagens de programação de computadores
12/09/2011
2
3
PLN
� Processamento de Língua Natural
� Lingüística Computacional
� Engenharia das Línguas Naturais
� No Brasil, tradicionalmente visto como subárea da
Inteligência Artificial & Computação
� Habilidade lingüística é um tipo de inteligência
4
PLN e IA
O que tem PLN a ver com IA?
� Utiliza conhecimento
� Usa formalismos de representação de
conhecimento e raciocínio
� Pode usar técnicas de aprendizado de máquina
12/09/2011
3
5
PLN
� Instruir o computador a lidar com a língua� Entendimento
� Análise morfológica e sintática, semântica e discursiva
� Geração, síntese� Tradução, produção de resumos
� Correção gramatical
� Busca de respostas para perguntas
� Recuperação de informação da Internet
� Auxílio a escrita e ao aprendizado de línguas
� Interdisciplinar� Computação
� Lingüística
6
PLN: um pouco de história
� Nascimento na 2ª guerra mundial� Tradução automática
� Possíveis nomes� Computational Linguistics
� Mechanolinguistics
� Automatic Language Data Processing
� Natural Language Processing
12/09/2011
4
7
PLN: um pouco de história
� Trajetória da Inteligência Artificial
� Primeiros trabalhos � grande expectativa �
resultados pobres � desilusão e hibernação da
área � novos horizontes
� Relatório da ALPAC (Automatic Language Processing
Advisory Committee): Languages and Machines –
computers in translation and linguistics
8
PLN: um pouco de história
� Dicotomia
� Simbolismo vs. estatística (subsimbolismo)
� Globalização, internet, tecnologia da
informação, Google
12/09/2011
5
9
PLN
� Auxílio às tarefas humanas
� Não substitui o humano
� Não é possível automatizar a língua, apenas aspectos dela
� O computador é uma máquina estúpida!
VS.
10
PLN: programas de diálogo
� De ELIZA a Ed
� Sistemas automatizados
12/09/2011
6
11
PLN
� “Conversar” com uma máquina não é tão
difícil
� Fazer a máquina “entender” é difícil, talvez
impossível
� Futuro distante
� Muitas pesquisas
� Programas especializados
� Recursos lingüísticos e lingüístico-computacionais
12
PLN
� De que um computador necessita para ser capaz de entender uma fala humana e interagir adequadamente?� Como nós, humanos, fazemos isso?
Quem é Lula?
Que preguiça!
Está calor aqui.
Quem é Lula? Sei que não é o molusco.
12/09/2011
7
13
PLN
� De que um computador necessita para ser capaz de entender uma fala humana e interagir adequadamente?� Como nós, humanos, fazemos isso?
Quem é Lula?
Que preguiça!
Está calor aqui.
Quem é Lula? Sei que não é o molusco.
Informata: O que Mark Zuckerberg fez?
Cientista social: O que Mark Zuckerberg fez?
Mãe: O que Mark Zuckerberg fez?
14
PLN
� Vários níveis de conhecimento
� Tradicionalmente distinguidos em PLN, apesar
dos limites entre eles serem nebulosos na maioria dos casos
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Abstração &
Complexidade
Fonética / Fonologia
12/09/2011
8
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Fonética: estuda como os humanos produzem, transmitem e recebem sons, independente de língua; sistema físico
� Fonologia: estudo dos sons em uma língua específica, como os sons são construídos
� Fones, fonemas, local (bilabial, palatal, etc.) e modo de
articulação (pausa, nasal, fricativo, etc.), etc.
16
PLN
Ele queria jogar tênis com Janete,
mas também queria jantar com
Suzana. Sua indecisão o
deixou louco.
Transcrição fonética
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
12/09/2011
9
17
PLN
Ele queria jogar tênis com Janete,
mas também queria jantar com
Suzana. Sua indecisão o
deixou louco.
Transcrição fonética
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
Reconhecimento de voz
Síntese de voz
18
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Palavra: construção, componentes de formação
� Morfema, grafema, raiz, afixo (prefixo, sufixo, etc.), vogal temática, desinência
12/09/2011
10
19
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Interação entre morfologia e sintaxe: classes
gramaticais ou etiquetas morfossintáticas
� Substantivo/nome, verbo, adjetivo, advérbio, pronome, preposição, conjunção, interjeição, etc.
20
PLN
Ele queria jogar
tênis com Janete,
mas também queria
jantar com Suzana.
Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
Ele [ele] PERS M 3S NOM
queria [querer] <fmc> V IMPF 3S IND VFIN
jogar [jogar] V INF
tênis [tênis] N M S/P
com [com] PRP
Janete [Janete] PROP M/F S
,
mas "mas" <co-vfin> <co-fmc> KC
também [também] ADV
queria [querer] <fmc> V IMPF 3S IND VFIN
jantar [jantar] V INF
com [com] PRP
Suzana [Suzana] PROP F S
.
Sua [seu] <poss 3S> DET F S
indecisão [indecisão] N F S
o [ele] PERS M 3S ACC
deixou [deixar] <fmc> V PS 3S IND VFIN
louco [louco] ADJ M S
.
12/09/2011
11
21
PLN
Ele queria jogar
tênis com Janete,
mas também queria
jantar com Suzana.
Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
Ele [ele] PERS M 3S NOM
queria [querer] <fmc> V IMPF 3S IND VFIN
jogar [jogar] V INF
tênis [tênis] N M S/P
com [com] PRP
Janete [Janete] PROP M/F S
,
mas "mas" <co-vfin> <co-fmc> KC
também [também] ADV
queria [querer] <fmc> V IMPF 3S IND VFIN
jantar [jantar] V INF
com [com] PRP
Suzana [Suzana] PROP F S
.
Sua [seu] <poss 3S> DET F S
indecisão [indecisão] N F S
o [ele] PERS M 3S ACC
deixou [deixar] <fmc> V PS 3S IND VFIN
louco [louco] ADJ M S
.
Analisadores sintáticos
Corretores gramaticais
22
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Como as sentenças são formadas, como as
palavras podem se combinar
� Função: sujeito, predicado, objetos, predicativos, etc.
� Estruturação: sintagma nominal, sintagma verbal, etc.
12/09/2011
12
23
PLN
Ele queria jogar
tênis com Janete,
mas também
queria jantar com
Suzana. Sua indecisão o
deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
24
PLN
Ele queria jogar
tênis com Janete,
mas também
queria jantar com
Suzana. Sua indecisão o
deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
Análise sintática
Corretores Gramaticais
Sumarizadores
Tradução Automática
12/09/2011
13
25
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Significado
� Palavras, expressões, orações, sentenças,
textos
� Lexical, composicional, textual
26
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Traços semânticos, classificações ontológicas
Mesa Cavalo Garota Mulher
Animado - + + +
Humano - - + +
Fêmea - - + +
Adulto - + - +
Tudo
Concreto Abstrato
Animado Inanimado
12/09/2011
14
27
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Papéis semânticos/temáticos
� Agente, tema, instrumento, experienciador,
fonte, etc.
� [O menino]AGENTE chutou [a bola]TEMA
28
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Classes/categorias/tipos semânticos
� Humano, local, data, organização, etc.
� O [menino]HUMANO chutou a bola
� Entidades nomeadas
12/09/2011
15
29
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Relações “lexicais”
� Sinonímia, antonímia, hiperonímia/hiponímia,
meronímia/holonímia, etc.
30
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Diversos fenômenos
� Metáforas, expressões idiomáticas, polissemia
12/09/2011
16
31
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Semântica composicional
� Análise de seqüência de palavras, sentenças
32
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
“Ele”, “Janete” e “Suzana” = humanos.
Jogar tênis = praticar o esporte tênis ≠ arremessar o calçado.
...
12/09/2011
17
33
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
queria(exper(ele),objetivo(jogar(tênis),comutativo(Janete)))...
34
PLN
Ele queria jogar tênis com Janete,
mas também queria jantar com
Suzana. Sua indecisão o deixou
louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
[Ele queria jogar tênis com Janete], [mas também queria
jantar com Suzana].
[Sua indecisão o deixou louco].
contraste
causa
12/09/2011
18
35
PLN
Ele queria jogar tênis com Janete,
mas também queria jantar com
Suzana. Sua indecisão o deixou
louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
[Ele queria jogar tênis com Janete], [mas também queria
jantar com Suzana].
[Sua indecisão o deixou louco].
contraste
causa
Analisadores semânticos
Corretores gramaticais
Sumarizadores
Tradução automática
36
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Discurso
� Aquilo que está além da sentença
� Semântica textual
� Relacionamento proposicional, correferência e expressões
referenciais, marcadores textuais, intenções, etc.
12/09/2011
19
37
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
38
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
12/09/2011
20
39
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
(Intend E (Believe L “o desejo
de fazer duas coisas
incompatíveis o deixou louco”))
40
PLN
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
(Intend E (Believe L “o desejo
de fazer duas coisas
incompatíveis o deixou louco”))
Analisadores discursivos
Corretores estilísticos
Categorizadores de texto
Sumarizadores
Resolução anafórica
12/09/2011
21
41
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Pragmática
� Língua em uso, interação, contexto
� Fatores como força, educação, hierarquia, crença, cooperação, atitude
� Estilos de escrita e de fala
� Suposições sobre produtor e receptor, nível de conhecimento, interesses
� Modelagem do usuário
42
PLN
Pragmática / DiscursoSemânticaSintaxeMorfologiaFonética / Fonologia
� Pragmática
� Língua em uso, interação, contexto
� Fatores como força, educação, hierarquia, crença, cooperação, atitude
� Estilos de escrita e de fala
� Suposições sobre produtor e receptor, nível de conhecimento, interesses
� Modelagem do usuário
Corretores estilísticos
Sistemas adaptativos
12/09/2011
22
43
PLN
� Considerações para uso por um computador
� Os níveis de conhecimento precisam ser representados (formalizados) e manipulados automaticamente
� Interação entre os níveis� Morfologia e sintaxe� Sintaxe e semântica� Semântica e discurso
44
PLN
� Considerações para uso por um computador
� Os níveis de conhecimento precisam ser representados (formalizados) e manipulados automaticamente
� Interação entre níveis mais distantes� Morfologia e semântica (goleiro e porteiro vs. padeiro)� Morfologia e pragmática (são carlense vs. são carlino,
laranjada e limonada vs. cajuada)� Sintaxe e discurso (subordinadas)
12/09/2011
23
PLN e humanos
� Processamento sequencial vs.
paralelo
� Arquiteturas em pipeline vs. integradas
45
PLN e humanos
� Humanos lidam naturalmente com
� Ambigüidade
� Irregularidade
� Vagueza
� Dinamicidade
� Variabilidade
� ... máquinas não!46
12/09/2011
24
Exemplos de dificuldades
� O homem viu a mulher na montanha de binóculos
� Filme recente: Knight and Day
� Você sabe as horas?
� O coelho foi servido
� O homem foi servido
� A caneta está na caixa
� A caixa está na caneta
47
Exemplos de dificuldades
48
12/09/2011
25
49
PLN
� Trabalho em PLN
Fase
lingüística
Fase
representacional
Fase
implementacional
50
PLN
� Trabalho em PLN
Fase
lingüística
Fase
representacional
Fase
implementacional
Sintaxe de sentenças da língua portuguesa
Regras sintáticas e formalismos sintáticos
Desenvolvimento do analisador sintático
Resumos de artigos de jornais
Formalização das regras para resumir
Desenvolvimento do sumarizador automático
Tradução espanhol-português
Regras de tradução, dicionários bilíngues
Desenvolvimento do tradutor automático
12/09/2011
26
51
PLN
� Trabalho em PLN
� Aspectos da língua que são possíveis capturar e
automatizar
� Maioria das teorias lingüísticas são sofisticadas demais para o PLN
Fase
lingüística
Fase
representacional
Fase
implementacional
Teorias e dados lingüísticos
Formalismos/esquemas de representação
Métodos e modelos computacionais
52
NILC
� Revisão
ortográfica
� Dicionários
� Regras para
ordenar sugestões
12/09/2011
27
53
NILC
� Revisão
gramatical
� Analisador sintático
� Léxico
� Regras
gramaticais
54
NILC
� Revisão
estilística
� Regras estilísticas
12/09/2011
28
55
NILC
� Análise
sintática
� Léxico
� Regras
sintáticas
56
NILC
� Sumarização
automática
� Métodos
profundos e
superficiais
12/09/2011
29
57
NILC
� Auxílio à escrita de textos científicos
� Regras de estrutura textual
� Exemplos da estrutura de outros textos
� Crítica de cada parte do texto
58
12/09/2011
30
59
60
12/09/2011
31
61
NILC
� Wordnet.Br: base de dados lexicais e conceituais
� Relações semânticas entre palavras
� Sinonímia
� Antonímia
� Etc.
� Relações ontológicas
� Hiperonímia
� Hiponímia
� Etc.
62
12/09/2011
32
63
Conhecimento de mundo
64
Senso comum
12/09/2011
33
65
Recursos e ferramentas
� Portais de córpus
� Diversas ferramentas e toolkits� GATE
� NLTK (Natural Language Toolkit)
� Vários ambientes de processamento de córpus
� GIZA++
� WEKA
� Etc.
� Prolog!
66
PLN e Prolog
• Suporte à escrita e processamento de gramáticas
– Análise sintática, semântica, discursiva
– Tradução
– Etc.
12/09/2011
34
67
Análise Sintática em Prolog
• Analisador sintático
– Léxico: composto por um conjunto de palavras e suas classes gramaticais
– Gramática: mecanismo formal usado para definir conjuntos de seqüências de símbolos, utilizando regras de produção
68
Análise Sintática em Prolog
• Gramáticas podem ser usadas para gerar um seqüência de símbolos, chamada sentença
• Uma gramática também pode ser usada para reconheceruma dada sentença (parsing)
12/09/2011
35
69
Análise Sintática em Prolog
• DCG (Definite Clause Grammar): notação especial de regras gramaticais
– Incorporada ao Prolog
sentença
sintagma nominal sintagma verbal
pronome verbo
ela chorouNós terminais
Nós não
terminais
70
Análise Sintática em Prolog
• Exemplos mais interessantes vêm da língua natural
sentenca --> sintagma_nominal, sintagma_verbal.
sintagma_nominal --> artigo, substantivo.
sintagma_verbal --> verbo, sintagma_nominal.
artigo --> [o].
substantivo --> [gato].
substantivo --> [rato].
verbo --> [matou].
• Sentenças geradas
[o, gato, matou, o, gato]
[o, gato, matou, o, rato]
[o, rato, matou, o, gato]
[o, rato, matou, o rato]
12/09/2011
36
71
Análise Sintática em Prolog
• Quando interpretada, a gramática é mapeada automaticamente em cláusulas Prolog
sentenca(List1,Rest) :- sintagma_nominal(List1,List2),
sintagma_verbal(Lista2,Rest).
sintagma_nominal(List1,Rest) :- artigo(List1,List2),
substantivo(List2,Rest).
sintagma_verbal(List1,Rest) :- verbo(List1,List2),
sintagma_nominal(List2,Rest).
artigo([o|Rest],Rest).
substantivo([gato|Rest],Rest).
substantivo([rato|Rest],Rest).
verbo([matou|Rest],Rest).
72
Análise Sintática em Prolog
• Para reconhecer sentença
– sentenca([o,gato,matou,o,rato],[]).
• Para gerar sentenças
– sentenca(S,[]).
12/09/2011
37
73
Análise Sintática em Prolog
• Expandindo a gramática com as formas no plural
artigo --> [os].
substantivo --> [gatos].
substantivo --> [ratos].
verbo --> [mataram].
• Algumas sentenças geradas
[os, gatos, mataram, o, gato] OK
[o, ratos, matou, os, gato] ERRADA
[o, rato, mataram, o, ratos] ERRADA
...
74
Análise Sintática em Prolog
• No exemplo dado, o verbo tem que concordar em gênero e número com o sujeito (dependência de contexto)
sentenca(G,N) --> sintagma_nominal(G,N), sintagma_verbal(N).
sintagma_nominal(G,N) --> artigo(G,N), substantivo(G,N).
sintagma_verbal(N) --> verbo(N), sintagma_nominal(G1, N1).
artigo(masculino, singular) --> [o].
artigo(masculino, plural) --> [os].
substantivo(masculino, singular) --> [gato].
substantivo(masculino, plural) --> [ratos].
verbo(singular) --> [matou].
verbo(plural) --> [mataram].
12/09/2011
38
75
Análise Sintática em Prolog
• Sentenças geradas pela gramática anterior
[o, gato, matou, o, gato]
[o, gato, matou, os, ratos]
[os, ratos, mataram, o, gato]
[os, ratos, mataram, os, ratos]
...
76
Análise Sintática em Prolog
• Mapeamento automático em cláusulas Prolog
sentenca(G,N) --> sintagma_nominal(G,N), sintagma_verbal(N).
é convertido em
sentenca(G, N, List1, Rest) :-
sintagma_nominal(G, N, List1, List2),
sintagma_verbal(N, List2, Rest).
Top Related