mini-curso processamento de linguagens naturais: pondo em prática

82
EIAGIME II Encontro Internacional dos Alunos de Graduação do IME-USP Processamento de Linguagens Naturais pondo em prática William Daniel Colen de Moura Silva – http://www.ime.usp.br/colen Engenharia da Computação – Poli-USP – 2006 Mestrando – Ciência da Computação – IME-USP Orientador – Prof. Dr. Marcelo Finger Desenvolvedor do Corretor Gramatical CoGrOO – http://cogroo.sf.net

Upload: william-colen

Post on 28-Jun-2015

977 views

Category:

Technology


0 download

DESCRIPTION

Mini-curso apresentado no EIAGIME II sobre PLN. http://www.ime.usp.br/~eiagime/2009/#

TRANSCRIPT

Page 1: Mini-curso Processamento de linguagens naturais: pondo em prática

EIAGIME IIEncontro Internacional dos Alunos de

Graduação do IME-USP

Processamento de Linguagens Naturaispondo em prática

William Daniel Colen de Moura Silva – http://www.ime.usp.br/colen

Engenharia da Computação – Poli-USP – 2006

Mestrando – Ciência da Computação – IME-USPOrientador – Prof. Dr. Marcelo Finger

Desenvolvedor do Corretor Gramatical CoGrOO – http://cogroo.sf.net

Page 2: Mini-curso Processamento de linguagens naturais: pondo em prática

Agenda● Primeiro dia

– Motivação

– Sistemas PLN

● Segundo dia– Componentes e arquitetura de um sistema

PLN

Page 3: Mini-curso Processamento de linguagens naturais: pondo em prática

Agenda● Terceiro dia

– Como definir uma gramática

– Métodos estatísticos● N-Grama e Entropia Máxima

– A API do CoGrOO e do OpenNLP

● Quarto dia– Desafio – implementar um programa com

processamento de linguagem

Page 4: Mini-curso Processamento de linguagens naturais: pondo em prática

Processamento de Linguagens Naturais(PLN)

Computadores executando tarefas interessantes que envolvam linguagem humana

Comunicação homem-máquinaMelhorar comunicação homem-homem

etc

Page 5: Mini-curso Processamento de linguagens naturais: pondo em prática

Exemplo: Agente de Conversação

HAL 9000

HAL 9000: computador do filme “2001: Uma Odisseia no Espaço”,de Stanley Kubrick, 1968

● Conversa fluente em inglês

● Leitura de lábios

Reconhecimento de voz, inter-pretação de linguagem natural

Planejamento de diálogo e sín-tese de voz

Arthur C. Clarke estava otimista de quando teríamos um sistema de diálogo como o HAL 9000. Mas quanto longe estamos disso?

Page 6: Mini-curso Processamento de linguagens naturais: pondo em prática

Exemplo: tradução automáticaBabel Fish é uma espécie fictícia na série O Guia do Mochileiro das Galáxias (1978), de Douglas Adams.

● Traduz instantaneamente de qualquer linguagem para qualquer linguagem.

● Seria factível um sistema que fizesse o mesmo que o Babel Fish?

● Imagine poder traduzir para o nosso idioma as centenas de milhares de páginas Web que estão originalmente em idiomas que não dominamos, como o chinês, por exemplo?

Page 7: Mini-curso Processamento de linguagens naturais: pondo em prática

Exemplo: Sistema de respostasBuscar usandopalavras chave

Fazer uma pergunta completa

● O que significa “procrastinar”?

● Em que ano a USP foi fundada?

● Quantos cursos eram oferecidos na Universidade naquele ano?

● Quanta seda chinesa foi exportada para a Inglaterra no final do século 18?

● O que os cientistas pensam a respeito da clonagem humana?

Fácil paraos buscadores

atuais

Requer reso-lução de infe-rências, sínte-

se e resumo deinformações dediversas fontes.

Page 8: Mini-curso Processamento de linguagens naturais: pondo em prática

Outros exemplos● Correção ortográfica● Verificador gramatical● Sumarização automática● Categorização de textos● Busca na Web usando ontologias

