SlideShare uma empresa Scribd logo
Processamento Automático da
     Língua Portuguesa

        Wesley Seidel               William Colen
        @wseidel                    @wcolen




                                      LTasks.com
                           O seu aplicativo entendendo o seu texto.
http://devinsampa.com.br
Bio
●   Wesley Seidel             ●   William Colen
       –   Matemático                –   Engenheiro
       –   Pesquisador               –   Pesquisador
       –   Programador               –   Programador
       –   Software livre            –   Software livre
       –   Empreendedor              –   Empreendedor
Língua natural              Língua formal
●   Humana                  ●   Criada artificialmente
●   Comunicação             ●   Matemática, lógica,
                                computação
●   Falada, escrita ou
    gesticulada             ●   Escrita ou digital
●   Rica, viva e natural    ●   Universal
●   Estrutura “escondida”   ●   Estrutura evidente


●   Um livro, um post de    ●   Um banco de dados,
    blog, um tweet              um RDF, um programa
Processamento de Linguagens Naturais (PLN)


Executar tarefas que envolvam linguagem humana




            Extração de informação
        Comunicação homem-máquina
     Melhorar comunicação homem-homem
                      ...
Exemplo: Agente de Conversação
               Computador do filme
               “2001: Uma Odisseia no Espaço”,
               de Stanley Kubrick, 1968
    HAL 9000

                                   Reconhecimento de voz, inter-
●    Conversa fluente em inglês   pretação de linguagem natural

                                   Planejamento de diálogo e sín-
●    Leitura de lábios            tese de voz


Arthur C. Clarke estava otimista de quando teríamos
um sistema de diálogo como o HAL 9000. Mas
quanto longe estamos disso?
Exemplo: Sistema de respostas
   Buscar usando                              Fazer uma
   palavras chave                         pergunta completa

  Fácil para       ●   O que significa “procrastinar”?
os buscadores
    atuais         ●   Em que ano a USP foi fundada?
                   ●   Quantos cursos eram oferecidos na
                       Universidade naquele ano?
  Requer reso-
 lução de infe-    ●   Quanta seda chinesa foi exportada para a
 rências, sínte-
se e resumo de         Inglaterra no final do século 18?
informações de
diversas fontes.
                   ●   O que os cientistas pensam a respeito da
                       clonagem humana?
Exemplo: tradução automática
               Babel Fish é uma espécie fictícia na série
               O Guia do Mochileiro das Galáxias
               (1978), de Douglas Adams.

●   Traduz instantaneamente de qualquer linguagem
    para qualquer linguagem.
●   Seria factível um sistema que fizesse o mesmo que
    o Babel Fish?
●   Imagine poder traduzir para o nosso idioma as
    centenas de milhares de páginas Web que estão
    originalmente em idiomas que não dominamos,
    como o chinês, por exemplo?
Dave Bowan: Open the pod bay doors, HAL.
HAL: I'm sorry Dave, I'm afraid I can't do that.

HAL reconhece palavras em    Reconhecimento
                                 de voz
um sinal de áudio                              Fonética e
e gera áudio a partir de                       Fonologia
sequências de palavras        Síntese de voz



Contrações: I'm, I can't
                                               Morfologia
Interpreta variações: doors (plural)

HAL deve saber que “I'm I do, sorry that
afraid Dave I'm can't.” não teria sentido       Sintaxe
para Dave
Ordem, afirmação ou pergunta?
HAL ainda deve interpretar o que Dave
deseja com a sentença -
   –   Ordem: HAL, open the pod bay door.
   –   Afirmação: HAL, the pod bay door is open.
   –   Pergunta: HAL, is the pod bay door open?
HAL é bem educado no uso do idioma:
   –   I'm sorry, I'm afraid            Pragmática
                                        (ou etiqueta
   –   I can't (no lugar de I won't)     do diálogo)
Quanta seda chinesa foi exportada para a
   Europa Ocidental no final do século 18?


 Semântica     Significado de “exportada”
das palavras   ou “seda”

               Europa            Europa Oriental
Composição
               Ocidental         Sul da Europa
 semântica
               Significado de “final” quando
               combinado a “século 18”
Aplicações: busca semântica




http://www.wolframalpha.com/input/?i=What+year+was+Lula+born%3F
Aplicações: busca semântica




 http://www.powerset.com/explore/go/What-year-Elvis-Presley-died?
Aplicações: busca semântica




   http://www.google.com/squared/search?q=tea
