SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
O Corretor Gramatical CoGrOO
Apresentado no                                                  5 de junho de 2012
IX EVIDOSOL e VI CILTEC-online
IX Encontro Virtual de Documentação em Software Livre
e VI Congresso Internacional de Linguagem e Tecnologia online
                                       Arthur Branco Costa
                                                William Colen




                              http://cogroo.sourceforge.net                          1
O que é o CoGrOO?


   CoGrOO é um corretor gramatical para
português do Brasil, que pode ser usado nas
    principais suítes livres de escritório.




               http://cogroo.sourceforge.net   2
Exemplo



●   Usuário digita um texto
●   O verificador executa
    uma análise
    gramatical, buscando
    padrões de erros na
    estrutura gerada
●   O verificador sugere correções




                        http://cogroo.sourceforge.net   3
Integração BrOffice.org




       http://cogroo.sourceforge.net   4
Integração BrOffice.org




       http://cogroo.sourceforge.net   5
Integração BrOffice.org




       http://cogroo.sourceforge.net   6
Analisador de Textos
●   Delimitador de sentenças e tokens
●   Etiquetador morfológico
●   Identificador de sintagmas
●   Identificador de sujeitos
●   Etc...




                         http://cogroo.sourceforge.net   7
Analisador de Textos
●   USP
    ●   Pesquisa IME/Hospital AC Camargo: análise de laudos clínicos (CID)
    ●   IME: auxilia a extração automática de ontologias de transcrições de
        vídeos e entrevistas (OnAir)
    ●   Poli: interação homem-máquina (robô sociável)
●   UFMG
    ●   Projeto Dados Semiótica: análise automatizada dos dados coletados
●   PUC-PR
    ●   Classificação automática de laudos clínicos (CID)
●   UFPA
    ●   Auxílio na transcrição e geração automática de texto (projeto Fale)


                              http://cogroo.sourceforge.net                   8
Analisador de textos que vocês podem usar
●   Análise automatizada inicial de corpus
●   Parte de um processamento mais complexo
    ...


                         Livremente!
●   Mas... cite nossos artigos :)
●   Divulgue nosso trabalho
●   Colabore com o desenvolvimento



                         http://cogroo.sourceforge.net   9
Como funciona?
●   Processamento de Linguagem Natural probabilística +
    sistema de regras:
    ●   Aprendizado de máquina usando corpus na fase de análise
    ●   Regras de erros são aplicadas nas estruturas resultantes
●   Usa bibliotecas livres como Apache OpenNLP
    (aprendizado de máquina), Jspell (léxico) e
    Morfologik-Stemming (compactação do léxico)

                      Apache




                              http://cogroo.sourceforge.net        10
Como funciona?




     http://ccsl.ime.usp.br/cogroo/comunidade/grammar
 http://cogroo.sourceforge.net                          11
Como funciona?




     http://ccsl.ime.usp.br/cogroo/comunidade/grammar
 http://cogroo.sourceforge.net                          12
Como funciona?




           http://ccsl.ime.usp.br/cogroo/comunidade/rules
 http://cogroo.sourceforge.net                          13
Recursos linguísticos: corpus para treinamento
●   Usado no treinamento dos módulos estatísticos
●   CoGrOO “aprende” português
●   Usamos os corpora Bosque e Floresta Virgem do projeto
    Floresta Sintática (abertamente distribuídos)
     ●   Textos jornalísticos (Folha): sem primeira pessoa, linguagem jornalística
     ●   Apesar de revisados ainda encontramos erros: o CoGrOO aprende
         errado
●   Os conhecimentos que ele obtém no treinamento são
    usados para analisar novos textos.




                               http://cogroo.sourceforge.net                     14