Page 9: Mini-curso Processamento de linguagens naturais: pondo em prática

Conhecimento em Processamento de Linguagem

● Programa Unix “wc” - conta total de bytes, palavras e linhas de um arquivo texto.

– Bytes e linhas → processador de dados

– Palavras → processador linguístico

Processador de dados

Processador de linguagem

Conhecimento da língua

Page 10: Mini-curso Processamento de linguagens naturais: pondo em prática

Dave Bowan: Open the pod bay doors, HAL.HAL: I'm sorry Dave, I'm afraid I can't do that.

HAL reconhece palavras em um sinal de áudio e gera áudio a partir de sequências de palavras

Reconhecimento de voz

Síntese de voz

Fonética eFonologia

Contrações: I'm, I can'tInterpreta variações: doors (plural) Morfologia

HAL deve saber que “I'm I do, sorry that afraid Dave I'm can't.” não teria sentido para Dave

Sintaxe

Page 11: Mini-curso Processamento de linguagens naturais: pondo em prática

Quanta seda chinesa foi exportada para a Europa Ocidental no final do século 18?

Semânticadas palavras

Significado de “exportada” ou “seda”

Composiçãosemântica

Europa Ocidental

Europa OrientalSul da Europa

Significado de “final” quando combinado a “século 18”

Page 12: Mini-curso Processamento de linguagens naturais: pondo em prática

Ordem, afirmação ou pergunta?

HAL ainda deve interpretar o que Dave deseja com a sentença -

– Ordem: HAL, open the pod bay door.

– Afirmação: HAL, the pod bay door is open.

– Pergunta: HAL, is the pod bay door open?

HAL é bem educado no uso do idioma:– I'm sorry, I'm afraid

– I can't (no lugar de I won't)Pragmática (ou etiqueta do diálogo)

Page 13: Mini-curso Processamento de linguagens naturais: pondo em prática

Quantos cursos eram oferecidos na Universidade naquele ano?

Resolução dereferências

“naquele ano” → temos que examinar perguntas já respondidas para determinar que falamos do ano em que a USP foi fundada.

Page 14: Mini-curso Processamento de linguagens naturais: pondo em prática

Ambiguidade: problema fundamental de PLN

● “O sr. Mendonça chegou.”– em “sr.”, o ponto marca fim de sentença?

● “Quem casa quer casa.”– quando “casa” é verbo ou substantivo?

● “Eu preparei o pato dela.”– Eu cozinhei o pato dela.

– Eu fiz o pato (de plástico?) dela.

Page 15: Mini-curso Processamento de linguagens naturais: pondo em prática

Aplicações: busca semântica

http://www.wolframalpha.com/input/?i=What+year+was+Lula+born%3F

Page 16: Mini-curso Processamento de linguagens naturais: pondo em prática

Aplicações: busca semântica

http://www.powerset.com/explore/go/What-year-Elvis-Presley-died?

Page 17: Mini-curso Processamento de linguagens naturais: pondo em prática

Aplicações: busca semântica

http://www.google.com/squared/search?q=tea

Page 18: Mini-curso Processamento de linguagens naturais: pondo em prática

Aplicações: tradução automática

http://translate.google.com/translate_s?hl=en&clss=&q=ciência+da+computação&tq=&sl=pt&tl=zh-CN

Page 19: Mini-curso Processamento de linguagens naturais: pondo em prática

OpenCalais: rede semântica

http://viewer.opencalais.com/

Page 20: Mini-curso Processamento de linguagens naturais: pondo em prática

Reconhecimento de voz

● Exemplo: sistema 102● Softwares:

– CMUSphinx - Carnegie Mellon University Sphinx - http://cmusphinx.sourceforge.net - precisa de treinamento

– IBM ViaVoice - http://www.nuance.com/viavoice - Alemão, Francês, Japonês, Inglês britânico e a americano

Page 21: Mini-curso Processamento de linguagens naturais: pondo em prática

Aplicações: corretor gramatical

Page 22: Mini-curso Processamento de linguagens naturais: pondo em prática

http://www.ime.usp.br/colen

http://cogroo.sourceforge.net

