Comunica o - Autenticação · Parsing = análise/geração de frases, de acordo com a gramática....

43
Comunicação Aula 1 Capítulo 22 (secções 1-3) ++

Transcript of Comunica o - Autenticação · Parsing = análise/geração de frases, de acordo com a gramática....

ComunicaçãoAula 1

Capítulo 22 (secções 1-3) ++

Sumário

Comunicação

Comunicar com o computador

Linguagem Natural vs. Linguagem Formal

Processamento de Língua Natural

Gramáticas e Parsing

Sumário

Comunicação

Comunicar com o computador

Linguagem Natural vs. Linguagem Formal

Processamento de Língua Natural

Gramáticas e Parsing

Comunicação

Comunicar consiste em trocar informação através da produção e percepção de sinais, pertencentes a um sistema partilhado

Comunicação

Diferentes animais usam diferentes sinais para representar diferentes mensagens... ou as mesmas.

Comunicação

Uma das coisas que distingue os humanos dos outros animais é a complexidade do nosso sistema de mensagens: a nossa Linguagem!!

Comunicação

Fundamentos da LinguagemSintaxe: estrutura

ex: “degrau cuidado com o” vs. “cuidado com o degrau”

Comunicação

Fundamentos da LinguagemSintaxe: estrutura

ex: “degrau cuidado com o” vs. “cuidado com o degrau”

Semântica: significado literalex: “Cuidado com o degrau” (ter cuidado com um degrau)

Comunicação

Fundamentos da LinguagemSintaxe: estrutura

ex: “degrau cuidado com o” vs. “cuidado com o degrau”

Semântica: significado literalex: “Cuidado com o degrau” (ter cuidado com um degrau)

Pragmática: significado em função do contextoex: “Cuidado com o degrau” (se o cão se chamar Degrau, ter cuidado com o cão)

Comunicação

Exemplo

Intenção: S quer dizer P a H

ex: A Maria quer pedir ao Manuel que abra a porta à sua amiga Berta

Comunicação

Exemplo

Geração: S selecciona palavras W para exprimir P

ex: “Abre a porta à Berta, sff”

Comunicação

Exemplo

Síntese: S emite palavras W

ex: Maria diz: “Abre a porta à Berta, sff”j j

Comunicação

ExemploPercepção: H percebe W’ no contexto C’

ex: O Manuel percebe “Abre a porta aberta”. Mas depois olha pela janela e vê a Berta à porta.

Comunicação

Exemplo (cont.)Análise: H infere possíveis significados P1,…,Pn

ex: A Maria quer que ele abra um bocado mais, uma porta já aberta; A Maria quer que ele abra a porta à Berta.

Comunicação

Exemplo (cont.)Desambiguação: H infere significado pretendido Pi

ex: O Manuel escolhe a segunda interpretação.

Comunicação

Exemplo (cont.)Incorporação: H incorpora Pi na BC

ex: O Manuel percebe que tem de abrir a porta à Berta.

Sumário

Comunicação

Comunicar com o computador

Linguagem Natural vs. Linguagem Formal

Processamento de Língua Natural

Gramáticas e Parsing

Comunicar com o computador

E se a nossa linguagem é tão complexa... E a comunicação homem-máquina?

Comunicar com o computador

Teste de Turing (Alan Turing, 1950) - proposta para testar as capacidades intelectuais de uma máquina.

Um juiz humano mantém uma conversa com uma entidade humana e com uma máquina. Se não for capaz de perceber qual é a humana e qual é a máquina, então a máquina passa o teste.

Assume-se que quer a máquina quer o humano vão tentar parecer humanos.

Comunicar com o computador

Loebner Prize (Hugh Loebner, 1990) - concurso que implementa o teste de Turing. $100,000 + medalha de ouro.

Todos os anos há um prémio de $2000 + medalha de bronze para o computador mais “human-like”.

2007, NY, 21 de Outubro.

Comunicar com o computador

Exemplo - teste de Turing:What time is it?・Is it morning, noon, or night? What is a hammer?・What would I use a hammer for?Which is faster, a train or a plane?John is older than Mary, and Mary is older than Sarah.

Which of them is the oldest?

I have a friend named Harry who likes to play tennis. .... What is the name of the friend I just told you about? Do you know what game Harry likes to play?

Sumário

Comunicação

Comunicar com o computador

Linguagem Natural vs. Linguagem Formal

Processamento de Língua Natural

Gramáticas e Parsing

Linguagem Natural vs. Formal

Linguagem formal (Lisp, C++, ...)Definições rigorosasInexistência de ambiguidadese.g. i++ é uma frase em C; +i+ não é.

Linguagem natural (Pt, En, Esperanto, ...)Difícil de formalizarAmbíguae.g. Vi o homem no monte com o telescópio.

Sumário

Comunicação

Comunicar com o computador

Linguagem Natural vs. Linguagem Formal

Processamento de Língua Natural

Gramáticas e Parsing

Processamento de Língua Natural

Processamento da língua natural(PLN): domínio em que se trabalha a língua natural usando o computador.

Objectivo do resto da aula: perceber como se pode estudar uma das etapas do PLN (análise sintáctica) de um modo formal.

Processamento de Língua Natural

Análise Sintáctica = gramática + parsing

Gramática = regras estruturaisParsing = análise/geração de frases, de

acordo com a gramática

Processamento de Língua Natural

Gramáticas - classificadas em função da suacapacidade generativa.

Gramáticas Regulares N -> t [N] (ex: SV -> fugiu | bebeu CD)

