Processamento de
Linguagem Natural
Uma necessariamente breve, muito incompleta, assumidamente parcial mas eventualmente motivadora panorâmica da área
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:
Parte I
PLN: o que é?
• Processamento de Linguagem Natural:
– Processamento automático de informação expressa em linguagem dos Humanos, em formato escrito e oral.
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
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?
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çãoPLN: é 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
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…
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
PLN Escrita (II)
• Tarefas:
– Análise Morfológica
– Análise Gramatical / Sintâctica – Análise Semântica
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 – …
Parte II
Conceitos Básicos de Linguística e de
Processamento de Linguagem Natural
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
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)
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
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
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
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”
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
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
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
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)!
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 – ….
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…”
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”
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:
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
Parte III
Classificação Automática de Texto
(brevíssima introdução!!)
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?
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....
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....
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:
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
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
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
Parte IV
PLN no NIAD&R:
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
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
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...
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).
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
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
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
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’]
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)
Ciclo de Desenvolvimento
Contínuo
Análisador Semântico Extracção de Informação Léxico SemânticoRAPOSA
• 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!!
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)
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
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
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
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….
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!
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
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”:
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
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)
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