http://ccsl.ime.usp.br

Obrigado pela atenção!

Page 23: Mini-curso Processamento de linguagens naturais: pondo em prática

Origens● 1ª grande tarefa → Tradução automática –

início da década de 50– Um equívoco – TA requer tratamentos

sofisticados em todos o níveis de PLN

– TA foi relegado a um segundo plano por várias décadas

● Tecnologia insuficiente● Ingenuidade científica● Decepção

Page 24: Mini-curso Processamento de linguagens naturais: pondo em prática

Grande sacada● Subdividir as tarefas em modelos ou teorias

mais simples● Muitas dessas tarefas já eram conhecidas e

solucionadas por ferramentas já existentes:– Autômatos

– Sistemas de regras

– Lógicas

– Modelos probabilísticos

(e outros)

Page 25: Mini-curso Processamento de linguagens naturais: pondo em prática

Estratificação de Tarefas● Pré-processamento (subdividir o texto)

– identificação de unidades fonéticas, lexicais,

– gramaticais, semânticas ou discursivas

● Classificar (etiquetar)

– morfossintáticas (PoS-tagger)

– sintáticas (Parser)

– semânticas (Parser Semântico ou Interpretador)

– discursivas (Parser discursivo)

– Tipos de etiquetas: símbolos (ADJ, NOM, etc.), estruturas (árvore sintática), relações (semânticas ou retóricas)

Page 26: Mini-curso Processamento de linguagens naturais: pondo em prática

Tarefas de Pré-processamento

Page 27: Mini-curso Processamento de linguagens naturais: pondo em prática

Fonético-fonológico● Fonologia

→ efeito acústico das formas sonoras da língua

● Fonética

→ descrição dos sons da fala e como esses sons são reconhecidos e produzidos

● Unidade mínima: fonema– Vogais, consoantes e semivogais

Page 28: Mini-curso Processamento de linguagens naturais: pondo em prática

Fonético-fonológico: aplicação

Síntese defala

Análise defala

Registro oral é saída

Registro oral é entrada

Page 29: Mini-curso Processamento de linguagens naturais: pondo em prática

Fonético-fonológico: complexidade

● Variação de timbre segundo características regionais

– No Nordeste /e/ e /o/ em posição pré-tônica são abertas, mas no Sul e Sudeste fechadas: feriado, coração

● Posição na palavra: xadrez, êxodo, inox.● Homófonas – mesma forma, diferente

significado: – cem / sem

– voz / vós

Page 30: Mini-curso Processamento de linguagens naturais: pondo em prática

Delimitador de sentenças● Critério heurístico para tratamento de pontuação:

– Separadores absolutos – ponto final, ponto de exclamação e de interrogação – sempre separa

– Separadores não relativos – virgula – não separa

– Separadores relativos unários – ponto e vírgula, dois pontos, reticências, travessão único – separa se tanto texto que precede como o que segue contenha verbo finito

– Separadores relativos binários – parênteses, travessão duplo – separa se tanto texto interior quanto exterior contenham verbo finito

Page 31: Mini-curso Processamento de linguagens naturais: pondo em prática

Delimitador de sentenças: problemas

● Difícil determinar durante o pré-processamento se a palavra é um verbo finito

● Abreviaturas: “O sr. Afonso chegou.”● Sequências especiais: URLs, números etc.

– O meu e-mail é [email protected].

– O prêmio é de R$ 55.000,00.

Page 32: Mini-curso Processamento de linguagens naturais: pondo em prática

Tarefas de Classificação

Page 33: Mini-curso Processamento de linguagens naturais: pondo em prática

Morfologia● Morfemas

– Objeto de estudo da Morfologia

– Unidades mínimas dotadas de significado (gramatical ou lexical)

– Carregam o mecanismo de flexão – indicam gênero, número e conjugação (pessoa, número, tempo, modo, aspecto etc)

Page 34: Mini-curso Processamento de linguagens naturais: pondo em prática

Morfológicas● Morfemas gramaticais – Definem marcadores da

flexão das palavras

– pedra: indica nomes terminados em “-a”

– macaca: indica gênero feminino