Aplicações: tradução automática




http://translate.google.com/translate_s?hl=en&clss=&q=ciência+da+computação&tq=&sl=pt&tl=zh-CN
Aplicações: corretor gramatical




http://translate.google.com/translate_s?hl=en&clss=&q=ciência+da+computação&tq=&sl=pt&tl=zh-CN
Conhecimento em
    Processamento de Linguagem
    Processador de                  Processador de
        dados                         linguagem


                                   Conhecimento da
                                       língua
●   Programa Unix “wc” - conta total de bytes,
    palavras e linhas de um arquivo texto.
        –   Bytes e linhas → processador de dados
        –   Palavras → processador linguístico
Língua                       Dados

O Plínio Balduino gostou   print tweet.length
do nível da programação       81
do evento para
desenvolvedores            print tweet.author
DevInSampa.                   p_balduino
Ele comentou isto dia 26   print tweet.date
de julho no Twitter. O        20110726
pessoal do DevInSampa
gostou e retweetou.
Ambiguidade: problema fundamental
●   “O sr. Mendonça chegou.”
        –   em “sr.”, o ponto marca fim de sentença?
●   “Quem casa quer casa.”
        –   quando “casa” é verbo ou substantivo?
●   “Eu preparei o pato dela.”
        –   Eu cozinhei o pato dela.
        –   Eu fiz o pato (de plástico?) dela.
Tarefas Processamento de Linguagem
●   Segmentador de Sentenças
●   Tokenizador
●   Reconhecedor de Entidades Nomedas
●   Etiquetador Morfológico
●   Chunker
●   Parser
    …
Segmentador de sentenças
●   Entrada
        O sr. Mendonça chegou. Entrego-lhe os documentos.
●   Saída
        [O sr. Mendonça chegou.]
        [Entrego-lhe os documentos.]
Tokenizador
●   Entrada
        [O sr. Mendonça chegou.]
        [Entrego-lhe os documentos.]
●   Saída
        { [O] [sr.] [Mendonça] [chegou] [.] }
        { [Entrego] [-lhe] [os] [documentos] [.] }
Detector de Entidades Nomeadas
●   Entrada
        O Red Hot se apresentará em São Paulo , o Wesley
          vai no show .
●   Saída
        Bandas                     Pessoas
              Red Hot
              ●                         ●Wesley
        Lugares                    Eventos
              ●   São Paulo             ●   show
Etiquetador Morfológico
●   Entrada
        Quem casa quer casa .
●   Saída
                 Token        Etiqueta
            Quem          pronome
            casa          verbo
            quer          verbo
            casa          substantivo
            .             pontuação
Chunker
●   Entrada
        A Maria vai entregar os documentos ao Pedro.
●   Saída
        A Maria: SN
        vai entregar: SV
        os documentos: SN
        a: SP
        o Pedro: SN
CoGrOO
●   Extensão Corretor Gramatical LGPL para o
    LibreOffice / Apache OpenOffice
●   Aplica processamento de linguagem natural
●   Sua API pode ser usada por outros projetos
CoGrOO
     Sugeito               As menina




Corretor ortográfico   Corretor gramatical


      Sugeito              As menina
Arquitetura do CoGrOO
  Text




 Sentence                                         Subject
                  Tokenizer        Chunker
 Boundary                                          Verb
                     (2)             (5)
Detector (1)                                     Finder (6)




                                                 Grammar
                    Name              PoS
                                                   Error
                  Finder (3)       Tagger (4)
                                                Detector (7)




                                                Suggestions

      Lexical     Language      Error
     Dictionary    Models      Patterns
API do CogrOO 3.x
●   Tarefas disponíveis
       –   Corretor Gramatical
       –   Detector de sentenças, Tokenizer ...
●   Obtenha o binário
       –   Download ou Maven (repo próprio)
●   Documentação
       –   http://ccsl.ime.usp.br/redmine/projects/cogroo/wiki/How_to
API do CogrOO 3.x
Corretor Gramatical
// instantiate the grammar checker passing the configuration
Cogroo theCogroo = new Cogroo(config);