Recursos linguísticos: corpus para treinamento
SOURCE: CETENFolha n=904 cad="Esporte" sec="des" sem="94a"
CF904-1 Desorganização e violência marcam torneio que consolida o 'efeito Copa'.
A1
STA:fcl
=SUBJ:cu
==CJT:np
===H:n('desorganização' <np-idf> F S) Desorganização
==CO:conj-c('e' <co-subj>) e
==CJT:np
===H:n('violência' <np-idf> F S) violência
=P:vp
==MV:v-fin('marcar' PR 3P IND) marcam
=ACC:np
==H:n('torneio' <np-idf> M S)      torneio
==N<:fcl
===SUBJ:np
====H:pron-indp('que' <rel> M S) que
===P:vp
====MV:v-fin('consolidar' <fs-rel> PR 3S IND)   consolida
===ACC:np
====>N:art('o' <artd> M S) o
===='
====H:n('efeito' M S) efeito
====N<:np
=====H:prop('Copa' F S) Copa
===='
=.

                                         http://cogroo.sourceforge.net             15
Recursos linguísticos: corpus para avaliação
●   Corpus Metrô
    ●   Textos extraídos do site institucional do Metrô de São Paulo.
    ●   Erros anotados manualmente (aproximadamente 800 sentenças e 51
        erros)
●   Corpus Probi
    ●   Desenvolvido pelo NILC (USP São Carlos – UFSCAR) para o projeto
        ReGra (corretor gramatical proprietário do MS Office)
    ●   11.624 sentenças, 2.616 com alguma erros




                              http://cogroo.sourceforge.net               16
Recursos linguísticos: regras
●   Desenvolvidas por linguistas
●   Regras simples que podem ser descritas usando
    sequência de tokens em um arquivo de configuração




                       http://cogroo.sourceforge.net    17
Recursos linguísticos: regras
●   Regras mais complexas são desenvolvidas em linguagem
    de programação
●   Por exemplo, estamos trabalhando hoje no mecanismo
    para regras de regência verbal
    ●   Inspirado no artigo:
        Software livre e gramática: regência verbal no revisor de textos do BrOffice
         dos estudantes Luana Flávia Cotta Drumond, Cinara Kelly Alves Cruz e
        Felipe da Fonseca Martins, para o UEADSL 2011.1
    ●   As estudantes Cinara Cruz e Ana Paula Queiroz continuam colaborando
        com o projeto.




                              http://cogroo.sourceforge.net                     18
JSpell – o que é?
●   Analisador morfológico:
        Gera a partir de palavras básicas as suas derivações, utilizando-se de regras
        simples.
        Realizado pelo Projecto Natura, da universidade do Minho, Portugal;


●   Como funciona:
    ●   O banco de dados contém, por exemplo, a palavra alugar com algumas
        etiquetas;
    ●   Para cada etiqueta uma regra de formação de palavras lhe é aplicada;
    ●   Assim, criam-se todas as suas conjugações verbais, bem como, as palavras:
        alugador, alugável, subalugar e alugamento; e
    ●   as derivações dessas, como: alugadoras, alugáveis, subalugou-se,
        subalugadores, subalugá-lo-íamos, alugamentos, etc;
    ●   Resultado: a partir da palavra alugar, foram geradas 209 palavras.
                                 http://cogroo.sourceforge.net                    19
JSpell
Vantagens:
●   Abrangência: contém mais de 900.000 verbetes;
●   Código Livre;
●   Feito manualmente, a quantidade de erros é notoriamente menor que a
    de geradores automáticos;
●   Regras simples, de fácil compreensão e que podem ser redefinidas.


Problemas:
●   Ainda contém alguns erros, algumas regras devem ser melhor
    formuladas, devido à quantidade de exceções na língua portuguesa.
●   Feito para português de Portugal: é necessário atualizar diversas
    palavras.
                    Colabore conosco nessa parte! =]

                          http://cogroo.sourceforge.net                   20
JSpell – entradas do dicionário
Justo / #a/msIfp/

Lema                    Etiquetas