– procuramos: “-a” indica a primeira conjugação verbal, “-mos” indica primeira pessoa do plural do presente do indicativo

● Morfemas lexicais – Elementos associados a uma base de formação de novas palavras

– operação: indica evento

– incerto: indica negação

Page 35: Mini-curso Processamento de linguagens naturais: pondo em prática

Sintáticas● Organização das palavras → define funções

gramaticais– Distribuição das palavras não pode ser

aleatória para o que o texto tenha sentido completo

● Categorias → sujeito, objeto direto, complemento nominal, adjunto adverbial etc

● Classes gramaticais → substantivo, verbo, adjetivo, pronome, numeral

Page 36: Mini-curso Processamento de linguagens naturais: pondo em prática

Sintáticas: processo1. Determinar as classes gramaticais e as categorias das

palavras de acordo a sequência que apareceram no texto

2. Aplicar regras sintáticas para tornar as sentenças bem formadas

Page 37: Mini-curso Processamento de linguagens naturais: pondo em prática

Sintáticas: exemplos● Considere “Ela foram a padaria hoje cedo.”

– Traços sintáticos dos itens lexicais● ela → sujeito, pronome pessoal [singular]● foram → verbo [de movimento]● a padaria → objeto indireto● hoje cedo → adjunto adverbial de tempo

– Regras para especificação de uma sentença bem formada

● Concordância verbal obrigatória entre sujeito e verbo

● Emprego da crase obrigatório em complementos preposicionados do verbo (objeto indireto)

● Com estas informações: “Elas foram à padaria hoje cedo.”

Page 38: Mini-curso Processamento de linguagens naturais: pondo em prática

Sintáticas: estrutura argumental● Aplicável principalmente aos verbos● Caracteriza o número e os tipos de

argumentos exigidos– pai exige um argumento → objeto é pai de

alguém“meu pai está atrasado para o almoço”

– gostar exige dois argumentos, o último requer preposição“Benedito gosta de quiabo com pimentão”

Page 39: Mini-curso Processamento de linguagens naturais: pondo em prática

Sintáticas: papel temático● Aplicável aos verbos● Confere características aos argumentos

“Aquele rapaz encontrou uma chave na rua.”– aquele rapaz → agente

– uma chave → paciente

Page 40: Mini-curso Processamento de linguagens naturais: pondo em prática

Semânticos● Diversos níveis possíveis:

partes da palavra → palavra → sentença

● Dois tipos:

– Traços semânticos → sentido da palavra

– Conhecimento ontológico → objeto no mundo

● Exemplos

– Homem → entidade, concreta, animada, humana, macho

– Mulher → entidade, concreta, animada, humana, fêmea

– Grávida → propriedade, abstrata, humana, [ligada à] fêmea

– Prenha → propriedade, abstrata, não-humana, [ligada à] fêmea

Page 41: Mini-curso Processamento de linguagens naturais: pondo em prática

Pragmáticos-discursivos● Se preocupa em responder (que estão além das

preocupações de PLN):

– Quem são os sujeitos envolvidos na situação discursiva? O que querem dizer esses sujeitos? Qual é o contexto da enunciação?

● PLN tem foco no texto, e não do discurso. Procura olhar os marcadores discursivos e relações de coesão e coerência textual

● Especialmente: manter coerências entre o texto em análise e o que já foi descrito no decorrer do discurso quanto as referências (ele, isso etc) e o contexto (hoje, daqui a pouco, lá etc)

Page 42: Mini-curso Processamento de linguagens naturais: pondo em prática

Arquitetura de um Sistema PLN● Depende das especificidades da aplicação

● Tradutor automático: completo (e complexo)

(a) Extrair cada uma das palavras da sentença em português;

(b) Analisar sintaticamente a sentença;

(c) Analisar semanticamente a sentença;

(d) Mapear o significado extraído em uma representação adequada;

(e)Transformar a representação anterior em uma sentença na língua de destino.

Interpretação

Geração

Page 43: Mini-curso Processamento de linguagens naturais: pondo em prática

Arquitetura de um Sistema PLN

