Corretor Gramatical Para o Emacs

Documentos relacionados
Corretor Gramatical Para o Emacs

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Autômatos e Linguagens

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

EA876 - Introdução a Software de Sistema

PROCESSAMENTO DE LINGUAGEM NATURAL (PLN): FERRAMENTAS E DESAFIOS

Programação Estruturada Aula - Introdução a Linguagem de Programação

envolvidos numa comunicação

Semântica no Reconhecedor Gramatical Linguístico

Programação de Computadores

Desenvolvimento de Aplicações Desktop

Algoritmos e Programação

Tratamento dos Erros de Sintaxe. Adriano Maranhão

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

Verificação Ortográfica

MCZA Processamento de Linguagem Natural Introdução

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

PROTÓTIPO PARA SUMARIZAÇÃO AUTOMÁTICA DE TEXTOS ESCRITOS EM LÍNGUA PORTUGUESA ALEXANDRE BUSARELLO JOYCE MARTINS

Programação de Computadores

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Algoritmos e Programação

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Compiladores I Prof. Ricardo Santos (cap 1)

Workshop de Ambientes de apoio à Aprendizagem de Algoritmos e Programação (SBIE 2007) Instituto de Ciências Matemáticas e de Computação ICMC-USP

FACULDADE LEÃO SAMPAIO

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

CP Introdução à Informática Prof. Msc. Carlos de Salles

Algoritmos. Laura Goulart. 11 de Dezembro de 2018 UESB. Laura Goulart (UESB) Algoritmos 11 de Dezembro de / 12

Inteligência Artificial. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

COMPILAÇÃO. Ricardo José Cabeça de Souza

Programação de Computadores

Sistema Computacional

Introdução à Computação MAC0110

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Prof. Ms. Ronaldo Martins da Costa

Computação Eletrônica

Fundamentos de Programação 1

Introdução à Computação

Programação de Computadores:

PORTUGOL/PLUS: UMA FERRAMENTA DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO BASEADO NO PORTUGOL

Software Livre e Código Aberto Thiago Silvino 19/09/2013 FAC2

Arquitetura de Von Neumann

Programação I Apresentação

Disciplina de Algoritmos e Programação

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Geração Automática de Metadados

Introdução ao Python. Programa Computacional

Biblioteca de auxílio ao uso de elementos gráficos

Lógica de Programação II

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Ferramentas para Recuperação e Mineração de Informações

PCC104 - Projeto e Análise de Algoritmos

Fundamentos de Inteligência Artificial [5COP099]

Inteligência Artificial - IA. Agentes Inteligentes Cont.

IF Sudeste MG Notícias IF Sudeste MG News

Python 3.x Estrutura de Repetição while

Proposta de Trabalho de Conclusão de Curso

Plano de Trabalho Docente Ensino Técnico

UNIVERSIDADE FEDERAL DE P ERNAMBUCO

1.1 Linguagens de Programação

UNIDADE ACADÊMICA: Faculdade de

Noções de compilação

Noções de compilação

Computação I (MAB120) DCC/UFRJ

Análise Léxica I. Eduardo Ferreira dos Santos. Março, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 31

Introdução aos algoritmos computacionais

SISTEMA DE INFORMAÇÃO EXECUTIVO PARA ENVIO DE DADOS APLICADO NA UNIMED BLUMENAU

3. Linguagem de Programação C

Informática I. Aula Aula 18-29/10/2007 1

Universidade Federal de Roraima Departamento de Matemática Introdução à Ciência da Computação

Introdução à Programação uma Abordagem Funcional

ABORDAGENS COMPUTACIONAIS da teoria da gramática

Desenvolvimento Web. Introdução Geral. Prof. Vicente Paulo de Camargo

Identificação e Tratamento de Expressões Multipalavras aplicado à Recuperação de Informação

Linguagens de Domínio Específico

Algoritmos e Programação

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição

AULA: Introdução à Informática I

HISTÓRICO DO LINUX. Adão de Melo Neto

