Your SlideShare is downloading. ×
Processamento Automático da Língua Portuguesa - Campus Party Br 6
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Processamento Automático da Língua Portuguesa - Campus Party Br 6

915

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
915
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Contraste entre língua natural e língua formal de acordo com a Filosofia da Linguagem: In the philosophy of language, a natural language (or ordinary language) is any language which arises in an unpremeditated fashion as the result of the innate facility for language possessed by the human intellect. A natural language is typically used for communication, and may be spoken, signed, or written. Natural language is distinguished from constructed languages and formal languages such as computer-programming languages or the "languages" used in the study of formal logic, especially mathematical logic.
  • Contraste entre língua natural e língua formal de acordo com a Filosofia da Linguagem: In the philosophy of language, a natural language (or ordinary language) is any language which arises in an unpremeditated fashion as the result of the innate facility for language possessed by the human intellect. A natural language is typically used for communication, and may be spoken, signed, or written. Natural language is distinguished from constructed languages and formal languages such as computer-programming languages or the "languages" used in the study of formal logic, especially mathematical logic.
  • MOTIVAÇÃO É um campo multidisciplinar com muitos nomes: processamento de fala e língua, engenharia da linguagem humana, PLN, linguística computacional A META desse campo é que ....... Tarefas como .......
  • Agente de conversação - Programas como o hal q conversam com humanos em linguagem natural são chamados de agente de conversação
  • Generalização dos buscadores – ao invés de buscar por palavras chaves, que tal fazer uma pergunta completa e bem definida?
  • Exemplo do que se consegue extrair de um tweet Língua formal: Permite extrair detalhes como o humor do locutor,
  • Transcript

    • 1. Processamento Automático da Língua Portuguesa Wesley Seidel William Colen @wseidel @wcolen LTasks.com O seu aplicativo entendendo o seu texto.http://www.campus-party.com.br/
    • 2. Agenda● Quem somos?● O que é uma Linguagem Natural?● E Processamento de Linguagem Natural (PLN)?● Alguns exemplos● Língua versus Dados● Por que é difícil? → Ambiguidade● Tarefas PLN● Bibliotecas: CoGrOO, OpenNLP e LTask
    • 3. Quem somos?● Wesley Seidel ● William Colen – Matemático – Engenheiro Computação – Mestre em CC – (Quase) mestre em CC – Pesquisador – Pesquisador – Programador – Programador – Software livre – Software livre – Empreendedor – Empreendedor
    • 4. O que éLinguagem Natural?
    • 5. 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● Texto de livro ● Tabela do BD● Post em um blog ● Arquivo XML● Tweet ● Código fonte
    • 6. Processamento de Linguagens Naturais (PLN) Tarefas computacionais que envolvam a linguagem humana Extração de informação Comunicação homem-máquina Melhorar comunicação homem-homem ...
    • 7. Exemplo: Agente de Conversação Computador de “2001: Uma Odisseia no Espaço”, de Stanley Kubrick, 1968HAL 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 vozArthur C. Clarke estava otimista de quando teríamosum sistema de diálogo como o HAL 9000. Masquanto longe estamos disso?
    • 8. 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?
    • 9. 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 foi a primeira Campus Party? ● Quantas palestras sobre desenvolvimento web foram oferecidas naquele edição? 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 dediversas fontes. ● O que os cientistas pensam a respeito da clonagem humana?
    • 10. Alguns sistemas que usam PLN
    • 11. Aplicações: busca semântica http://www.wolframalpha.com/
    • 12. Aplicações: busca semântica http://www.google.com/squared/search?q=tea
    • 13. Aplicações: tradução automáticahttp://translate.google.com/translate_s?hl=en&clss=&q=ciência+da+computação&tq=&sl=pt&tl=zh-CN
    • 14. Aplicações: classificação http://paraondefoimeuvoto.com.br/vereador/celso-jatene
    • 15. Aplicações: corretor gramaticalhttp://translate.google.com/translate_s?hl=en&clss=&q=ciência+da+computação&tq=&sl=pt&tl=zh-CN
    • 16. 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 DadosRafael Winter sugere que print tweet.lengthseus seguidores vejam a 128agenda do PalcoPitágoras da CP. print tweet.author rafael_winterEle ainda lembra quenesse palco haverão print tweet.datediversas palestras sobre 20130124tecnologia.
    • 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 (Sintagmas)● 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 para o LibreOffice / Apache OpenOffice● Aplica processamento de linguagem natural● Sua API pode ser usada por outros projetos● Apache 2.0
    • 26. CoGrOO Sugeito As meninaCorretor 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 4.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 4.x Analisadores (1/2)// Primeiro criamos o pipe usando as configurações de idioma: ComponentFactory factory = ComponentFactory.create(new Locale("pt","BR")); AnalyzerI cogroo = factory.createPipe();// Crie um objeto do tipo Document e inclua o texto que será processado:Document document = new DocumentImpl();document.setText("Um longo texto, com diversos parágrafos e sentenças.");// Execute os anotadorescogroo.analyze(document);
    • 30. API do CogrOO 4.x Analisadores (2/2)// Usando os getters do documento é possível obter as anotações:for (Sentence sentence : document.getSentences()) { // lista de sentenças sentence.getStart(); sentence.getEnd(); // caracteres onde a sentença começa e termina sentence.getText(); // texto da sentença // Tokens for (Token token : sentence.getTokens()) { // lista de tokens token.getStart(); token.getEnd(); // caracteres onde o token começa e termina token.getLexeme(); // o texto do token token.getLemmas(); // um array com os possíveis lemas para o par lexeme+postag token.getPOSTag(); // classe morfológica de acordo com o contexto token.getFeatures(); // gênero, número, tempo etc } // Chunks for (Chunk chunk : sentence.getChunks()) { // lista de chunks chunk.getStart(); chunk.getEnd(); // índice do token onde o chunk começa e do token onde eletermina chunk.getTag(); // the chunk tag chunk.getTokens(); // a list with the covered tokens } // Structure for (SyntacticChunk structure : sentence.getSyntacticChunks()) { // lista de SyntacticChunks structure.getStart(); structure.getEnd(); // índice do token onde o structure começa e do tokenonde ele termina structure.getTag(); // the structure tag structure.getTokens(); // a list with the covered tokens }
    • 31. API do CogrOO 4.x AnalisadoresFlat 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.binQuem casa quer casa .Quem_pron casa_v quer_v casa_s ._. API// load a modelInputStream modelIn = new FileInputStream("pt-pos-maxent.bin");POSModel model = new POSModel(modelIn);// load the pos taggerPOSTaggerME tagger = new POSTaggerME(model);// load the pos taggerString 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)● Experimente hoje mesmo!
    • 35. 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 (inPortuguese), 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
    • 36. Muito obrigado! Wesley Seidel William Colen @wseidel @wcolen LTasks.com O seu aplicativo entendendo o seu texto.http://www.campus-party.com.br/

    ×