Vários sistemas possuem apenas uma das fases

● Sistema de consulta a base de dados, sistema gerador de respostas

– Sistemas desse tipo apenas geram texto, precisam transformam o formato interno (banco de dados, conhecimento) em texto legível.

● Revisores gramaticais

– Precisa apenas extrair a estrutura sintática do texto

Page 44: Mini-curso Processamento de linguagens naturais: pondo em prática

Arquitetura de um Sistema PLN● Interpretação

– Complexo pois sistema deve estar preparado para todo tipo de texto.

– A complexidade é proporcional à complexidade da língua

● Geração– Mais simples pois se pode restringir o sistema:

por exemplo fixar o uso da voz passiva (não é verdade para tradutores!)

Page 45: Mini-curso Processamento de linguagens naturais: pondo em prática

Analisador Léxico

Analisador Sintático

Analisador Semântico

Analisador do Discurso

Analisador Pragmático

Sentença

Tokens com traços

Estrutura Sintática

Representação Semântica

Representação Semântica Estendida

Representação do Conteúdo e dos Objetos Comunicativos

Modelo doDomínio

Modelo doUsuário

Gramática

Léxico

Interpretação

Arquitetura: Interpretação

Page 46: Mini-curso Processamento de linguagens naturais: pondo em prática

AnalisadoresLéxico: Responsável pela identificação e separação dos tokens, e também por associar atributos ou traços gramaticais e/ou semânticos aos tokens.

Sintático: Recupera a estrutura sintática. Precisa de um modelo da língua, em geral parcial, apenas com as construções válidas de interesse para a aplicação.

Semântico: Interpretação de componentes da sentença ou da sentença como um todo.

Discurso: Resolve referências do texto em análise com o resto já analisado (por exemplo: ele, ela, este, aquela ou ainda: a menina refererindo-se a Amélia) ou ainda extratextuais (aqui, ali, hoje).

Page 47: Mini-curso Processamento de linguagens naturais: pondo em prática

Ambiguidade“É o pote creme de molho inglês.”

● Requer um modelo do mundo para decidir qual interpretação é correta: “o pote de cor creme contém molho inglês” ou “o pote é creme de molho inglês”.

“O menino viu o homem de binóculo.”

● Ambiguidade sintática: o menino usa o binóculo ou o homem?

“João procura um banco.”

● Ambiguidade lexical: procura um banco financeiro ou um lugar para se sentar?

“João ganhou um binóculo do seu pai. O menino viu o homem de binóculo.”

● O sistema poderia resolver a ambiguidade usando um analisador de discurso.

Page 48: Mini-curso Processamento de linguagens naturais: pondo em prática

Arquitetura de um Sistema PLN Gerador

● Muitas vezes é feita a justaposição de partes pré-definidas

● Outras vezes são usados canned texts, que são textos definidos, mas com uma parte variável que só é determinada em tempo de processamento

Page 49: Mini-curso Processamento de linguagens naturais: pondo em prática

Interpretação: Geração

Planejamento RealizaçãoSeleçãoTextoModelo de

Domínio

RecursosRetóricos/Modelo

do Discurso

ObjetosComunicativos

Léxico

Modelo doUsuário Gramática

Page 50: Mini-curso Processamento de linguagens naturais: pondo em prática

GeradoresSeleção do conteúdo: Selecionar os itens de conhecimento que deverão fazer parte do texto. O Modelo do Usuário determina a quantidade de informação necessária.

Planejamento do texto: Adiciona especificações retóricas, determina a sequência em que as informações serão apresentadas e algumas vezes escolhe as palavras que serão usadas. A saída é o plano do texto.

Realização do texto: realização gramatical do texto produzido pelo planejador. Dois processos distintos: determinação dos itens linguísticos e sua linearização.

Page 51: Mini-curso Processamento de linguagens naturais: pondo em prática

Realização do Texto● Escolha do vocabulário

● Escolha do estilo (prosa, diálogo etc)

● Escolhas léxicas, morfológicas e sintáticas

● Escolha de figuras de discurso (foco, ênfase etc)