#a:    adjetivo
m:     -mente → justamente                     - #av: advérbio
s:     -íssimo → justíssimo
I:     in-        → injusto, injustamente
f:     feminino → justa, justíssima, injusta
p:     plural     → justos, justíssimos, injustos, justas,
                     justíssimas, injustas.
                       http://cogroo.sourceforge.net             21
JSpell – funcionamento de uma flag
 Flag: m → Adiciona o sufixo -mente nas “palavras válidas”
 “CAT = adj, N = s” → palavras válidas: adjetivos no singular
                     que tenham a flag m.

   Terminação                                          Mudança de
                       Acréscimo do sufixo                                   Exemplo
    da palavra                                         classificação
         -O                 -O, AMENTE;                “CAT = Adv”
(palavras terminadas    (elimina a letra 'o' e     (o adjetivo torna-se    # Abertamente
   com a letra 'o')    acrescenta “amente”)           um advérbio)
        -U                   AMENTE;                    “CAT = Adv”         # Cruamente
    - [^V][^E][^L]            MENTE;
 (palavras que não         (acrescenta o                “CAT = Adv”       # Anteriormente
 acabam com -vel)          sufixo -mente)
                       -ÁVEL, AVELMENTE;
      - ÁVEL                                            “CAT = Adv”       # Miseravelmente
                         (perda do acento)
       - ÍVEL          -ÍVEL, IVELMENTE;                “CAT = Adv”       # Horrivelmente
                                 http://cogroo.sourceforge.net                             22
Obrigado pela oportunidade e pela atenção!


         http://cogroo.sourceforge.net
              http://ccsl.ime.usp.br




               http://cogroo.sourceforge.net   23

Contenu connexe

Tendances

02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptxwilliam Sarti José
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasVitor Mattos
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 

Tendances (20)

02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Dojo de Python
Dojo de PythonDojo de Python
Dojo de Python
 
Python WTFAQ?
Python WTFAQ?Python WTFAQ?
Python WTFAQ?
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 

Similaire à Corretor gramatical CoGrOO apresentado em evento de software livre

CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13William Colen
 
Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01William Colen
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDouglas V. Pasqua
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonMarinho Brandão
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 
Tutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jqueryTutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jqueryLuan Campos
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoFelipeDi
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
 
Cogroo Comunidade no FISL XI
Cogroo Comunidade no FISL XICogroo Comunidade no FISL XI
Cogroo Comunidade no FISL XIWilliam Colen
 

Similaire à Corretor gramatical CoGrOO apresentado em evento de software livre (20)

CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13
 
Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Go
Go Go
Go
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
Tutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jqueryTutorial java script orientado à objeto e jquery
Tutorial java script orientado à objeto e jquery
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open Source
 
Cogroo Comunidade no FISL XI
Cogroo Comunidade no FISL XICogroo Comunidade no FISL XI
Cogroo Comunidade no FISL XI
 

