Successfully reported this slideshow.

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

7

Share

1 of 37
1 of 37

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

  1. 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. 2. Bio ● Wesley Seidel ● William Colen – Matemático – Engenheiro – Pesquisador – Pesquisador – Programador – Programador – Software livre – Software livre – Empreendedor – Empreendedor
  3. 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. 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. 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. 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. 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. 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. 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. 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”
  11. 11. Aplicações: busca semântica http://www.wolframalpha.com/input/?i=What+year+was+Lula+born%3F
  12. 12. Aplicações: busca semântica http://www.powerset.com/explore/go/What-year-Elvis-Presley-died?
  13. 13. Aplicações: busca semântica http://www.google.com/squared/search?q=tea
  14. 14. 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
  15. 15. 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
  16. 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. 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. 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. 19. Tarefas Processamento de Linguagem ● Segmentador de Sentenças ● Tokenizador ● Reconhecedor de Entidades Nomedas ● Etiquetador Morfológico ● Chunker ● Parser …
  20. 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. 21. Tokenizador ● Entrada [O sr. Mendonça chegou.] [Entrego-lhe os documentos.] ● Saída { [O] [sr.] [Mendonça] [chegou] [.] } { [Entrego] [-lhe] [os] [documentos] [.] }
  22. 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. 23. Etiquetador Morfológico ● Entrada Quem casa quer casa . ● Saída Token Etiqueta Quem pronome casa verbo quer verbo casa substantivo . pontuação
  24. 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. 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. 26. CoGrOO Sugeito As menina Corretor ortográfico Corretor gramatical Sugeito As menina
  27. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 37. Muito obrigado! Wesley Seidel William Colen @wseidel @wcolen LTasks.com O seu aplicativo entendendo o seu texto. http://devinsampa.com.br

×