● Escolhas que garantam coesão do discurso (uso de uma marca de contraste entre componentes que devem ser contrastados)

● Decisões de linearização (ordenação das informações, concordância gramatical etc)

Page 52: Mini-curso Processamento de linguagens naturais: pondo em prática

http://www.ime.usp.br/colen

http://cogroo.sourceforge.net

http://ccsl.ime.usp.br

Obrigado pela atenção!

Page 53: Mini-curso Processamento de linguagens naturais: pondo em prática

Recursos linguísticos: Léxico● Conjunto de palavras ou expressões da língua

associada

comida

token = comercategoria = verbo | substantivogênero = femininonúmero = singular

Traço

CategoriasSintáticas

token = comercategoria = verbotempo = particípio passadogênero = femininonúmero = singular

Page 54: Mini-curso Processamento de linguagens naturais: pondo em prática

Recursos linguísticos: Gramática● Regras gramaticais definem as cadeias de

palavras válidas em uma língua natural● Ex.: regras de produção do tipo S → SN SV

Para reconhecer uma sentença S reconheça como seus componentes um sintagma nominal, SN, seguido por um sintagma verbal, SV.

Uma sentença S pode ser construída por um sintagma nominal, SN, seguida por um sintagma verbal, SV.

Page 55: Mini-curso Processamento de linguagens naturais: pondo em prática

Modelo do Domínio● Fornece o conhecimento sobre o domínio

específico da aplicação● Exemplo

– senso comum● Homem é mortal● animado(homem)

– Modelo de domínio

● Geração → correto inter-relacionamento semântico para evitar ambiguidades (manga: fruta x parte de um vestuário)

Page 56: Mini-curso Processamento de linguagens naturais: pondo em prática

Modelo do Usuário● Modelo do contexto de ocorrência do discurso

para determinar como deve ser a estrutura do texto (geração) ou ajuda a identificar o significado textual (análise)

● Exemplo – quantidade de informação do texto gerado depende do que é relevante para o leitor.

Page 57: Mini-curso Processamento de linguagens naturais: pondo em prática

Corpus● É uma coleção de textos da linguagem natural

(falada ou escrita) que pode ser usado para pesquisas e levantamentos estatísticos do uso do idioma.

● Podem ou não ter anotações, que poderiam ser geradas manualmente ou automaticamente (revisadas ou não)

Page 58: Mini-curso Processamento de linguagens naturais: pondo em prática

Corpus● Usos -

– Estatísticas de uso da língua

– Modelamento das estruturas da língua

– Testes de desempenho

Page 59: Mini-curso Processamento de linguagens naturais: pondo em prática

Exemplo CetenFolha(Corpus de Extractos de Textos Electrónicos NILC /

Folha de S. Paulo)SOURCE: CETENFolha n=210 cad="Brasil" sec="pol" sem="94a"CF210-4 Avesso a um tratamento mais técnico de candidatos durante as campanhas eleitorais, Covas protagonizou a mudança mais significativa no horário eleitoral gratuito.A1STA:fcl=PRED:adjp==H:adj('avesso' M S)Avesso==A<:pp===H:prp('a')a===P<:np====>N:art('um' <arti> M S) um====H:n('tratamento' <np-idf> M S)tratamento====N<:adjp=====>A:adv('mais' <quant> <KOMP>)mais=====H:adj('técnico' M S) técnico====N<:pp=====H:prp('de') de=====P<:np======H:n('candidato' <np-idf> M P) candidatos

Page 60: Mini-curso Processamento de linguagens naturais: pondo em prática

Testes de desempenho com Corpus

1 2 3 4 5 6 7 8 9 10Treinamento Treinamento

Treinamento Treinamento

Page 61: Mini-curso Processamento de linguagens naturais: pondo em prática

Como definir uma gramática em PLN

Page 62: Mini-curso Processamento de linguagens naturais: pondo em prática

Regras● É possível modelar a gramática do idioma usando gramática

livre de contexto (tipo 2)

● Exemplo: considere a frase “A garota comprou um vestido”

Page 63: Mini-curso Processamento de linguagens naturais: pondo em prática

