• Nenhum resultado encontrado

Processamento de Linguagem Natural

N/A
N/A
Protected

Academic year: 2021

Share "Processamento de Linguagem Natural"

Copied!
62
0
0

Texto

(1)

Processamento de

Linguagem Natural

Uma necessariamente breve, muito incompleta, assumidamente parcial mas eventualmente motivadora panorâmica da área

(2)

Resumo da Apresentação

Parte I:

Introdução e Motivação ao PLN

Parte II:

Conceitos básicos de Linguística e PLN

Parte III:

Classificação de Texto

Parte IV:

(3)

Parte I

(4)

PLN: o que é?

• Processamento de Linguagem Natural:

– Processamento automático de informação expressa em linguagem dos Humanos, em formato escrito e oral.

(5)

Motivação para o PLN (I)

• Grande parte da comunicação entre humanos é

realizada naturalmente através de uma de centenas de linguagens existentes

• Quase todo o conhecimento humano encontra-se registado sob a forma de LN

• Linguagem é a ponte entre as gerações passadas, presentes e futuras

• Provavelmente é a mais importante invenção humana porque permite registar e transmitir inteligência

(6)

Motivação para o PLN (II)

• Problema de EI/RI/EC:

– Cada vez mais informação, escrita e oral, está registada em formato electrónico:

• Como aceder, pesquisar, processar, (re-)utilizar?

• Problema de HCI:

– Cada vez mais a comunicação é mediada por máquinas e feitas com máquinas:

• como tornar a interação mais “natural”?

• Devem as pessoas aprender a linguagem das máquinas ou vice-versa?

(7)

PLN: Muitas disciplinas

• Inteligência Artificial • Ciência de Computadores • Processamento de Sinal • Probabilidade e Estatística • Linguagens Formais • Bases de dados • Psicologia • Filosofia • Linguística • Lógica • Ciências da Informação

(8)

PLN: é complexo!

• Linguagem é uma sofisticada capacidade humana • Linguagem é complexa, ambígua, contextual e

requer conhecimento prévio acerca da realidade • Alguns exemplos:

– TA seria resolvida antes do Homem ir à Lua

– Sistemas de RAP state-of-the-art são ainda muito limitados (60% perguntas factoide)

– Só recentemente é que se consegue STT suficientemente bom para usar em directo

(9)

PLN: dois campos

• Processamento de Linguagem Oral:

– Speech-to-Text e Text-to-Speech

• Processamento de Linguagem Escrita:

– Assistentes de Escrita, motores de pesquisa, extracção de informação, sistemas de RAP, tradutores automáticos…

(10)

PLN Escrita (I)

• Recursos:

– Dicionários

– Tesaurus (palavras relacionadas)

– Base de Dados Lexicais, Redes Semânticas – Gramáticas Electrónicas / Bancos de Regras – Bases de Dados Estatísticas

(11)

PLN Escrita (II)

• Tarefas:

– Análise Morfológica

– Análise Gramatical / Sintâctica – Análise Semântica

(12)

PLN Escrita (III)

• Aplicações: – Corrector Ortográfico – Verificador de Estilo – … – Motor de Pesquisa

– Sistema de Resposta Automática – Sistema de Tradução Automática – Sumarizador Multi-Documento – …

(13)

Parte II

Conceitos Básicos de Linguística e de

Processamento de Linguagem Natural

(14)

Conceitos Básico de PLN:

Morfologia (I)

• Morfologia: a forma das palavras – Classes de palavras: • nomes, pronomes, • determinantes, • adjectivos, • verbos, advérbios • preposições – Regras de Derivação: • Plural <-> Singular • Inflexão de verbos

(15)

Conceitos Básico de PLN:

Morfologia (II)

• Tarefa Associada: – Análise Morfológica: • Exemplo:

– são -> verbo ser Pres. Ind. 3p p – são -> adjectivo

– são -> nome / parte de um nome “São Paulo”

• Necessário desambiguar em contexto (embora requeira também conhecimento gramátical)

(16)

Análise Morfológica

• Não é tão trivial como se julga.

• Como se lida com erros ortográficos? • Ou com variações (hifen)?