Ferramentas de Suporte

UM RELATO SOBRE TESTES DE AVALIAÇÃO REALIZADOS SOBRE UMA PLATAFORMA MULTISSENSORIAL PARA USUÁRIOS DE BAIXA VISÃO

Conceitos de Linguagens de Programação

ORGANIZAÇÃO DE COMPUTADORES

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Algoritmos Computacionais

IBM1088 Linguagens Formais e Teoria da Computação

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

II WPPC Workshop de Pesquisas do Grupo PET Computação

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Introdução à Programação

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

INFORMÁTICA: Informação automática

Introdução à Computação MAC0110

Verificação e Validação (V & V)

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Transcrição:

Corretor Gramatical Para o Emacs Aluno: Thiago Maciel Batista (5749922) Supervisor: Marcelo Finger 4 de junho de 2010 1

Sumário 1 Resumo da Monograa 3 1.1 PLN................................ 3 1.2 CoGrOO.............................. 3 1.3 Emacs usando o CoGrOO.................... 4 2 Objetivos do Trabalho 4 3 Atividades já Realizadas 5 4 Cronograma de atividades 5 5 Estrutura esperada da monograa 6 2

1 Resumo da Monograa 1.1 PLN As linguagens normalmente compreendidas e manipuladas por computadores são formais e precisas, diferentemente de linguagens humanas, que possuem características que dicultam ao computador compreendê-las, como por exemplo presença de ambiguidade, dependência do contexto, características culturais etc. Processamento de linguagem natural (PLN) é uma área da computação que pesquisa e desenvolve algoritmos para processar uma linguagem natural, de modo a torná-la compreenssível para um computador. Dessa forma, um computador será capaz de interpretar e gerar textos em linguagens naturais, tornando a comunicação homem-máquina o mais natural possível. PLN é uma área em plena evolução e que ainda tem muito a evoluir, mas já existem muitas aplicações que utilizam os conceitos de PLN. Alguns exemplos da utilidade de PLN são, extração de informação, recuperação de informação, tradução automática, geração e interpretação de linguagem natural, resumos de textos e correção de textos. 1.2 CoGrOO Um exemplo de um programa que utiliza PLN é o CoGrOO. Um corretor gramatical para a língua portuguesa do Brasil totalmente acoplável ao OpenOce.org desenvolvido por alunos da Universidade de São Paulo. O Co- GrOO utiliza análise sintática, morfológica e regras gramaticas para detectar erros em textos. O processo feito pelo CoGrOO para a análise gramatical de um texto é dividido em fases, que são executadas uma após a outra. Atualmente, o CoGrOO é composto por módulos, sendo que, cada módulo realiza uma fase do processo. Abaixo temos os módulos do CoGrOO. SentenceDetect - Divide o texto em sentenças Tokenizer - Identica os tokens. ProperNameFinder - Identica nomes próprios no texto. ContractionSparator - Gera uma lista de tokens e suas contrações. 3

Pretagger - Gera uma lista de CogrooTokens com nomes proprios e contrações Postagger - Devolve uma lista de etiquetas morfológicas associadas aos Cogrootokens. Rulesapplier - Aplica as regras gramaticais à lista de CoGrOOTokens e gera uma lista de erros O CoGrOO está em evolução e atualmente está sendo desenvolvido o CoGrOO UIMA, uma nova versão do corretor que utiliza a arquitetura padronizada do Apache UIMA, um aplicativo para manipulação de dados não estruturados. 1.3 Emacs usando o CoGrOO Apesar de ser feito, a princípio, para o OpenOce o CoGrOO pode ser acoplado a outros aplicativos. Aproveitando essa mobilidade do CoGrOO, vamos acoplá-lo ao editor de texto Emacs que, apesar de ser um editor de texto popular, ainda não possui um corretor para a língua portuguesa acoplado a ele. 2 Objetivos do Trabalho Este trabalho tem como objetivo estudar formas de acoplar o corretor gramatical CoGrOO ao editor de textos Emacs. Usaremos duas versões do CoGrOO, a última versão do sem utilizar o UIMA e o CoGrOO UIMA, com a nalidade de testar qual versão se adapta melhor ao projeto. Ao nal do acoplamento, teremos o Emacs usando o CoGrOO para analisar e encontrar erros em textos digitados pelos usuários. O CoGrOO processará um trecho de um texto enviado pelo Emacs a procura de erros e devolverá ao Emacs os erros encontrados e sugestões para correção. O emacs poderá usar os erros apontados pelo CoGrOO para mostrar ao usuário onde ocorreram erros no texto, de forma que o usuário possa identicá-los e arrumá-los. Para isso, o Emacs destacará trechos do texto onde foram detectados erros. Após nalizarmos a parte de acoplar o CoGrOO ao Emacs, temos a intenção de disponibilizar o aplicativo para os usuários. Além disso, pretendemos 4