S   |______________________   |                     |   SN                    SV   |___________          |___________   |          |          |          |             |          |          |          SN                      |          |          |          |___________             |          |          |          |          |   Art        Subs       Verb       Art        Subs           |          |          |          |          |             A          garota     comprou    um         vestido

RegrasOnde:S: SentençaSN: Sintagma nominalSV: Sintagma verbalArt: ArtigoSubs: SubstantivoVerb: Verbo

Regras de produçãoS    ::= SN SV SV   ::= Verb SN SN   ::= Art Subs Art  ::= a | umSubs ::= garota | vestidoVerb ::= comprou 

Page 64: Mini-curso Processamento de linguagens naturais: pondo em prática

Regras: dificuldades● As possibilidades de uso do idioma são

enormes● Seriam necessárias milhares de regras

gerativas para modelar de forma significativamente o idioma

Page 65: Mini-curso Processamento de linguagens naturais: pondo em prática

Regras: exemplo● Anotador Palavras (Eckhard Bick) –

http://beta.visl.sdu.dk/visl/pt/

+ 2000 regras

Page 66: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama● N-grama é um modelo da língua, gerado

estatisticamente, que tenta advinhar a próxima letra, palavra ou etiqueta de uma sequência de acordo com o que já foi analisado.

● Modelos da língua em n-gramas são usados em diversas aplicações

– Reconhecimento de fala – quando a entrada tem muito ruído, ou quando os sons das palavras são muito similares entre si.

– Tradução automática – escolher a melhor sequência de palavras quando existe mais de uma opção correta

Page 67: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama: exemplo

“procurar uma casa”– procurar → verbo infinitivo

– uma → artigo, numeral

– casa → verbo presente indicativo, substantivo

● Qual é a melhor sequência de etiquetas?

Page 68: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama: exemplo● Dados extraídos do Corpus de treinamento:

– procurar ● verbo infinitivo (800 ocorrências)

– uma● artigo (97 mil ocorrências)● numeral (12 mil ocorrências)

– casa● verbo presente indicativo (114 ocorrências)● substantivo (6 mil ocorrências)

Page 69: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama: exemplo● Trigramas extraídos do Corpus:

– verbo infinitivo + numeral + substantivo● 237 ocorrências

– verbo infinitivo + numeral + verbo● 31 ocorrências

– verbo infinitivo + artigo + substantivo● 46 mil ocorrências

– Verbo infinitivo + artigo + verbo● 97 ocorrências

Page 70: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama: exemplo● No CoGrOO 1.0 era atribuída uma nota para

cada trigrama de acordo com– Número de ocorrências dos trigramas no

Corpus

– Número de ocorrências da combinação palavra/etiqueta no Corpus

● Tagger tinha acerto de 95%

Page 71: Mini-curso Processamento de linguagens naturais: pondo em prática

N-Grama: dificuldades● Algumas vezes um par palavra etiqueta'

correta ocorre até algumas ordens de grandeza a mais que um segundo par palavra etiqueta'': [casa verbo] ocorre 100 vezes e [casa substantivo] 6000 vezes. Como comparar estes dados?

● O sistema consegue chutar uma etiqueta de acordo com o entorno, mas não leva em consideração características da palavra: por exemplo morfemas lexicais

Page 72: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima● Também é um modelo da língua, gerado

estatisticamente.

● Inicialmente não faz nenhuma suposição sobre o texto. Todas as possibilidades tem chances iguais: entropia é máxima.

● Ao se determinar uma característica do corpo de treinamento, pode acrescentar uma restrição (feature) no sistema na forma. Esta feature altera as chances de cada etiqueta. Novamente se calcula a entropia máxima do sistema. Features são adicionadas até que o sistema esteja bastante próximo do corpo de prova.

Page 73: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: exemplo

“zzfish”

Qual é a distribuição de probabilidades que não faz suposição alguma?

NN JJ NNS VB NNP IN MD UH SYM VBG POS PRP CC CD ...

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

1/45

...

Page 74: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: exemplo● Suponha que pela análise do Corpus você

descobre que as etiquetas possíveis seriam apenas: NN, JJ, NNS e VB