• Ou estrangeirismos?

• Como se delimita uma “palavra”?

– Exemplo: “base de dados”, “Nova Iorque” • Há sempre palavras novas a aparecer:

– nome próprios: von Sarmenstein – siglas: ANTRAL

(17)

Conceitos Básicos de PLN:

Gramática

• Regras de combinação das palavras

• Formação dos constituintes do texto:

– Frases – Sintagmas: • Nominal / Sujeito • Verbal • Preposicional • Adjectival

(18)

Exemplo

O cão roía o osso

SN SV

P N SN

P N

V

• A forma de representação em àrvore é a mais natural porque os constituintes têm dependências hierárquicas

(19)

Análise Gramátical (“Parsing”)

• Analisar o texto de forma a encontrar os constituintes:

– Do texto obter a árvore de análise

• É importante porque as relações gramáticas definem os papeis semânticos dos constituintes da frase que são fundamentais para a compreensão da mensagem

– Agentes / pacientes: “SV/ CD”

– Acção (do agente sobre o paciente objecto): “V” – Argumentos (do verbo): “o osso”

(20)

Análise Gramátical (“Parsing”)

• A análise envolve encontrar muitas estruturas (hieráquicas) e variações de cada uma delas

• Pode tornar-se extremamente complexa, basta imaginar frases mais “intrincadas”, ou usam léxico complexo (“bosão de Higgs”)

• Pode envolver centenas de regras

• Pode também ser mais simplificada - “shallow parsing”- procurando-se apenas encontrar apenas os constituintes de topo, ou certas estruturas específicas

• As regras de análise são:

– Escritas manutalmente

(21)

Conceitos Básicos de PLN:

Semântica

• Análise que verdadeiramente nos interessa: – Significado do texto

– Extracção da Informação / Conhecimento • Tarefas exemplo:

– Reconhecimento de Entidades (REM) – Resolução de Entidades

– Identificação de Relações Semânticas

• Decoberta de Associações Genéricas • Descoberta de Relações Específicas

(22)

Semântica: Reconhecimento de

Entidades Mencionadas (REM)

• Identificar os nomes e a sua classe / função. • Exemplos:

– Eu nasci no <LOC>Porto</LOC> em <DATA>1976</DATA>

– O gastei <VALOR>100 euros</VALOR> no <EVENTO>(N/n)atal</EVENTO>

• Essencial para aplicações de Extracção: – Resposta automática a Perguntas

– Detecção Automática de Eventos – Sumarização

(23)

REM

• Muito mais complexo que o que parece:

– <?>Bruxelas</?> adverte <?>Sócrates</?> para desvio no <? >orçamento de Estado</?>

– Encontramo-nos no <?>S. João</?> para ver o <?>Godard</?>! – <?>Amsterdão</?> é fantástico

• Amesterdão: local, romance, barco, banda rock…?

• Muita ambiguídade!

– Ou seja: mais uma vez só “dicionários” não chegam (se os houvesse)!

(24)

Semântica: Resolução de

Entidades

• Tendo identificado o nome e a sua classe, de qual exactamente é que estamos a falar?

• Ex: “Amsterdão” – NL?

– Ohio, EU (2 cidades chamadas Amsterdam)? – África do Sul?

– Amsterdam (Av. )-> 10th Avenue, NY – ….

(25)

Semântica: Identificação de

Relações Semânticas (I)

• Classe / Instância:

– O Porto é uma cidade antiga.

• Hiperonímia / Hiponímia

– “A penicilina é um antibiótico que…”

– “Os antibióticos são medicamentos eficazes.”

• Holonímia / Meronímia:

– “O trem de aterragem do avião…” • Mas atenção: “o piloto do avião…”

(26)

Semântica: Identificação de

Relações Semânticas (II)

• Causa / Efeito:

– A aspirina reduz a dor de cabeça

– A chuva intensa fez o rio transbordar

• Equivalentes (“sinónimos”):

– “grupo” / “banda”

– “grupo (de empresas)” / “corporação empresarial”

(27)

Conceitos Básicos de PLN:

Pragmática

• Análise do objectivo do acto de comunicação. • O que se quer dizer:

– “Tens horas?” / “Tens lumes?” – “Bater a bota”

• O PLN não ambiciona para já ultrapassar esta barreira. Ou talvez já o faça até bastante bem em certos casos:

(28)

Conclusão da Parte II

• PLN envolve análise a vários níveis, todos

com situações de ambiguídade

• Problemas de análise são complexos:

– Exigem análise de contexto

– Exigem “conhecimento” prévio

• Mas já há muita tecnologia utilizável e até

tão comum que nem damos por ela

(29)

Parte III

Classificação Automática de Texto

(brevíssima introdução!!)

(30)

Classificação Automática de

Texto: o que é?

• Tarefa fundamental em muitos sistemas de

processamento de texto

• Dado um excerto de texto:

– e.g. uma notícia, um blog, um twitter, um artigo, um livro, uma frase

• Decidir automaticamente:

– qual a “classe” desse texto?

(31)

Tarefas de Classificação de Texto

• Dada uma palavra:

– saber qual a sua categoria gramátical (e.g. v)

• Dado um nome:

– Saber que tipo de entidade é (local, pessoa..?..)

• Dada uma frase:

– Saber se é uma definição, descricão factual, se é opinião, se foi escrita por um certo autor....

(32)

Tarefas de Classificação de Texto

• Dada um twitter:

– Saber se exprime um sentimento positivo ou negativo

• Dada uma notícia:

– Saber se trata de um determinado tema/tópico

• Dado um blog:

– Saber se diz bem ou mal de um produto / político....

(33)

Conceitos Base (I)

• Elemento Base: algoritmo de classificação

• Fase de Treino:

– Dado um conjunto de exemplo (parcialmente) classificados, o algoritmos é treinado

– O algoritmo aprende relações entre as classes e os atributos do exemplos

• Fase de Classificação:

(34)

Desafios

• Construir uma boa base de exemplos:

– Notícias com o seu tópico

– Twitters com a informação de sentimento – Comentários com informação de polaridade

• Normalmente com intervenção humana:

– Bastante trabalhoso

• Por vezes usando estratégias,

semi-automáticas, usando outros recursos de

maneira engenhosa

(35)

Desafios (II)

• Encontrar os melhores atributo que

descrevem os elementos a serem

classificados:

– Notícias: palavras? Nomes? Certos termos? – Blogs: o mesmo, mais os blogs linkados?

– Twiiters: as palavras? Certos adjectivos? a hora de twitter

(36)

Alguns Algortimos de

Classificação

• Support Vector Machines

– Aproximação geométrica

– Muito usados em texto com bom desempenho – Tradicionalmente binários

• Classificadores Naïve Bayes

– Aproximação Probabilistica – Muito rápidos de treinar

(37)

Parte IV

PLN no NIAD&R:

(38)

PLN no NIAD&R

• Tópicos principais:

– Ferramentas e Recursos:

• Reconhecimento de Entidades Mencionadas • Identificação de Relações Semânticas

• Construção de Léxicos Semânticos / Tesauros – Aplicações

• Resposta Automática a Perguntas • Monitorização de Notícias

(39)

Recursos e Ferramentas

• LSP – Léxico Semântico do Português:

– Base de Dados com entradas léxicais em PT • Categorização Gramátical

• Categorização Semântica • Categorização de Polaridade • No futuro: relações semânticas – Arquitectura / Funcionamento:

• Base de Dados MySQL + Interface de Adm. • Exportação como biblioteca Perl: muito prático

(40)

Recursos e Ferramentas

• Corpora: base de texto para exploração ou

treino de classificadores

• Base de Co-ocorrências: BACO (demo) • Notícias Curtas com informação de tópico • Comentários a Notícias (em contrução) • Feeds SAPO:

– Notícias – Blogs

– Twitter PT – etc...

(41)

Ferramentas

• SIEMÊS v2.0 - REM

– Desenvolvido desde 2005. Perl + Regras

– Tenta identificar cerca de 10 classes e mais de 100 sub-classes de nomes expressões temporais e números (valores).

– centenas de regras + léxico com várias centenas de entradas

• Está neste momento a ser desenvolvida a

