Processamento de Linguagem Natural Uma necessariamente breve, muito incompleta, assumidamente parcial mas eventualmente motivadora panorâmica da área Luis Sarmento
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: PLN no NIAD&R: o que estamos a fazer?
Parte I Introdução ao PLN
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ção
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
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 Derivação Interclasse (salto -> saltar)
Conceitos Básico de PLN: Tarefa Associada: Análise Morfológica: Morfologia (II) 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 termos técnicos: Quasar N345, bosão de Higgs
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 V SN P N 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 Aprendidas automaticamente de exemplos de texto analisado manualmente
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 Tradução Automática
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)! O contexto é determinante mas a análise é complexa!
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. Necessária análise de contexto suplementar
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: processamento de queries a um motor de pesquisa
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? qual a etiqueta que devo colocar no 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: Dado um exemplo por classificar, o algoritmos de classificação (treinado) prevê a classe
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, semiautomá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 Esta é normalmente a fase crítica em termos de engenharia!
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 Usados com desempenhos razoáveis
Parte IV PLN no NIAD&R: o que andamos a fazer por aqui?.
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 Detecção de Opiniões
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 lexicosemântica Usa representações XML e usa uma base de dados XML como motor de regras Está suspenso à espera de mais mão-de-obra!
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 Listas
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 Demonstração Luís Sarmento do - las@fe.up.pt projecto WordMap
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) Utilização de técnicas de clustering
Ciclo de Desenvolvimento Contínuo Análisador Semântico Extracção de Informação Léxico Semântico
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!!
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 primeiro rei de 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 frequentes
RAPOSA: Como funciona? (V)
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. Mas serve de test-bed de ideias e tecnologias
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 : Twitters, Blogs, Comentários a Notícias
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) Word4Word (Web)
Conclusões Finais
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
Questões? las@fe.up.pt