NN JJ NNS VB

1/4 1/4 1/4 1/4

P(NN) + P(JJ) + P(NNS) + P(VB) = 1

Page 75: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: exemplo● Suponha ainda que pelo Corpus se descobre

que 8 a cada 10 ocorrências de “zzfish” eram substantivos

● feature → palavra é zzfish e t == NN ou t == NNS

NN JJ NNS VB

4/10 1/10 4/10 1/10

P(NN) + P(JJ) + P(NNS) + P(VB) = 1P(palavra é zzfish e t == NN ou t == NNS) = 8/10

Page 76: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: exemplo● Agora suponha que uma a cada 20 palavras

(não apenas zzfish) no Corpus são verbos.● Feature → t == VB

NN JJ NNS VB

4/10 3/20 4/10 3/20

P(NN) + P(JJ) + P(NNS) + P(VB) = 1P(palavra é zzfish e t == NN ou t == NNS) = 8/10P(VB) = 1/20

Page 77: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: OpenNLP● O framework OpenNLP permite que se

experimente features em textos.● Ele consegue determinar quais features são

relevantes para a classificação que se quer● Ao entrar com novos textos ele aplica estas

mesmas features e usando os modelos gerados durante o treinamento sugere as possíveis classificações do texto

Page 78: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: exemplo● Detector de sentenças

– É ponto final?

– Tem verbo flexionado?

– Palavra que aparece antes e depois.

– É abreviatura

● Detector de palavras

– O último caractere da string é um não alfanumérico?

– O último caractere da string é um ponto final e não é uma abreviatura conhecida?

– A palavra que segue está com letra maiúscula?

Page 79: Mini-curso Processamento de linguagens naturais: pondo em prática

Entropia Máxima: desempenho● Etiquetador morfológico do CoGrOO 2.0

aplica Entropia Máxima e atinge 96% de acerto.

Page 80: Mini-curso Processamento de linguagens naturais: pondo em prática

http://www.ime.usp.br/colen

http://cogroo.sourceforge.net

http://ccsl.ime.usp.br

Obrigado pela atenção!

Page 81: Mini-curso Processamento de linguagens naturais: pondo em prática

AgradecimentosProf. MSc. Carlos Eduardo Dantas de Menezes pela revisão dos slides.

Prof. Dr. Marcelo Finger pela revisão dos slides e pela ajuda no planejamento do Curso.

Prof. Dr. Jorge Kinoshita pela sugestão da bibliografia.

Aos professores, pesquisadores e alunos que compareceram ao curso. Obrigado pela atenção e participação

Pessoal do CAMAT pelo evento EIAGIME II e pela oportunidade.

Page 82: Mini-curso Processamento de linguagens naturais: pondo em prática

JURAFSKY, D.; MARTIN, J. H. . Speech and Language Processing. 2. ed.: Pearson, 2008. 1024 p.

DIAS DA SILVA, B.C.; MONTILHA, G.; RINO, L.H.M.; SPECIA, L.; NUNES, M.G.V.; OLIVEIRA Jr., O.N.; MARTINS, R.T.; PARDO, T.A.S. (2007). Introdução ao Processamento das Línguas Naturais e Algumas Aplicações. Série de Relatórios do NILC. NILC-TR-07-10. São Carlos-SP, Agosto, 121p - Acessível em http://www.letras.etc.br/ebralc/NILCTR0710-DiasDaSilvaEtAl.pdf

Critérios de separação de sentenças/frases - Susana Afonso, Eckhard Bick & Ana Raquel Marchi - Acessível em http://www.linguateca.pt/treebank/CriteriosSeparacao.html

FLORESTA, Recursos linguísticos para a língua portuguesa: Disponível em: <http://www.linguateca.pt/Floresta/principal.html>

RATNAPARKHI, A. Maximum Entropy Models for Natural Language Ambiguity Resolution. Ph.D. Dissertation. University of Pennsylvania, Julho de 1998 (versão eletrônica disponível em ftp://ftp.cis.upenn.edu/pub/ircs/tr/98-15/98-15.pdf)

Bibliografia