v3.0 (Perl e Java).

(42)

Análise Semântica no NIAD&R

• ASP (sucessor do SIEMÊS)

– Desenvolvido desde início 2009

– Assenta no LSP para obter informação lexico-semântica

– Usa representações XML e usa uma base de dados XML como motor de regras

(43)

Identificação de Relações

Semânticas (I)

• Descoberta de Definições

– Usando a Wikipedia e Colecções Web – Procura por definições canónicas

• “N é um TD que”

• A Aspirina é um medicamento que

• Utilização da informação da Wikipedia (tags) – Extracção de Hiperónimos / Hipónimos

(44)

Identificação de Relações

Semânticas (II)

• Descoberta de semelhança por “clustering”:

– Sinónimos / antónimos – “Classes”

– Importante porque os recursos públicos

produzidos manualmente têm poucas opções (tesaurus do openoffice)

– Só agora estão a surgir mais recurso públicos

(45)

Construção de Léxicos

Semânticos / Tesauros

• Em quase todas as tarefas de PLN é necessário ter informação acerca de várias possibilidades

morfológicas e semânticas

• Exemplo de informação semântica: – ter as palavras agrupadas semânticamente

• médico, engenheiro, etc… -> profissão

• Se padrão {@prof NM} => NM -> C_PESSOA

– Ter informação acerca de níveis “semelhança”:

• 'suprir', ---> ['colmatar:0.175', 'satisfazer:0.083', 'superar:0.069', 'minorar:0.064', 'compensar:0.061', 'ultrapassar:0.060’]

(46)

Construção do Léxico Semântico

• Semi-automática:

– Fundindo informação de vários recursos existentes: dicionários, tesaurus

– Aumentando informação existente com informação extraída automaticamente.

• Wikipedia (nomes, definições, relações, etiquetas)

– Obtenção de informação estatística a partir de grandes quantidades de texto

• dados distribucionais (co-ocorrências)

(47)

Ciclo de Desenvolvimento

Contínuo

Análisador Semântico Extracção de Informação Léxico Semântico

(48)

RAPOSA

• Sistema de Resposta Automática a Perguntas (que é

Ouro Sobre Azul) para Português

• Preparado para responder a vários tipos de

perguntas directas do tipo “factoide” e definições: – Quem foi o primeiro Rei de Portugal?

– O que é um katamaran?

• Sobre qualquer assunto e usando uma colecção de texto em Português (e.g.: Wikipedia em PT)

• Participou nas edições de 2006, 2007 e 2008 do CLEF: 3º lugar para PT em 2007!!

(49)

RAPOSA: Como funciona? (I)

• O RAPOSA utiliza uma estratégia “data-driven”. • Dada uma pergunta:

– tenta estratégias “simples” para reunir potênciais respostas pesquisando uma dada colecção de texto

– Se a pesquisa for “bem feita” e a selecção de candidatos for minimamente inteligente, então a resposta certa

estará entre os dados recolhidos.

– Num passo final o RAPOSA tenta escolher um candidato tendo em conta todos os que recolheu

• Esta estratégia é interessante se a colecção onde vamos buscar a resposta é muito grande (ex: Web)

(50)

RAPOSA: Como funciona? (II)

• P: “Quem foi o primeiro rei de Portugal?”

• Em grande colecções de texto a resposta deverá estar mais ou menos explícita várias vezes:

– “… D. Afonso Henriques, o primeiro rei de Portugal,…” – “… o primeiro rei de portugal foi D. Afonso Henriques…”

– “… tornando-se D. Afonso Henriques o primeiro rei de Portugal..” – “…como primeiro rei de Portugal, D. Afonso Henriques tentou…”

• Vamos usar a redundância existente para tentar responder: parte do enunciado da pergunta ocorre em texto muitas vezes “próximo” da resposta

(51)

RAPOSA: Como funciona? (III)

• Analisar a pergunta para tentar determinar o tipo de resposta que deve ser devolvida:

– Quem -> pessoa – Onde -> local – Quando -> data – ….

• Gerar “queries” tendo em conta a análise prévia: – “primeiro rei de portugal”

– “primeiro rei” portugal

(52)

RAPOSA: Como funciona? (IV)

• Pesquisar a colecção e obter todas as frases /

parágrafos onde ocorrem expressões de pesquisa • Analisar semanticamente as frase: neste caso

fazemos REM com o SIEMÊS

• Escolhemos os nomes do tipo de entidades apropriado. Neste caso nomes de pessoas:

– “D. Afonso Henriques” ou “Afonso Henriques” ou “D. Afonso I” … serão provavelmente os nomes mais

(53)
(54)

RAPOSA - Limitações

• Não responde a perguntas: – Tipo lista

• Quais as 3 maiores cidades de Portugal?

– Que impliquem inferências ou deduções:

• Qual a aeroporto mais próximo de Londres?

– Sequênciais que envolvam co-referências?

• Quem é o presidente da República (Português)? • Com quem é ele casado?

– E muitas outras….

(55)

Media Tracking

• Objectivos:

– Acompanhar o que se passa na notícias

– Detectar acontecimentos / eventos relevantes

• Projecto Verbatim:

– Extracção de Citações de Jornais On-line – Categorização por Tópico

– Detalhes para a Semana! – Pequena DEMO agora!

(56)

Prospecção de “Sentimentos”/

Opinião

• Objectivos:

– Determinar se determinado excerto de texto veicula opinião positiva ou negativa

– Determinar qual o sentimento dominante num dado media (e.g. Blogosfera)

– Encontrar em texto opiniões acerca de pessoas, objectos, productos

(57)

Prospecção de “Sentimentos”/

Opinião (II)

• Para quê?

– Detectar gripes com antecedência – Fazer sondagens políticas

– Perceber o impacto de certa medida / evento – Afinar Marleting

• Onde:

– Em “User Generated Content”:

(58)

Prospecção de “Sentimentos”/

Opinião (III)

• Recursos:

– Léxico com adjectivos categorizados

– Corpus de Comentários (Público.pt) em anotação

– Experiências sobre determinação de polaridade de notícias

• Correlacionam bem com os resultados das Eleições Europeias

(59)

Visualização

• Visualuzação de Dados

– É importante porque permite perceber melhor o problema / dados

– Ajuda a detectar tendências – Ajuda a construir recursos – Alguns exemplos:

• RAMA (Web) • Talk2Me (Web)

(60)
(61)

PLN

• A linguagem está presente todos os aspectos da actividade humana e tem desafiado todas as

tentativas de sistematização

• O PLN é uma área com muitos desafios que pode receber contributos de todas as outras áreas

• Com a crescente digitalização da comunicação espera-se que a relevância do PLN, nas suas diversas vertentes e aplicações, aumente

• A interfaces serão sempre uma questão essencial na comunicação de informação e conhecimento

(62)

Questões?

Referências

Documentos relacionados

Alínea “a” do inciso XVII do artigo 12 da Instrução CVM 28/83 – “Eventual omissão ou inverdade, de que tenha conhecimento, contida nas informações divulgadas

Dessa forma, os objetivos deste trabalho são: avaliar o processo de compostagem de resíduos do setor sucroalcooleiro em pequena escala e a utilização dos compostos resultantes na

Os agentes patrimoniais natos das grandes seccionais, conforme conveniência, estavam neste inventário aptos a solicitar das unidades hierarquicamente inferiores os

Pragmática / Discurso Semântica Sintaxe conj cc advmod xcomp obl case PLN: Níveis de Conhecimento.. Ele queria jogar tênis com Janete, mas também queria jantar com Suzana.

Turmstück lang / Long tower section Elément de mât long / Elemento di torre, lungo Tramo de torre largo / Peça de torre, comprida Grundturmstück / Base tower section Mât de base

História Protótipo Casos de Teste Refinamento Planning Build Geração de Massa Testes Homologação Responsável: time de QA Entradas: • Histórias; • Protótipos; • Casos

A partir de um estudo sobre os modelos de desenvolvimento do pensamento sobre a linguagem de funções, este trabalho tem o objetivo de propor e testar um modelo de níveis

26- Para garantir a organização no ambiente de trabalho, é importante saber o local exato onde as coisas estão.