Aula 3: Manipulando Textos e Imagens

Documentos relacionados
Minera c ao de Dados Aula 6: Finaliza c ao de Regress ao e Classifica c ao Rafael Izbicki 1 / 33

DATA MINING & MACHINE LEARNING (I) Thiago Marzagão

Processamento Digital de Imagens

Aprendizado de Máquina (Machine Learning)

Aulas 10 e 11 / 18 e 20 de abril

MINERAÇÃO DE DADOS. Thiago Marzagão MINERAÇÃO DE TEXTOS. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/ / 25

Aula 7 Medidas de Distância. Profa. Elaine Faria UFU

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Aprendizado de Supervisionado

Aula 8: Árvores. Rafael Izbicki 1 / 33

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À ORGANIZAÇÃO PARA ENGENHARIA DE COMPUTADORES. Prof. Dr. Daniel Caetano

Imagem e Gráficos. vetorial ou raster?

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES. Prof. Dr. Daniel Caetano

Imagem ou Desenhos e Gráficos vetorial ou raster?

Rafael Izbicki 1 / 38

Binário Decimal

Gemini Vetrô. Fogão portátil. Descrições

Imagem digital. Elicardo Gonçalves

PMR2560 Visão Computacional Detecção de cores e blobs. Prof. Eduardo L. L. Cabral

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Otimização da Paleta de Cores

VISÃO COMPUTACIONAL. Marcelo Henrique dos Santos

Transformada de Discreta de Co senos DCT

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Circuitos Lógicos Aula 5

Motivação Por que estudar?

PMR2560 Visão Computacional Conversão e Limiarização. Prof. Eduardo L. L. Cabral

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Representação das Informações

Otimização da Paleta de Cores

Notas em Álgebra Linear

Parte 1 Questões Teóricas

Organização de Computadores I

MAP Cálculo Numérico com Aplicações em Física Instituto de Física 1 o Semestre de 2008 Exercício-programa 1

Introdução ao Processamento de Imagens Digitais Aula 01

Introdução à Computação: Sistemas de Numeração

ARQUITETURA DE COMPUTADORES

- lnteligência Artificial. Seminário sobre o artigo: Beans quality inspection using correlationbased granulometry

Prática 10 - Funções

Neste tópico veremos:

2 Segmentação de imagens e Componentes conexas

Sensoriamento Remoto II

Figura 1 - Planilha Relatório de Notas 1

Aprendizado de Supervisionado

SEL-0339 Introdução à Visão Computacional. Aula 3 Processamento de Imagens Coloridas

ARQUITETURA DE COMPUTADORES

Trabalho - Photochopp Divulgação: 06/09/2014 Atualizado em: 29/09/2014 Entrega: vide cronograma

TÓPICO EDIÇÃO BITMAP

Aula 4. Departamento de Métodos Estatísticos Instituto de Matemática Universidade Federal do Rio de Janeiro

Aula 10: Outras Formas de Representação

Informática I. Aula Aula 22-12/11/2007 1

ROBERTO OLIVEIRA CUNHA

Introdução à Programação C

Tutorial rápido CMAP TOOLS

Aula 10: Outras Formas de Representação

Processamento de imagem a cores

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

2 Representação de Imagens em Arquivos Texto

OBMEP 2010 Soluções da prova da 2ª Fase Nível 2. Questão 1

Processamento Digital de Imagens

Arquitetura de Computadores Sistema de Numeração. Apresentado por Prof. Fred Sauer Mat. Elaborado por Prof. Ricardo Quintão

LibreOffice Calc: aula 2

SEL5886 Visão Computacional Prof. Dr. Marcelo Andrade da Costa Vieira

AULA 8. Conteúdo: Equivalência de Frações. Objetivo: Compreender o significado e o processo de obtenção de frações equivalentes.

Arquitetura de computadores BASE NUMÉRICAS

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo...

TAMANHO E TAXA DE COMPRESSÃO DA IMAGEM

Resistor Parte 2. Resistores com 5 faixas coloridas. Vanderlei Alves S. da Silva

Aprendizagem de Máquina

Módulo I. Desejamos boa sorte e bom estudo! Em caso de dúvidas, contate-nos pelo site Atenciosamente Equipe Cursos 24 Horas

Processamento Digital de Imagens

Aula 2 - Sistemas de Numeração

Sistemas Numéricos - Aritmética. Conversão de Bases. Prof. Celso Candido ADS / REDES / ENGENHARIA

Sistemas de Computação

2. Conversões de base

EQUAÇÕES RELACIONAIS FUZZY E COMO RESOLVÊ-LAS

Sistemas de Numeração

Processamento de Imagens usando Grafos (MAC6903)

UNIVERSIDADE FEDERAL DO PARANÁ Nível 1 - POTI Aula 1 - Combinatória

Apêndice B - Sistemas Numéricos

Um sistema de numeração posicional utiliza um conjunto de símbolos. O valor que cada

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos.

Eletrônica IMPORTANTES FÓRMULAS EM ELETRÔNICA