// check the text to get the errors
List<Mistake> erros = theCogroo.checkText(input);
//p rint error details
for (Mistake erro : erros) {
          System.out.println("Message '" + erro.getShortMessage() + "'");

          System.out.println("Wrong text'" +input.substring(erro.getStart(),

               erro.getEnd()) + "'");

          System.out.print   ("   Suggestions:   " );

          for (String suggestion : erro.getSuggestions()) {

                 System.out.print("[" + suggestion + "] ");
      }
}
API do CogrOO 3.x
Analisadores
// check the text to get the errors and the analysis result
CheckerResult results = theCogroo.analyseAndCheckText(input);
//lets show the flat structure
System.out.println("Flat structure for: n" + input);
for (Sentence sentence : results.sentences) {
    for (Token token : sentence.getTokens()) {
          // print the text
          System.out.print("   " + input.substring(
                   token.getSpan().getStart(),
                   token.getSpan().getEnd()));
          //print the lemma
          System.out.print("t lemma[" + token.getPrimitive() + "] ");
          //print the morphological tag, we use a tag interpreter here
        System.out.print("t tag[" + mtagToStr(token.getMorphologicalTag())+"]");
    )
)
API do CogrOO 3.x
 Analisadores
Flat structure for: A moça bonita chegou hoje de carro novo.

      A        lemma[o]          tag[DET_F_S_]

      moça     lemma[moço]       tag[ADJ_F_S_]

      bonita   lemma[bonito]     tag[N_F_S_]

      chegou   lemma[chegar]     tag[V_PS_3S_IND_VFIN_]

      hoje     lemma[hoje]       tag[ADV_]

      de       lemma[de]         tag[PRP_]

      carro    lemma[carro]      tag[N_M_S_]

      novo     lemma[novo]       tag[ADJ_M_S_]

      .        lemma[.]          tag[-PNT_ABS_]
Apache OpenNLP
●   Framework livre para as tarefas de baixo nível
●   Algoritmos de aprendizado de máquina
         (entropia, redes neurais)
●   Treinamento, avaliação e execução
●   Diversos modelos prontos para uso, inclusive
    português
●   http://incubator.apache.org/opennlp/
Apache OpenNLP
 Linha de comando
$ bin/opennlp POSTagger pt-pos-maxent.bin
Quem casa quer casa .

Quem_pron casa_v quer_v casa_s ._.


 API
// load the models
InputStream modelIn = new FileInputStream("pt-pos-maxent.bin");
POSModel model = new POSModel(modelIn);

// load the pos tagger
POSTaggerME tagger = new POSTaggerME(model);

// load the pos tagger
String sent[] = new String[]{"Quem", "casa", "quer", "casa", "."};
String tags[] = tagger.tag(sent);
LTasks.com
●   PLN as a Service: http://www.ltasks.com
●   Enriquece seu texto com metadados
●   Gratuito!
        –   API calls gratuitas
        –   Usuários com grandes necessidades podem
             aumentar a cota
●   Alto desempenho e Alta precisão
●   Webservice (quase) pronto para uso
●   SDK para diversas linguagens (em desenvolvimento)
LTasks.com
●   PLN as a Service: http://www.ltasks.com
●   Enriquece seu texto com metadados
●   Gratuito!
         –   API calls gratuitas
         –   Usuários com grandes necessidades podem aumentar a
               cota
●   Alto desempenho e Alta precisão
●   Webservice (quase) pronto para uso
●   SDK para diversas linguagens (em desenvolvimento)
●   Experimente hoje mesmo!
         –   http://ltasks.com/2011/08/demo-do-ltasks-para-o-devinsampa/
Referências utilizadas
[1] JURAFSKY, D.; MARTIN, J. H. . Speech and Language Processing. 2. ed.: Pearson, 2008.
1024 p.

[2] COLEN, W. Mini-curso Processamento de linguagens naturais: pondo em prática (in
Portuguese), EAIGIME II, August 25-28, 2009

[3] Corretor Gramatical CoGrOO: http://cogroo.sourceforge.net

[4] CoGrOO Comunidade: http://ccsl.ime.usp.br/cogroo/comunidade/

[5] Apache OpenNLP: http://incubator.apache.org/opennlp/

[6] LTasks.com: http://ltasks.com
Muito obrigado!


        Wesley Seidel               William Colen
        @wseidel                    @wcolen




                                      LTasks.com
                           O seu aplicativo entendendo o seu texto.
http://devinsampa.com.br

Mais conteúdo relacionado

