Organicer: Organizando informação com Python

1,918 views

Published on

Conteúdo parcial do que foi efetivamente apresentado na PythonBrasil [8] em novembro de 2012 no Rio de Janeiro.

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,918
On SlideShare
0
From Embeds
0
Number of Embeds
822
Actions
Shares
0
Downloads
20
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Organicer: Organizando informação com Python

  1. 1. ORGANICEROrganizando Informação com Python Rodrigo Dias Arruda Senra IC-Unicamp / Globo.com PythonBrasil [8], RJ 2012
  2. 2. Apenas um rapaz latino americano... • Engenheiro de Computação Graduação-MSc-(defesa PhD 10/12/12) IC-Unicamp • Desenvolvedor1996, hoje na Globo.com ) (no mercado desde e Projetista de Software • Entusiasta de FLOSS 1999) (atuante na comunidade desde 2
  3. 3. Roteiro• Motivação• Problemas• Organografos• Organicer (preview)• Python Snippets 3
  4. 4. Motivação
  5. 5. 5
  6. 6. k-Means Hull Sebastiani Support Vector Content Management Chen Machines Clustering Nearest Neighbors Sokal Hierarchies Information Retrieval Python Semantic Web Neural Folksonomy Mongo Data Sharing Classification Nets RSS Javascript Naïve Bayes Social Networks Visualization Digital Libraries Organization Cognition Syndication Tagging Jaccard XML Personal DesktopCouchDB Databases Feeds Go Evaluation CAPES User Interfaces Taxonomy Crescenzi Information Extraction CNPq Automation Cosine NoSQL Classification RDF Organographs Dice Matching Wrappers INCT 5 Fapesp
  7. 7. 6
  8. 8. Quantos conceitos ? 6
  9. 9. Quantos conceitos ?Em que ordem eles apareceram ? 6
  10. 10. Quantos conceitos ?Em que ordem eles apareceram ? Como categorizá-los ? 6
  11. 11. Quantos conceitos ?Em que ordem eles apareceram ? Como categorizá-los ? De onde vieram ? 6
  12. 12. Quantos conceitos ? Em que ordem eles apareceram ? Como categorizá-los ? De onde vieram ?Quais as relações entre os conceitos ? 6
  13. 13. Quantos conceitos ? Em que ordem eles apareceram ? Como categorizá-los ? De onde vieram ?Quais as relações entre os conceitos ?Quais são relevantes para mim agora ? 6
  14. 14. Quantos conceitos ? Em que ordem eles apareceram ? Como categorizá-los ? De onde vieram ?Quais as relações entre os conceitos ?Quais são relevantes para mim agora ? ... 6
  15. 15. Quantos conceitos ? Em que ordem eles apareceram ? Como categorizá-los ? De onde vieram ? Quais as relações entre os conceitos ? Quais são relevantes para mim agora ? ...[Miller 1956] regra 7±2: capacidade cognitiva é limitada 6
  16. 16. Problemas
  17. 17. Qual das categorias abaixo é a que melhoracomoda o objeto acima ? 8
  18. 18. MotivaçãoVermelhos ? Triangulos ? Relacionados ? 9
  19. 19. Uma breve história no tempo 10
  20. 20. Uma breve história no tempo 10
  21. 21. Uma breve história no tempo 10
  22. 22. Uma breve história no tempo 10
  23. 23. Uma breve história no tempo 10
  24. 24. Uma breve história no tempo 10
  25. 25. Uma breve história no tempo 10
  26. 26. Uma breve história no tempo 10
  27. 27. Uma breve história no tempoMuito mais difícil que 10
  28. 28. O que há de errado ? 11
  29. 29. O que há de errado ?1. Única categoria para conteúdo Multi-facetado 11
  30. 30. O que há de errado ?1. Única categoria para conteúdo Multi-facetado2. Categorias definidas manualmente 11
  31. 31. O que há de errado ?1. Única categoria para conteúdo Multi-facetado2. Categorias definidas manualmente3. Critério não é explícito 11
  32. 32. O que há de errado ?1. Única categoria para conteúdo Multi-facetado2. Categorias definidas manualmente3. Critério não é explícito4. Relação estática de pertinência 11
  33. 33. O que há de errado ?1. Única categoria para conteúdo Multi-facetado2. Categorias definidas manualmente3. Critério não é explícito4. Relação estática de pertinência5. Organização não é reutilizável 11
  34. 34. Objetivos
  35. 35. Objetivos1. Avaliar hierarquias criadas manualmente
  36. 36. Objetivos1. Avaliar hierarquias criadas manualmente2. Reorganizar conteúdo dinamicamente
  37. 37. Objetivos1. Avaliar hierarquias criadas manualmente2. Reorganizar conteúdo dinamicamente3. Reutilizar organização
  38. 38. Avaliar Hierarquias 13
  39. 39. Avaliar Hierarquias muito conteúdo junto 13
  40. 40. Avaliar Hierarquias muito conteúdo junto duplicado, deslocado 13
  41. 41. Avaliar Hierarquias muito conteúdo junto duplicado, deslocado muitos agregadores 13
  42. 42. Avaliar Hierarquias muito conteúdo junto duplicado, deslocado muitos agregadoresprofundo demais 13
  43. 43. Avaliar SimilaridadeMatriz de Similaridade Dendograma
  44. 44. Reorganizar conteúdo dinamicamente Autor Data de PublicaçãoAlice 2011 Artigo 1 2008 Artigo 2Beto 2011 Artigo 3 15
  45. 45. Reorganizar conteúdo dinamicamente Autor Data de Publicação Data de Publicação AutorAlice 2011 Artigo 1 2008 Artigo 2Beto 2011 Artigo 3 15
  46. 46. Reorganizar conteúdo dinamicamente Autor Data de Publicação Data de Publicação AutorAlice 2011 2011 Artigo 1 Alice 2008 Artigo 2 BetoBeto 2008 2011 Artigo 3 Alice 15
  47. 47. Reorganizar conteúdo dinamicamente Autor Data de Publicação Data de Publicação AutorAlice 2011 2011 Alice Artigo 1 2008 Artigo 2 BetoBeto 2008 2011 Artigo 3 Alice 15
  48. 48. Reorganizar conteúdo dinamicamente Autor Data de Publicação Data de Publicação AutorAlice 2011 2011 Alice Artigo 1 2008 BetoBeto 2008 2011 Artigo 3 Alice Artigo 2 15
  49. 49. Reorganizar conteúdo dinamicamente Autor Data de Publicação Data de Publicação AutorAlice 2011 2011 Alice Artigo 1 2008 Beto Artigo 3Beto 2008 2011 Alice Artigo 2 15
  50. 50. Reorganizar conteúdo dinamicamente a TAREFA é importante! Autor Data de Publicação Data de Publicação AutorAlice 2011 2011 Alice Artigo 1 2008 Beto Artigo 3Beto 2008 2011 Alice Artigo 2 15
  51. 51. Reutilizar organização 16
  52. 52. Reutilizar organização 16
  53. 53. Reutilizar organização 16
  54. 54. Organografos
  55. 55. Metodologiacoleção 18
  56. 56. Metodologiacoleção organizar 18
  57. 57. Metodologiacoleção organizar avaliar 18
  58. 58. Metodologiacoleção organizar avaliar reorganizar 18
  59. 59. Metodologiacoleção organizar avaliar compartilhar reorganizar 18
  60. 60. 19
  61. 61. Organografos ... são artefatos que tornam explícito como organizarinformação digital no contexto de uma tarefa específica. 19
  62. 62. Papéis Autoria de Organografo NLP Domínio ML Data UX Container Autor do Organofrafo OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  63. 63. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • patterns • dictionaries • rules • probabilities Autor do Organofrafo • templates/wrappers OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  64. 64. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • matching • dice • jaccard Autor do • overlap Organofrafo • cosine OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  65. 65. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • FOAF • Dbpedia • Schema.org Autor do • Freebase Organofrafo • MusicBrainz • Geonames OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  66. 66. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • Naive Bayes • SVM • Nearest Neighbors Autor do Organofrafo • LDA • LSI OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  67. 67. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • Filesystem • Gmail • Evernote Autor do Organofrafo • Delicious • Dropbox, Box OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  68. 68. Papéis Autoria de Organografo NLP Domínio ML Data UX Container • Fuse, Dokan • Infoviz do Autor Organofrafo • D3 OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  69. 69. Papéis Autoria de Organografo NLP Domínio ML Data UX Container Autor do Organofrafo OrganografoExtração de Similaridade Classificadores Algoritmos deInformação Ontologias Iteradores Visualização Algoritmos Tarefa ! 20
  70. 70. acmccs98 = acm_extractor(‘http://www.acm.org/about/class/1998/ccs98.xml’)organograph: input: collection(‘file:///some/local/dir/docs’) output: collection(‘rodsenra@dropbox:/output’) id: ‘docs by year’ level: label: format(‘YYYY’, input.Vcnt.publication_date) level: classifier: naive_bayes(classes=acmccs98.Vagg[1], train=acmccs98.Vagg[2:] + acmccs98.Vcnt) label: classifier.class
  71. 71. Organicer
  72. 72. Hierarquiade Origem
  73. 73. Pre-processamentoBeautifulSoup pyPdf Hierarquia de Origem
  74. 74. Extração NLTK Pre-processamentoBeautifulSoup pyPdf Hierarquia de Origem
  75. 75. pymongo Índice de Facetas Extração NLTK Pre-processamentoBeautifulSoup pyPdf Hierarquia de Origem
  76. 76. Workflow de Transformação pymongo Índice de Facetas Extração NLTK Pre-processamentoBeautifulSoup pyPdf Hierarquia de Origem
  77. 77. Workflow de Transformação pymongo Índice de Facetas numpy scikit-learn NLTK Extração networkx gensim Pre-processamentoBeautifulSoup pyPdf Hierarquia de Origem
  78. 78. Workflow de Transformação pymongo Índice de Facetas numpy scikit-learn NLTK Extração networkx gensim Pre-processamento Hierarquia ResultanteBeautifulSoup Visualização pyPdf Hierarquia de Origem
  79. 79. Workflow de Transformação pymongo Índice de Facetas numpy scikit-learn NLTK Extração networkx gensim Pre-processamento Hierarquia ResultanteBeautifulSoup Visualização D3.js pyPdf InfoViz.js Hierarquia ObsPy de Origem matplotlib
  80. 80. Workflow de Transformação pymongo Índice de Facetas numpy scikit-learn NLTK Extração networkx gensim Navegação da Pre-processamento Hierarquia Hierarquia ResultanteBeautifulSoup Iterador Visualização D3.js pyPdf InfoViz.js Hierarquia ObsPy de Origem matplotlib
  81. 81. Workflow de Transformação pymongo Índice de Facetas numpy scikit-learn NLTK Extração networkx gensim Navegação da Pre-processamento Hierarquia Hierarquia ResultanteBeautifulSoup Iterador Visualização D3.js pyPdf InfoViz.js os.walk Hierarquia evernote ObsPy de Origem pydelicious matplotlib
  82. 82. Conclusão
  83. 83. Resumo• Organografos: metodologia, arquitetura,utilização• Capturar a tarefa por trás de uma organização• Avaliar, reorganizar e compartilhar. 27
  84. 84. Agradecimentos• Laboratório de Sistemas de Informação (IC-Unicamp) http://www.lis.ic.unicamp.br• Brazilian Institute for Web Science Research http://webscience.org.br• Globo.com 28
  85. 85. Obrigado a todos pela atenção. Rodrigo Dias Arruda Senra http://rodrigo.senra.nom.br rsenra@acm.orgAs opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde quenão sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no materialresultante. Em caso de alterações, favor consultar o autor.Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêmseus direitos de copyright.
  86. 86. Execução de Organografo Workflow de TransformaçãoÍndice de Facetas FCat() Extração FHil() Navegação da Pre-processamento Hierarquia Hierarquia Resultante Iterador Hierarquia de Origem Usuário do Organografo Visualização
  87. 87. Organicer 31
  88. 88. Organicer 31
  89. 89. Organicer 31
  90. 90. Organicer 31
  91. 91. Organicer 31

×