Aula 9: Estouro e Representação em Ponto Flutuante

SISTEMAS DE NÚMERAÇÃO. Números decimais

Polos Olímpicos de Treinamento. Aula 1. Curso de Combinatória - Nível 2. Prof. Bruno Holanda

A lenda de Sissa: o inventor do xadrez

A Fotogrametria Digital

Thiago Marzagão 1. 1 Thiago Marzagão (Universidade de Brasília) MINERAÇÃO DE DADOS 1 / 21

Sistema Supervisório - IHM

Cálculo Numérico. Sistemas lineares Métodos Iterativos: Introdução Método Iterativo de Jacobi-Richardson

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

3 a Lista de PE Solução

Prof.: Eduardo Vargas Ferreira

Operações com números naturais e Geometria Espacial. Profª Gerlaine Alves

Uma boa palheta de cores pode chamar seu público para seu site, fornecer uma sensação de imersão poderosa. Boa palheta de cores Impacto no usuário.

Processamento Digital de Imagens

Transcrição:

Mineração de Dados Aula 3: Manipulando Textos e Imagens Rafael Izbicki 1 / 24

Nesta Aula: Vamos aprender como manipular imagens e textos (no R). 2 / 24

Em estatística, estamos acostumados a trabalhar com objetos x que representam (sequências de) números/vetores. Ex: Queremos estimar uma função de regressão E[Y x] Em mineração de dados, são comuns as aplicações em que x representa objetos não convencionais, como imagens e documentos de texto. 3 / 24

Exemplo: Detecção de Spams X i email Y i spam/não spam Objetivo: prever Y i com base em X i 4 / 24

Exemplo: Information Retrieval Dados um conjunto de documentos de texto (e.g., páginas de internet), escolher os k documentos mais similares a um dado documento. 5 / 24

Exemplo: Reconhecimento de Dígitos X i imagem de um dígito Y i dígito correspondente 6 / 24

Hoje aprenderemos algumas maneiras básicas de manipular estes objetos Em uma frase, o que veremos é como converter esses objetos em números. Tal conversão deve ao mesmo tempo (i) ser rápida de ser feita (ii) ser informativa sobre esses documentos. 7 / 24

Manipulando Texto Digamos que x é um documento de texto, por exemplo, o texto em uma página de internet, o texto de um tweet, ou de um post do facebook. Texto 1: x 1 = Poderoso Estimulante Natural - Esquente sua noite na cama. Texto 2: x 2 = Olá professor, sou aluna de Mineração de Dados. Texto 3: x 3 = Boa tarde professor Rafael, segue contato como pedido. Texto 4: x 4 = Aumente sua performance na cama a noite usando esse estimulante. Esquente seu relacionamento! Como convertemos cada um desses texto e um vetor numérico que contenha informação relevante sobre eles? 8 / 24

Bag-of-words sacola de palavras Muito simples: simplesmente liste as palavras que aparecem nos documentos, e conte quantas vezes elas aparecem. Texto 1: x 1 = Poderoso Estimulante Natural - Esquente sua noite na cama. Texto 2: x 2 = Olá professor, sou aluna na aula de Mineração de Dados. Texto 3: x 3 = Boa tarde professor Rafael, segue contato como pedido. Texto 4: x 4 = Aumente sua performance na cama a noite usando esse estimulante. A ideia é fazer uma tabela da seguinte forma: poderoso estimulante natural esquente sua noite na cama olá professor... esse Texto 1 1 1 1 1 1 1 1 1 0 0... 0 Texto 2 0 0 0 0 0 0 1 0 1 1... 0 Texto 3 0 0 0 0 0 0 0 0 0 1... 0 Texto 4 0 1 0 1 1 1 1 1 0 0... 1 Matriz documento-termo 9 / 24

poderoso estimulante natural esquente sua noite na cama olá professor... esse Texto 1 1 1 1 1 1 1 1 1 0 0... 0 Texto 2 0 0 0 0 0 0 1 0 1 1... 0 Texto 3 0 0 0 0 0 0 0 0 0 1... 0 Texto 4 0 1 0 1 1 1 1 1 0 0... 1 Note que o vetor relativo ao texto 1 é mais próximo ao vetor relativo ao texto 4 que aos outros. (Distância Euclidiana) Documentos próximos tem distância baixas; documentos distantes tem distância alta. Analogamente, o vetor relativo ao texto 2 é mais próximo ao vetor relativo ao texto 3 que aos outros. Uma maneira simples de se classificar novos emails (nearest neighbors) 10 / 24

Algumas melhorias adicionais: Como documentos diferentes tem tamanhos diferentes, pode-se normalizar estes vetores (e.g., dividindo-se as frequências absolutas pelo tamanho de cada um dos documentos) Palavras que são muito comuns muitas vezes não são informativas (e.g., a, esse,... ). Uma maneira de resolver isso é retirar palavras muito comuns. Isso é chato e entendiante Outra maneira de resolver isso é a chamada Inverse document frequency (IDF), que é mais eficiente. Seja D o número total de documentos. Para cada palavra w, seja n w o número de documentos que contém essa palavra. Para cada vetor de frequências x d, multiplicamos o w-ésimo elemento por log(d/n w ). 11 / 24