usar opiniões e sugestões, em relação a erros encontrados no aplicativo e possíveis melhorias, para proporcionar uma evolução no projeto de acordo com as necessidades dos usuários. 3 Atividades já Realizadas Até agora, as seguites tarefas foram realizadas: Estudo da estrutura interna do Emacs. Estudo da linguagem de programação Emacs Lisp. Estudo de conceitos básicos de PLN. Tentativa de fazer o Emacs Lisp se comunicar com o CoGrOO. Estudo do JLinjer. Estudo do Apache UIMA. Estudo do CoGrOO. 4 Cronograma de atividades Junho-Julho de 2010 - Terminar de acoplar o CoGrOO ao Emacs. Junho-Julho de 2010 - Testar o Emacs com duas versões diferentes do CoGrOO, a última versão do CoGrOO sem usar UIMA e versão usando o anotador Apache UIMA. Junho-Julho de 2010 - Disponiblizar o corretor para os usuários. Junho-Novembro de 2010 - Utilizar opiniões dos usuários para melhorar o aplicativo. Junho-Novembro de 2010 - Estudar mais sobre o Emacs e Emacs Lisp. Junho-Novembro de 2010 - Estudar conceitos e algoritmos de PLN. Setembro-Outubro de 2010 - Preparar a apresentação. Junho-Novembro de 2010 - Elaboração/Escrita da monograa. 5

5 Estrutura esperada da monograa Denição de PLN. Utilidades de PLN. Como utilizar PLN para corrigir textos. Algoritmos de PLN pertinentes ao projeto. Descrição do corretor gramatical CoGrOO. Técnologias estudadas e aplicações das mesmas no projeto. Como foi feito o acoplamento do CoGrOO ao Emacs. Como o Emacs utiliza o corretor para fazer a correção de textos. Erros encontrados por usuários. Sugestões de usuários para melhorias. Estado atual do aplicativo com melhorias sugeridas, erros corrigidos e possíveis erros que permanecem. Resultados de testes. Conclusões. Referências [1] Robert J. Chassell. An introduction to programming in emacs lisp. Disponível em: http://www.gnu.org/software/emacs/emacs-lispintro/html n ode/index.html., Acessoem : 2010. [2] William Colen. Cogroo corretor gramatical para openoce.org-guia do desenvolvedor. Disponível em: http://ccsl.ime.usp.br/cogroo/en/node/5., Acesso em: 2010. [3] Apache UIMA Development Community. Apache uima documentation. Disponível em: http://uima.apache.org/documentation.html., Acesso em: 2010. 6

[4] Robert Krawitz, Bil Lewis, Dan LaLiberte, Richard M. Stallman, and Chris Welty. Gnu emacs lisp reference manual. Disponível em: http://www.gnu.org/software/emacs/manual/html n ode/elisp/index.html., Acessoem : 2010. [5] Xah Lee. Xah's emacs lisp tutorial. Disponível em: http://xahlee.org/emacs/elisp.html., Acesso em: 2010. [6] Christopher D. Manning and Hinrich Schutze. Foundations of Statistical Natural Language Processing. MIT press, second edition, 1999. 7