Gramáticas Livres de Contexto N -> (t + N)* (ex: SV -> SV e SV)

Gramáticas na Forma Normal de Chomsky

N->N1 N2, S -> ɛ, N -> t (ex: SV -> fugiu)

etc.

Processamento de Língua Natural

Exemplo de Construção de uma gramática Livre de Contexto:Etapa 1: Agrupamento das palavras em

categoriasex: nomes, verbos, adjectivos e advérbios (classes

abertas) ou pronomes, artigos, preposições e conjunçõs (classes fechadas)Etapa 2: Construção das regras

ex: S -> SN SV, SN -> art nc, ...

Processamento de Língua Natural

Etapa 1: exemplo de agrupamento de palavras em categorias (construção de um léxico no domínio do turismo):

Pint: quem, onde, qual,... // Pint = partícula interrogativa;

V: custar, localizar, ficar, ... // V = verbo;

NC: hotel, preço, piscina, praia,... // NC = nome comum ;

NP: Ritz, Lisboa, Museu dos Coches... // NP = nome próprio ;

...

Processamento de Língua Natural

Etapa 2: exemplo de mini-gramática para interrogativas directas + concordâncias (em número, pessoa e género):

S -> Pint F [] // Onde fica o Ritz?

F -> V SN [N=X,P=Y] // fica o Ritz

SN -> ART NP[N=X,G=Y] // o Ritz

// F = (resto da) frase;

// SN = sintagma nominal

Processamento de Língua Natural

Avaliação de Gramáticas

Subgeração - incapacidade de gerar frases correctas (ex: “Indique-me hotéis baratos”, não é apanhada pela gramática anterior);

Sobregeração - geração de frases incorrectas (ex: Quem fica o Ritz?).

Mas... queremos realmente uma gramática para o Português “correcto” ou para o Português “real”? (ex: “museus de Lisboa”)

Processamento de Língua Natural

Análise Sintáctica (parsing) - dado um texto, gera uma (ou mais) árvores sintácticas:

Parsing top-down: da raiz da árvore para as folhas (palavras);

Parsing bottom-up: das folhas para a raiz.

Processamento de Língua Natural

Parsing Top-down:Estado inicial: [S: ?] Função sucessores: a) Selecciona o nó mais à esquerda

na árvore; b) Procura regras com o símbolo do nó do lado esquerdo; c) Por cada regra cria um sucessor onde o símbolo do lado esquerdo é substituído pelo lado direito da regra correspondente;

Teste objectivo: As folhas correspondem exactamente aos dados de entrada; nenhuma palavra dos dados de entrada está em aberto ou é desconhecida.

Processamento de Língua Natural

Parsing Bottom-up:Estado inicial: lista de palavras nos dados de

entrada [Onde fica o Ritz?].Função sucessores: Procura emparelhar lado

direito de uma regra com cada posição na lista;Teste objectivo: estado com uma única árvore com

S na raiz.

Processamento de Língua Natural

Vamos ver um exemplo de um algoritmo de análise bottom-up:

Algoritmo CKy - Cocke-Kasami-Younger

Para gramáticas na Forma Normal de

Chomsky (N->N1 N2, S -> ɛ, N -> t)

Processamento de Língua Natural

Seja G = (N, T, S, P) gramática na FNC.

for j = 1 to n do // n nº de palavras da frase em análise<1, j> := {A : A -> wj ∈ P} // wj palavra na posição j

odfor i = 2 to n do

for j = 1 to n - i + 1 do <i, j> : = ∪m=1, i-1 {A : A->B C, B ∈ <m, j>, C ∈ <i-m, j + m>}od

odif S ∈ <n, 1> then W ∈ L(G), else W ∉ L(G) fi

Processamento de Língua Natural

Vamos ver um exemplo de um algoritmo de análise que combina a análise bottom-up com a top-down:

Baseado no algoritmo de Earley

Para gramáticas livres de contexto

Eficiente: espaço O(kn2) e tempo O(n3) no pior caso, sendo n o nº de palavras e k uma constante dependente da gramática.

Processamento de Língua Natural

6 vértices e 3 arcos Arco [0,5 , S -> NP VP ⦁] significa que a combinação de NP

seguido por VP dá origem a S que abrange as palavras de 0 a 5 Arcos com símbolo ⦁ no final são arcos completos

Processamento de Língua Natural

função prever(i, j, A -> w ⦁ B y)

para cada B -> x ∈ Padiciona [j , j, B -> ⦁ x ]

Ex: prever (0, 0, S -> ⦁ NP VP)

NP -> pronoun ∈ P

adiciona [0, 0, NP -> ⦁ pronoun]

Processamento de Língua Natural

função varrer (j, palavra)

para cada (i, j, A -> x ⦁ pj y)se pj é a categoria de palavraadiciona [i , j+1, A -> x pj ⦁ y ]

Ex:varrer(0, I)[0, 0, NP -> ⦁ pronoun]I = pronoun

adiciona [0, 1, NP -> pronoun ⦁]

Processamento de Língua Natural

função completar [k, j, A -> x ⦁ ]

para cada [i, k, B -> w ⦁ Ay]adicionar [i, j, B -> wA ⦁ y]

Ex:completar [0, 1, NP ->pronoun ⦁][0, 0, S -> ⦁ NP VP]

adiciona [0, 1, S -> NP ⦁ VP]

Sumário

Comunicação

Processamento de língua natural - foco sobre:

Gramáticas

Parsing: bottom-up (CKy), top-down, Earley (combinação bottom-up, top-down)

ObrigadaGame Over