Para cada vetor de frequências x d, multiplicamos o w-ésimo elemento por log(d/n w ). Intuição: palavras pouco frequentes (n w baixo) recebem um peso maior. Ex: A matrix poderoso estimulante natural esquente sua noite na cama olá professor... esse Texto 1 1 1 1 1 1 1 1 1 0 0... 0 Texto 2 0 0 0 0 0 0 1 0 1 1... 0 Texto 3 0 0 0 0 0 0 0 0 0 1... 0 Texto 4 0 1 0 1 1 1 1 1 0 0... 1 passa a ser (D = 4) poderoso estimulante natural esquente sua noite na cama olá professor... esse Texto 1 2 1 2 1 1 1 0.41 1 0 0... 0 Texto 2 0 0 0 0 0 0 0.41 0 2 1... 0 Texto 3 0 0 0 0 0 0 0 0 0 1... 0 Texto 4 0 1 0 1 1 1 0.41 1 0 0... 2 É uma espécie de seleção de variáveis 12 / 24

Todas essas são diferentes maneiras de representar um documento de texto. Qual destas é a melhor forma varia conforme a aplicação. No R: pacote tm. dtm = DocumentTermMatrix(corp, control=list(tolower=true, removepunctuation=true, removenumbers=true, stemming=true, weighting=weighttfidf)) stemming=true: palavras com mesma raiz são agrupadas (e.g., connect, connects, connected, connecting) Nem em todas as ĺınguas isso é tão simples!! Ex: Alemão 13 / 24

Resumo sobre Documentos de Texto: É comum representarmos um texto por um vetor com as frequências absolutas ou relativas de cada palavra. Esse é o método bag-of-words. Pode-se multiplicar cada palavra nesta lista por um peso que quantifica o quão comum uma palavra é. A ideia é que palavras muito comuns não são muito informativas. Uma das formas de se fazer isso é através do Inverse document frequency (IDF). 14 / 24

Manipulando Imagens Vamos aprender aqui a manipular imagens que tem formato do tipo raster (ex: JPEG, PNG,... ) raster significa que a imagem é representada por uma ou mais matrizes que contém informações sobre os pixels da figura. Vamos começar com uma ideia simples: digamos que nós criamos uma matriz binária: 1 1 0 1 1 0 0 0 0 15 / 24

1 1 0 1 1 0 0 0 0 A ideia chave é que podemos associar a essa matriz a imagem Aqui, 1 simboliza um pixel preto, e 0 um pixel branco. 16 / 24

Usando essa ideia, já podemos criar imagens como Quanto mais pixels, maior a resolução da imagem. 17 / 24

Podemos ir um passo além. Ao invés de usar apenas 0 (branco) e 1 (preto), podemos usar qualquer número entre 0 e 1 para denotar uma intensidade de cinza. Com isso, podemos fazer imagens como 18 / 24

Podemos ir ainda mais além. Lembre-se que usando cores primárias podemos compor qualquer cor. Usando essa ideia, podemos representar uma imagem com três matrizes simultaneamente. A primeira indica quanto azul vamos ter em cada pixel (cada elemento é um número entre 0 e 1) A segunda indica quanto amarelo vamos ter em cada pixel (cada elemento é um número entre 0 e 1) A terceira indica quanto vermelho vamos ter em cada pixel (cada elemento é um número entre 0 e 1) 19 / 24

Com isso, podemos fazer imagens como Esse é o princípio usando por exemplo no formato JPEG. Mas, ao invés de usar cores primárias, são usados os RGB channels (vermelho, verde e azul). 20 / 24

Variações sobre o tema: 0 ser branco e 1 preto é apenas uma convenção. Formatos diferente usam convenções diferentes (por exemplo, alguns formatos atribuem 0 a branco e 256 a preto) 21 / 24

Lendo imagens no R Exemplo artificial: > m=matrix(c(1,1,0,1,1,0,0,0,0),3,3) > image(m[,3:1],col = c("white","black")) Exemplo do símbolo da ufscar: > library(jpeg) > imagem=readjpeg("1024px-ufscar.jpg") > dim(imagem) [1] 746 1024 3 > image(t(imagem[746:1,,3]),col = grey.colors(1000,start = 0,end =1)) # imagem em tons de cinza só com a terceira matriz > rasterimage(imagem, 0, 0, 1, 1) # imagem colorida 22 / 24

Muitas vezes é necessário mudar a resolução de imagens com a finalidade de comparação (i.e., mudar a dimensão das matrizes). Recomendo o MATLAB para isso. 23 / 24

Resumo sobre Imagens: Imagens nada mais são que matrizes. Cada elemento da matriz, um pixel, representa a intensidade da cor naquela posição da imagem. Podemos representar uma imagem com tons de cinza com uma única matriz. Imagens coloridas costumam ser representadas por 3 matrizes, cada uma indicando a intensidade dos pixels para uma certa cor. 24 / 24