Corretor gramatical CoGrOO apresentado em evento de software livre

  • 1. O Corretor Gramatical CoGrOO Apresentado no 5 de junho de 2012 IX EVIDOSOL e VI CILTEC-online IX Encontro Virtual de Documentação em Software Livre e VI Congresso Internacional de Linguagem e Tecnologia online Arthur Branco Costa William Colen http://cogroo.sourceforge.net 1
  • 2. O que é o CoGrOO? CoGrOO é um corretor gramatical para português do Brasil, que pode ser usado nas principais suítes livres de escritório. http://cogroo.sourceforge.net 2
  • 3. Exemplo ● Usuário digita um texto ● O verificador executa uma análise gramatical, buscando padrões de erros na estrutura gerada ● O verificador sugere correções http://cogroo.sourceforge.net 3
  • 4. Integração BrOffice.org http://cogroo.sourceforge.net 4
  • 5. Integração BrOffice.org http://cogroo.sourceforge.net 5
  • 6. Integração BrOffice.org http://cogroo.sourceforge.net 6
  • 7. Analisador de Textos ● Delimitador de sentenças e tokens ● Etiquetador morfológico ● Identificador de sintagmas ● Identificador de sujeitos ● Etc... http://cogroo.sourceforge.net 7
  • 8. Analisador de Textos ● USP ● Pesquisa IME/Hospital AC Camargo: análise de laudos clínicos (CID) ● IME: auxilia a extração automática de ontologias de transcrições de vídeos e entrevistas (OnAir) ● Poli: interação homem-máquina (robô sociável) ● UFMG ● Projeto Dados Semiótica: análise automatizada dos dados coletados ● PUC-PR ● Classificação automática de laudos clínicos (CID) ● UFPA ● Auxílio na transcrição e geração automática de texto (projeto Fale) http://cogroo.sourceforge.net 8
  • 9. Analisador de textos que vocês podem usar ● Análise automatizada inicial de corpus ● Parte de um processamento mais complexo ... Livremente! ● Mas... cite nossos artigos :) ● Divulgue nosso trabalho ● Colabore com o desenvolvimento http://cogroo.sourceforge.net 9
  • 10. Como funciona? ● Processamento de Linguagem Natural probabilística + sistema de regras: ● Aprendizado de máquina usando corpus na fase de análise ● Regras de erros são aplicadas nas estruturas resultantes ● Usa bibliotecas livres como Apache OpenNLP (aprendizado de máquina), Jspell (léxico) e Morfologik-Stemming (compactação do léxico) Apache http://cogroo.sourceforge.net 10
  • 11. Como funciona? http://ccsl.ime.usp.br/cogroo/comunidade/grammar http://cogroo.sourceforge.net 11
  • 12. Como funciona? http://ccsl.ime.usp.br/cogroo/comunidade/grammar http://cogroo.sourceforge.net 12
  • 13. Como funciona? http://ccsl.ime.usp.br/cogroo/comunidade/rules http://cogroo.sourceforge.net 13
  • 14. Recursos linguísticos: corpus para treinamento ● Usado no treinamento dos módulos estatísticos ● CoGrOO “aprende” português ● Usamos os corpora Bosque e Floresta Virgem do projeto Floresta Sintática (abertamente distribuídos) ● Textos jornalísticos (Folha): sem primeira pessoa, linguagem jornalística ● Apesar de revisados ainda encontramos erros: o CoGrOO aprende errado ● Os conhecimentos que ele obtém no treinamento são usados para analisar novos textos. http://cogroo.sourceforge.net 14
  • 15. Recursos linguísticos: corpus para treinamento SOURCE: CETENFolha n=904 cad="Esporte" sec="des" sem="94a" CF904-1 Desorganização e violência marcam torneio que consolida o 'efeito Copa'. A1 STA:fcl =SUBJ:cu ==CJT:np ===H:n('desorganização' <np-idf> F S) Desorganização ==CO:conj-c('e' <co-subj>) e ==CJT:np ===H:n('violência' <np-idf> F S) violência =P:vp ==MV:v-fin('marcar' PR 3P IND) marcam =ACC:np ==H:n('torneio' <np-idf> M S) torneio ==N<:fcl ===SUBJ:np ====H:pron-indp('que' <rel> M S) que ===P:vp ====MV:v-fin('consolidar' <fs-rel> PR 3S IND) consolida ===ACC:np ====>N:art('o' <artd> M S) o ====' ====H:n('efeito' M S) efeito ====N<:np =====H:prop('Copa' F S) Copa ====' =. http://cogroo.sourceforge.net 15
  • 16. Recursos linguísticos: corpus para avaliação ● Corpus Metrô ● Textos extraídos do site institucional do Metrô de São Paulo. ● Erros anotados manualmente (aproximadamente 800 sentenças e 51 erros) ● Corpus Probi ● Desenvolvido pelo NILC (USP São Carlos – UFSCAR) para o projeto ReGra (corretor gramatical proprietário do MS Office) ● 11.624 sentenças, 2.616 com alguma erros http://cogroo.sourceforge.net 16
  • 17. Recursos linguísticos: regras ● Desenvolvidas por linguistas ● Regras simples que podem ser descritas usando sequência de tokens em um arquivo de configuração http://cogroo.sourceforge.net 17
  • 18. Recursos linguísticos: regras ● Regras mais complexas são desenvolvidas em linguagem de programação ● Por exemplo, estamos trabalhando hoje no mecanismo para regras de regência verbal ● Inspirado no artigo: Software livre e gramática: regência verbal no revisor de textos do BrOffice dos estudantes Luana Flávia Cotta Drumond, Cinara Kelly Alves Cruz e Felipe da Fonseca Martins, para o UEADSL 2011.1 ● As estudantes Cinara Cruz e Ana Paula Queiroz continuam colaborando com o projeto. http://cogroo.sourceforge.net 18
  • 19. JSpell – o que é? ● Analisador morfológico: Gera a partir de palavras básicas as suas derivações, utilizando-se de regras simples. Realizado pelo Projecto Natura, da universidade do Minho, Portugal; ● Como funciona: ● O banco de dados contém, por exemplo, a palavra alugar com algumas etiquetas; ● Para cada etiqueta uma regra de formação de palavras lhe é aplicada; ● Assim, criam-se todas as suas conjugações verbais, bem como, as palavras: alugador, alugável, subalugar e alugamento; e ● as derivações dessas, como: alugadoras, alugáveis, subalugou-se, subalugadores, subalugá-lo-íamos, alugamentos, etc; ● Resultado: a partir da palavra alugar, foram geradas 209 palavras. http://cogroo.sourceforge.net 19
  • 20. JSpell Vantagens: ● Abrangência: contém mais de 900.000 verbetes; ● Código Livre; ● Feito manualmente, a quantidade de erros é notoriamente menor que a de geradores automáticos; ● Regras simples, de fácil compreensão e que podem ser redefinidas. Problemas: ● Ainda contém alguns erros, algumas regras devem ser melhor formuladas, devido à quantidade de exceções na língua portuguesa. ● Feito para português de Portugal: é necessário atualizar diversas palavras. Colabore conosco nessa parte! =] http://cogroo.sourceforge.net 20
  • 21. JSpell – entradas do dicionário Justo / #a/msIfp/ Lema Etiquetas #a: adjetivo m: -mente → justamente - #av: advérbio s: -íssimo → justíssimo I: in- → injusto, injustamente f: feminino → justa, justíssima, injusta p: plural → justos, justíssimos, injustos, justas, justíssimas, injustas. http://cogroo.sourceforge.net 21
  • 22. JSpell – funcionamento de uma flag Flag: m → Adiciona o sufixo -mente nas “palavras válidas” “CAT = adj, N = s” → palavras válidas: adjetivos no singular que tenham a flag m. Terminação Mudança de Acréscimo do sufixo Exemplo da palavra classificação -O -O, AMENTE; “CAT = Adv” (palavras terminadas (elimina a letra 'o' e (o adjetivo torna-se # Abertamente com a letra 'o') acrescenta “amente”) um advérbio) -U AMENTE; “CAT = Adv” # Cruamente - [^V][^E][^L] MENTE; (palavras que não (acrescenta o “CAT = Adv” # Anteriormente acabam com -vel) sufixo -mente) -ÁVEL, AVELMENTE; - ÁVEL “CAT = Adv” # Miseravelmente (perda do acento) - ÍVEL -ÍVEL, IVELMENTE; “CAT = Adv” # Horrivelmente http://cogroo.sourceforge.net 22
  • 23. Obrigado pela oportunidade e pela atenção! http://cogroo.sourceforge.net http://ccsl.ime.usp.br http://cogroo.sourceforge.net 23