ODP
Processamento Automático da Língua Portuguesa - Campus Party Br 6
PDF
Mini-curso Processamento de linguagens naturais: pondo em prática
PDF
Sistemas de Processamento de Linguagem Natural na Prática
PDF
O corretor gramatical CoGrOO - IX Evidosol
PDF
PLN em Perl
PDF
Python Mini Ccurso Consegi2011
PDF
Apresentação python fábio jr alves
PDF
Python - Programando em alto nível
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Mini-curso Processamento de linguagens naturais: pondo em prática
Sistemas de Processamento de Linguagem Natural na Prática
O corretor gramatical CoGrOO - IX Evidosol
PLN em Perl
Python Mini Ccurso Consegi2011
Apresentação python fábio jr alves
Python - Programando em alto nível

Semelhante a Processamento Automático da Língua Portuguesa: DevInSampa 2011 (11)

PDF
Linguística computacional - Tech Week
PDF
Modo Pânico
PDF
Tutorial em Processamento de Linguagem Natural
PPT
Vocabulário de termos e listas de postings
PPT
Evaluation of multi user system of voice interaction using grammars(slide share)
PDF
Linguagens Formais
PDF
CoGrOO 4.0 no FISL 13
PDF
Processamento de Linguagem natural com PHP
ODP
Cogroo Google Oss Jam Sao Paulo V01
PPTX
Expressões regulares
PDF
Processo de Tradução Automática da Língua Portuguesa para LIBRAS
Linguística computacional - Tech Week
Modo Pânico
Tutorial em Processamento de Linguagem Natural
Vocabulário de termos e listas de postings
Evaluation of multi user system of voice interaction using grammars(slide share)
Linguagens Formais
CoGrOO 4.0 no FISL 13
Processamento de Linguagem natural com PHP
Cogroo Google Oss Jam Sao Paulo V01
Expressões regulares
Processo de Tradução Automática da Língua Portuguesa para LIBRAS
Anúncio

Último (19)

PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Aula 18 - Manipulacao De Arquivos python
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Processos na gestão de transportes, TM100 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Apple Pippin Uma breve introdução. - David Glotz
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
COBITxITIL-Entenda as diferença em uso governança TI
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Anúncio

