Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Corretor Gramatical Para o Emacs
Trabalho de Conclus˜ ao de Curso
Thiago Maciel batista
Orientador: Prof. Dr. Marcelo Finger Instituto de Matem´ atica e Estat´ıstica
Universidade de S˜ ao Paulo
16 de novembro de 2010
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Roteiro
1 Introdu¸ c˜ ao
2 Processamento de Linguagem Natural PLN Estat´ıstico
3 CoGrOO Estrutura
4 Emacs
5 Acoplamento
Estrutura
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Antes de come¸carmos...
N˜ ao confundir
Corretor gramatical n˜ ao ´ e corretor ortogr´ afico
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Principal objetivo do trabalho
Acoplar um corretor gramatical ao emacs
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Usar o corretor gramatical CoGrOO
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Mas como?
Como o CoGrOO consegue corrigir um texto?
Usando processamento de linguagem natural
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Processamento de Linguagem Natural(PLN)
Defini¸c˜ ao
Area da inteligˆ ´ encia artificial que se concentra no desenvolvimento de algoritmos para manipular linguagens naturais.
Serve para que?
O computador poder´ a interpretar e gerar textos em linguagem
humana.
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
PLN Estat´ıstico
Defini¸c˜ ao
Utiliza modelos prababil´ısticos para processar a linguagem.
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token
N-grama
Modelos n-grama
O principio da m´ axima entropia Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token N-grama
Modelos n-grama
O principio da m´ axima entropia Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token N-grama
Modelos n-grama
O principio da m´ axima entropia Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token N-grama
Modelos n-grama
O principio da m´ axima entropia
Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token N-grama
Modelos n-grama
O principio da m´ axima entropia Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
PLN Estat´ıstico
Conceitos e t´ ecnicas
Token N-grama
Modelos n-grama
O principio da m´ axima entropia Corpus
Aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
CoGrOO
A vers˜ ao usada neste trabalho foi a 3.0.5
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Descri¸c˜ ao
O que ´ e o CoGrOO?
Corretor gramatical para a l´ıngua portuguesa do Brasil Feito para o editor OpenOffice.org
Atualmente usa a linguagem java
Utiliza PLN estat´ıstico para processar os textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Descri¸c˜ ao
O que ´ e o CoGrOO?
Corretor gramatical para a l´ıngua portuguesa do Brasil Feito para o editor OpenOffice.org
Atualmente usa a linguagem java
Utiliza PLN estat´ıstico para processar os textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Descri¸c˜ ao
O que ´ e o CoGrOO?
Corretor gramatical para a l´ıngua portuguesa do Brasil Feito para o editor OpenOffice.org
Atualmente usa a linguagem java
Utiliza PLN estat´ıstico para processar os textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Descri¸c˜ ao
O que ´ e o CoGrOO?
Corretor gramatical para a l´ıngua portuguesa do Brasil Feito para o editor OpenOffice.org
Atualmente usa a linguagem java
Utiliza PLN estat´ıstico para processar os textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Tipos de erros que s˜ ao detectados
S˜ ao detectados erros relacionados a...
Coloca¸ c˜ ao pronominal Concordˆ ancia nominal
Concordˆ ancia entre sujeito e verbo Concordˆ ancia verbal
Uso de crase
Regˆ encia nominal
Regˆ encia verbal
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Ferramentas auxiliares
Dependˆ encias
OpenNLP - Framework para auxiliar no desenvolvimento de projetos de PLN
MAXENT - Pacote que utiliza o conceito do modelo da
m´ axima entropia para fazer aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Ferramentas auxiliares
Dependˆ encias
OpenNLP - Framework para auxiliar no desenvolvimento de projetos de PLN
MAXENT - Pacote que utiliza o conceito do modelo da
m´ axima entropia para fazer aprendizado de m´ aquina
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Estrutura Geral
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Estrutura do n´ ucleo
Principais m´ odulos do n´ ucleo do cogroo e o fluxo para processar
textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
RulesApplier : Aplica as regras gramaticas e gera uma lista de
erros
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
RulesApplier : Aplica as regras gramaticas e gera uma lista de
erros
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
RulesApplier : Aplica as regras gramaticas e gera uma lista de
erros
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
M´ odulos do n´ ucleo do cogroo
Fun¸c˜ ao dos m´ odulos
SentenceDetect : Separa o texto em senten¸cas Tokenizer : Separa senten¸ cas em tokens
ProperNameFinder : Identifica nomes pr´ oprios no texto ContractionSeparator : Identifica contra¸ c˜ oes
Pretagger : Prepara os tokens para receber classifica¸ c˜ ao morfol´ ogica
Postagger : Atribui a cada token uma classifica¸ c˜ ao morfol´ ogica
RulesApplier : Aplica as regras gramaticas e gera uma lista de
erros
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
O que ´ e?
Editor de texto
Poderoso ambiente de trabalho para diversos tipos de projeto Vers˜ ao mais popular ´ e o GNU Emacs
Facilmente extens´ıvel e customiz´ avel por meio da linguagem emacs lisp
H´ a varias extens˜ oes dispon´ıveis
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
E agora?
J´ a temos o emacs e o CoGrOO...
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
E agora?
...mas e agora, como uni-los?
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Interfaces
Mas...
...ainda n˜ ao h´ a intera¸ c˜ ao
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Script para a comunica¸c˜ ao
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Arquivo para enviar o texto
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Arquivo para enviar os erros
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Estrutura
Fluxo para corre¸c˜ ao do texto
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Resultado
O emacs j´ a usa o cogroo para corrigir textos
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Caracter´ısticas
Disponibiliza comandos para o usu´ ario corrigir o texto Sublinha os trechos com erros
Explica porque est´ a errado
Mostra sugest˜ oes de corre¸c˜ ao, quando poss´ıvel
Aceita a sugest˜ ao escolhida pelo usu´ ario por meio do mouse
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados
Trabalhos futuros
Tarefas
Disponibilizar para os usu´ arios Usar sugest˜ oes para melhorias Melhorar intera¸ c˜ ao com os usu´ arios Aperfei¸ coar corre¸ c˜ ao
Reportagem autom´ atica de erros por meio do cogroo
comunidade
Introdu¸c˜ao Processamento de Linguagem Natural CoGrOO Emacs Acoplamento Resultados