Processamento Automático da Língua Portuguesa: DevInSampa 2011

  • 1. Processamento Automático da Língua Portuguesa Wesley Seidel William Colen @wseidel @wcolen LTasks.com O seu aplicativo entendendo o seu texto. http://devinsampa.com.br
  • 2. Bio ● Wesley Seidel ● William Colen – Matemático – Engenheiro – Pesquisador – Pesquisador – Programador – Programador – Software livre – Software livre – Empreendedor – Empreendedor
  • 3. Língua natural Língua formal ● Humana ● Criada artificialmente ● Comunicação ● Matemática, lógica, computação ● Falada, escrita ou gesticulada ● Escrita ou digital ● Rica, viva e natural ● Universal ● Estrutura “escondida” ● Estrutura evidente ● Um livro, um post de ● Um banco de dados, blog, um tweet um RDF, um programa
  • 4. Processamento de Linguagens Naturais (PLN) Executar tarefas que envolvam linguagem humana Extração de informação Comunicação homem-máquina Melhorar comunicação homem-homem ...
  • 5. Exemplo: Agente de Conversação Computador do filme “2001: Uma Odisseia no Espaço”, de Stanley Kubrick, 1968 HAL 9000 Reconhecimento de voz, inter- ● Conversa fluente em inglês pretação de linguagem natural Planejamento de diálogo e sín- ● Leitura de lábios tese de voz Arthur C. Clarke estava otimista de quando teríamos um sistema de diálogo como o HAL 9000. Mas quanto longe estamos disso?
  • 6. Exemplo: Sistema de respostas Buscar usando Fazer uma palavras chave pergunta completa Fácil para ● O que significa “procrastinar”? os buscadores atuais ● Em que ano a USP foi fundada? ● Quantos cursos eram oferecidos na Universidade naquele ano? Requer reso- lução de infe- ● Quanta seda chinesa foi exportada para a rências, sínte- se e resumo de Inglaterra no final do século 18? informações de diversas fontes. ● O que os cientistas pensam a respeito da clonagem humana?
  • 7. Exemplo: tradução automática Babel Fish é uma espécie fictícia na série O Guia do Mochileiro das Galáxias (1978), de Douglas Adams. ● Traduz instantaneamente de qualquer linguagem para qualquer linguagem. ● Seria factível um sistema que fizesse o mesmo que o Babel Fish? ● Imagine poder traduzir para o nosso idioma as centenas de milhares de páginas Web que estão originalmente em idiomas que não dominamos, como o chinês, por exemplo?
  • 8. Dave Bowan: Open the pod bay doors, HAL. HAL: I'm sorry Dave, I'm afraid I can't do that. HAL reconhece palavras em Reconhecimento de voz um sinal de áudio Fonética e e gera áudio a partir de Fonologia sequências de palavras Síntese de voz Contrações: I'm, I can't Morfologia Interpreta variações: doors (plural) HAL deve saber que “I'm I do, sorry that afraid Dave I'm can't.” não teria sentido Sintaxe para Dave
  • 9. Ordem, afirmação ou pergunta? HAL ainda deve interpretar o que Dave deseja com a sentença - – Ordem: HAL, open the pod bay door. – Afirmação: HAL, the pod bay door is open. – Pergunta: HAL, is the pod bay door open? HAL é bem educado no uso do idioma: – I'm sorry, I'm afraid Pragmática (ou etiqueta – I can't (no lugar de I won't) do diálogo)
  • 10. Quanta seda chinesa foi exportada para a Europa Ocidental no final do século 18? Semântica Significado de “exportada” das palavras ou “seda” Europa Europa Oriental Composição Ocidental Sul da Europa semântica Significado de “final” quando combinado a “século 18”
  • 12. Aplicações: busca semântica http://www.powerset.com/explore/go/What-year-Elvis-Presley-died?
  • 13. Aplicações: busca semântica http://www.google.com/squared/search?q=tea
  • 16. Conhecimento em Processamento de Linguagem Processador de Processador de dados linguagem Conhecimento da língua ● Programa Unix “wc” - conta total de bytes, palavras e linhas de um arquivo texto. – Bytes e linhas → processador de dados – Palavras → processador linguístico
  • 17. Língua Dados O Plínio Balduino gostou print tweet.length do nível da programação 81 do evento para desenvolvedores print tweet.author DevInSampa. p_balduino Ele comentou isto dia 26 print tweet.date de julho no Twitter. O 20110726 pessoal do DevInSampa gostou e retweetou.
  • 18. Ambiguidade: problema fundamental ● “O sr. Mendonça chegou.” – em “sr.”, o ponto marca fim de sentença? ● “Quem casa quer casa.” – quando “casa” é verbo ou substantivo? ● “Eu preparei o pato dela.” – Eu cozinhei o pato dela. – Eu fiz o pato (de plástico?) dela.
  • 19. Tarefas Processamento de Linguagem ● Segmentador de Sentenças ● Tokenizador ● Reconhecedor de Entidades Nomedas ● Etiquetador Morfológico ● Chunker ● Parser …
  • 20. Segmentador de sentenças ● Entrada O sr. Mendonça chegou. Entrego-lhe os documentos. ● Saída [O sr. Mendonça chegou.] [Entrego-lhe os documentos.]
  • 21. Tokenizador ● Entrada [O sr. Mendonça chegou.] [Entrego-lhe os documentos.] ● Saída { [O] [sr.] [Mendonça] [chegou] [.] } { [Entrego] [-lhe] [os] [documentos] [.] }
  • 22. Detector de Entidades Nomeadas ● Entrada O Red Hot se apresentará em São Paulo , o Wesley vai no show . ● Saída Bandas Pessoas Red Hot ● ●Wesley Lugares Eventos ● São Paulo ● show
  • 23. Etiquetador Morfológico ● Entrada Quem casa quer casa . ● Saída Token Etiqueta Quem pronome casa verbo quer verbo casa substantivo . pontuação
  • 24. Chunker ● Entrada A Maria vai entregar os documentos ao Pedro. ● Saída A Maria: SN vai entregar: SV os documentos: SN a: SP o Pedro: SN
  • 25. CoGrOO ● Extensão Corretor Gramatical LGPL para o LibreOffice / Apache OpenOffice ● Aplica processamento de linguagem natural ● Sua API pode ser usada por outros projetos
  • 26. CoGrOO Sugeito As menina Corretor ortográfico Corretor gramatical Sugeito As menina
  • 27. Arquitetura do CoGrOO Text Sentence Subject Tokenizer Chunker Boundary Verb (2) (5) Detector (1) Finder (6) Grammar Name PoS Error Finder (3) Tagger (4) Detector (7) Suggestions Lexical Language Error Dictionary Models Patterns
  • 28. API do CogrOO 3.x ● Tarefas disponíveis – Corretor Gramatical – Detector de sentenças, Tokenizer ... ● Obtenha o binário – Download ou Maven (repo próprio) ● Documentação – http://ccsl.ime.usp.br/redmine/projects/cogroo/wiki/How_to
  • 29. API do CogrOO 3.x Corretor Gramatical // instantiate the grammar checker passing the configuration Cogroo theCogroo = new Cogroo(config); // check the text to get the errors List<Mistake> erros = theCogroo.checkText(input); //p rint error details for (Mistake erro : erros) { System.out.println("Message '" + erro.getShortMessage() + "'"); System.out.println("Wrong text'" +input.substring(erro.getStart(), erro.getEnd()) + "'"); System.out.print (" Suggestions: " ); for (String suggestion : erro.getSuggestions()) { System.out.print("[" + suggestion + "] "); } }
  • 30. API do CogrOO 3.x Analisadores // check the text to get the errors and the analysis result CheckerResult results = theCogroo.analyseAndCheckText(input); //lets show the flat structure System.out.println("Flat structure for: n" + input); for (Sentence sentence : results.sentences) { for (Token token : sentence.getTokens()) { // print the text System.out.print(" " + input.substring( token.getSpan().getStart(), token.getSpan().getEnd())); //print the lemma System.out.print("t lemma[" + token.getPrimitive() + "] "); //print the morphological tag, we use a tag interpreter here System.out.print("t tag[" + mtagToStr(token.getMorphologicalTag())+"]"); ) )
  • 31. API do CogrOO 3.x Analisadores Flat structure for: A moça bonita chegou hoje de carro novo. A lemma[o] tag[DET_F_S_] moça lemma[moço] tag[ADJ_F_S_] bonita lemma[bonito] tag[N_F_S_] chegou lemma[chegar] tag[V_PS_3S_IND_VFIN_] hoje lemma[hoje] tag[ADV_] de lemma[de] tag[PRP_] carro lemma[carro] tag[N_M_S_] novo lemma[novo] tag[ADJ_M_S_] . lemma[.] tag[-PNT_ABS_]
  • 32. Apache OpenNLP ● Framework livre para as tarefas de baixo nível ● Algoritmos de aprendizado de máquina (entropia, redes neurais) ● Treinamento, avaliação e execução ● Diversos modelos prontos para uso, inclusive português ● http://incubator.apache.org/opennlp/
  • 33. Apache OpenNLP Linha de comando $ bin/opennlp POSTagger pt-pos-maxent.bin Quem casa quer casa . Quem_pron casa_v quer_v casa_s ._. API // load the models InputStream modelIn = new FileInputStream("pt-pos-maxent.bin"); POSModel model = new POSModel(modelIn); // load the pos tagger POSTaggerME tagger = new POSTaggerME(model); // load the pos tagger String sent[] = new String[]{"Quem", "casa", "quer", "casa", "."}; String tags[] = tagger.tag(sent);
  • 34. LTasks.com ● PLN as a Service: http://www.ltasks.com ● Enriquece seu texto com metadados ● Gratuito! – API calls gratuitas – Usuários com grandes necessidades podem aumentar a cota ● Alto desempenho e Alta precisão ● Webservice (quase) pronto para uso ● SDK para diversas linguagens (em desenvolvimento)
  • 35. LTasks.com ● PLN as a Service: http://www.ltasks.com ● Enriquece seu texto com metadados ● Gratuito! – API calls gratuitas – Usuários com grandes necessidades podem aumentar a cota ● Alto desempenho e Alta precisão ● Webservice (quase) pronto para uso ● SDK para diversas linguagens (em desenvolvimento) ● Experimente hoje mesmo! – http://ltasks.com/2011/08/demo-do-ltasks-para-o-devinsampa/
  • 36. Referências utilizadas [1] JURAFSKY, D.; MARTIN, J. H. . Speech and Language Processing. 2. ed.: Pearson, 2008. 1024 p. [2] COLEN, W. Mini-curso Processamento de linguagens naturais: pondo em prática (in Portuguese), EAIGIME II, August 25-28, 2009 [3] Corretor Gramatical CoGrOO: http://cogroo.sourceforge.net [4] CoGrOO Comunidade: http://ccsl.ime.usp.br/cogroo/comunidade/ [5] Apache OpenNLP: http://incubator.apache.org/opennlp/ [6] LTasks.com: http://ltasks.com
  • 37. Muito obrigado! Wesley Seidel William Colen @wseidel @wcolen LTasks.com O seu aplicativo entendendo o seu texto. http://devinsampa.com.br