MINERAÇÃO DE DADOS. Thiago Marzagão MINERAÇÃO DE TEXTOS. marzagao.1@osu.edu. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 1 / 25



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

Aprendizado de Supervisionado

Melhorando a Recuperação de Informação

Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni

Aula 3: Manipulando Textos e Imagens

GSI024 - Organização e Recuperação da

Thiago Marzagão LSA, LDA

Universidade do Sul de Santa Catarina Ciência da Computação Aula 09 Introdução a Análise de Textos Prof. Max Pereira

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

ORI: Pontuação e o modelo de espaço vetorial

Mineração de Textos. Mineração de Textos

UMA ABORDAGEM BASEADA EM MÉTRICAS DE REDES COMPLEXAS PARA O ESTABELECIMENTO DO GRAU DE INFLUÊNCIA DE TERMOS EM DOCUMENTOS

Implementação de Kernel Customizado Aplicado à Análise de Sentimentos em Resenhas de Filmes

Lista de exercícios 2 Recuperação de Informação Textual

O modelo espaço de vetores. vetorial. Marcelo Keese Albertini. Faculdade de Computação - UFU 12/03/2013. O modelo de espaço vetorial 1 / 27

textos documentos semi-estruturado

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

O modelo espaço de vetores. vetorial. Marcelo Keese Albertini. Faculdade de Computação - UFU. O modelo de espaço vetorial 1 / 25

Extraindo atributos de textos. Prof. Fabrício Olivetti de França

Descoberta de conhecimento em redes sociais e bases de dados públicas

Term weighting: outras ideias

Ponderação de termos

Visualização de Texto e Documento

Modelo Espaço Vetorial. Mariella Berger

PROCEDIMENTOS PARA INCLUSÃO DE PERIÓDICOS NO PORTAL DE PERIÓDICOS FCLAR UNESP

GSI024 - Organização e Recuperação da

Pré-processamento de dados

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Identifique um número! MINERAÇÃO DE DADOS E TEXTOS MOTIVAÇÃO. Observe a imagem... SCC-230 Inteligência Artificial

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

CEFET/RJ. Aprendizado de Máquina - Trabalho 01

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 3. Transformações Geométricas

4 Recuperação de Informação

Mineração de Opinião Aplicada ao Cenário Político

Segundo trabalho de Organização e Recuperação da Informação

APRENDIZAGEM DE MÁQUINA

Ferramentas para Recuperação e Mineração de Informações

Agrupamento de dados. Critério 1: grupos são concentrações de dados k-means Critério 2: grupos são conjuntos de elementos próximos entre si espectral

I-Preproc: uma ferramenta para pré-processamento e indexação incremental de documentos

Apoio a mediação pedagógica em um Debate de Teses utilizando técnicas de processamento de texto

Processamento de Imagens CPS755

Aula de Hoje. Processamento Estatístico da Linguagem Natural. Good-Turing. Good-Turing. Good-Turing. Técnicas de smoothing melhores

Relatório para a Tarefa de Análise de Sentimentos

Redução de Dimensionalidade, DCDistance, e CARFRE

Aula 8 - Reconhecimento e Interpretação. Prof. Adilson Gonzaga

MODELO DE CLASSIFICAÇÃO AUTOMÁTICA DE QUESTÕES NA LÍNGUA PORTUGUESA Henrique Maia Braum 1, Sandro José Rigo 1, Jorge L. V.

Faculdades Integradas Rui Barbosa Programação II Prof. Marcos Antonio Estremote. Exercícios com Vetores e Matrizes

Aprendizado de Máquina

Tutorial sobre o MineraFórum I. Introdução

Aprendizado de Máquina (Machine Learning)

Recuperação de Informação

CLASSIFICAÇÃO AUTOMÁTICA DE PATENTES COM O MODELO VETORIAL DE REPRESENTAÇÃO DE DOCUMENTOS


Pré-processamento de Dados

News Clipping. Como calcular ângulos entre notícias pode ajudar na prevenção à lavagem de dinheiro. Willian Gigliotti

SEL-0339 Introdução à Visão Computacional. Aula 7 Reconhecimento de Objetos

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

INF 1771 Inteligência Artificial

Álgebra Linear Semana 03

Aprendizado de Máquina (Machine Learning)

Meu Google é melhor que o seu

6 Atributos. A dívida da empresa subiu.

PLANO DE AULA. OBJETIVO: Conhecer os programas para editar textos: WordPad e Microsoft Office Word 2007.

Inteligência Artificial

Redes Complexas Aula 7

Classificação de Documentos com Processamento de Linguagem Natural

Tópicos em Mineração de Dados

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

Programação para Web HTML - Parte 2

Similaridade entre Documentos de Especificação de Requisitos de Software Utilizando o Modelo Vetorial de Recuperação de Informação

Mineração de Dados. Análise e Seleção de Variáveis

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

APRENDIZAGEM DE MÁQUINA

Recuperação de Informações por Álgebra Linear Computacional

Inteligência nos Negócios (Business Inteligente)

Estruturas Homogêneas Vetores e Matrizes. Givanaldo Rocha

APRENDIZAGEM DE MÁQUINA

1 - Noções de álgebra matricial

Recuperação de Dado X Informação. Gerenciamento de Dados e Informação. Histórico. Recuperação de Informação. Histórico. Histórico

PreTexT II: Descrição da Reestruturação da Ferramenta de Pré-Processamento de Textos XXX RELATÓRIOS TÉCNICOS DO ICMC

Aprendizagem de Máquinas

MANUAL ENOTEL RESERVAS ON LINE

Pré-processamento dos Dados e Análise Exploratória

Recuperação de Informações

SUPPORT VECTOR MACHINE - SVM

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Teoria dos Grafos Aula 18

Questões dadas em Sala de Aula (para cada turma), nas aulas de Teoria:

Classificação Linear. André Tavares da Silva.

Análise multivariada

Exercícios: Vetores e Matrizes

Jefferson da Costa Lima. Análise lexicográfica da produção acadêmica da Fiocruz: uma proposta de metodologia

K-Nearest Neighbours & RSTUDIO

MCZA Processamento de Linguagem Natural Modelando a linguagem com N-gramas

Aprendizado por Instâncias Janelas de Parzen & Knn

Aprendizado de Máquina (Machine Learning)

Aprendizagem de Máquina

Computação Gráfica - 12

PSEL - Sistema de Controle de Processos Seletivos

Implementação de um sistema de validação estatística configurável de dados

Transcrição:

MINERAÇÃO DE DADOS Thiago Marzagão marzagao.1@osu.edu MINERAÇÃO DE TEXTOS Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 1 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 2 / 25

transformando textos em dados Como transformar textos em dados? R: Contar as ocorrências de cada palavra, em cada documento. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 3 / 25

bag of words Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 4 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 5 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Ordem das palavras não importa (bag of words). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 6 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Ordem das palavras não importa (bag of words). Cada documento é uma amostra. Cada palavra é um atributo. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 7 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Ordem das palavras não importa (bag of words). Cada documento é uma amostra. Cada palavra é um atributo. Cada documento pode estar associado a um y, que pode ser categórico ou contínuo ("livro XYZ", "2,57", "português", "autor XYZ", etc). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 8 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Ordem das palavras não importa (bag of words). Cada documento é uma amostra. Cada palavra é um atributo. Cada documento pode estar associado a um y, que pode ser categórico ou contínuo ("livro XYZ", "2,57", "português", "autor XYZ", etc)....exatamente igual a todos os datasets (imaginários e reais) que discutimos até agora na disciplina Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 9 / 25

transformando textos em dados Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 O resultado é uma matriz de termos-freqüências. Dimensões: qtde. de documentos, qtde. de palavras (no exemplo acima: 2, 13). Ordem das palavras não importa (bag of words). Cada documento é uma amostra. Cada palavra é um atributo. Cada documento pode estar associado a um y, que pode ser categórico ou contínuo ("livro XYZ", "2,57", "português", "autor XYZ", etc)....exatamente igual a todos os datasets (imaginários e reais) que discutimos até agora na disciplina...o que nos permite usar regressão, classificação, clusterização Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 10 / 25

aplicações comuns Identificar automaticamente o autor de um documento (classificação). Agrupar um conjunto de documentos por autores ou tópicos (clusterização). Prever a "positividade" ou "negatividade" de um documento (regressão). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 11 / 25

transformando textos em dados: textos curtos e longos É difícil comparar documentos de tamanhos muito diferentes. Imagine 2 textos com as mesmas palavras, mas texto 1 tem dois parágrafos e texto 2 tem 400 páginas. Solução: normalizar cada vetor. L1: usar freqüências relativas em vez de absolutas. L2: dividir cada elemento do vetor pelo comprimento do vetor. Exemplo: v = [3; 10; 4] Comprimento de v = 3 2 + 10 2 + 4 2 = 11, 38 [ ] 3 v normalizado = 11, 38 ; 10 11, 38 ; 4 = [0, 26; 0, 89; 0, 35] 11, 38 Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 12 / 25

transformando textos em dados: textos curtos e longos TF: Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligência 1 1 2 1 2 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 2 1 TF normalizada: Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligênc 0,27 0,27 0,53 0,27 0,53 0,27 0,27 0,27 0 0 0 0 0 0,32 0 0 0 0 0 0 0,32 0,32 0,32 0,32 0,63 0,32 Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 13 / 25

transformando textos em dados: o peso de cada palavra A matriz de termos-freqüências (TF) dá igual peso a todas as palavras. I.e., na hora de regredir/classificar/clusterizar, "a", "de", "para", "não", etc, têm peso igual a "trabalho", "clientes", "inteligência", etc. Isso é ruim: palavras mais comuns (artigos, preposições, etc) deveriam ter peso menor, pois são menos discriminantes. Solução #1: ignorar palavras comuns como artigos e preposições (stopwords). É uma solução bastante comum. E vários pacotes de mineração de textos já vêm com listas de stopwords p/ diferentes idiomas. Ex.: NLTK (Python) import nltk stopwords = nltk.corpus.stopwords.words( portuguese ) Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 14 / 25

transformando textos em dados: o peso de cada palavra A matriz de termos-freqüências (TF) dá igual peso a todas as palavras. I.e., na hora de regredir/classificar/clusterizar, "a", "de", "para", "não", etc, têm peso igual a "trabalho", "clientes", "inteligência", etc. Isso é ruim: palavras mais comuns (artigos, preposições, etc) deveriam ter peso menor, pois são menos discriminantes. Solução #1: ignorar palavras comuns como artigos e preposições (stopwords). É uma solução bastante comum. E vários pacotes de mineração de textos já vêm com listas de stopwords p/ diferentes idiomas. Mas é uma solução que traz seus próprios problemas. Quão comum precisa ser a palavra p/ ser considerada uma stopword? E o que fazer quando o problema concreto em mãos é um problema de estilometria? Nesses casos podemos estar interessados justamente nas stopwords. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 15 / 25

transformando textos em dados: o peso de cada palavra A matriz de termos-freqüências (TF) dá igual peso a todas as palavras. I.e., na hora de regredir/classificar/clusterizar, "a", "de", "para", "não", etc, têm peso igual a "trabalho", "clientes", "inteligência", etc. Isso é ruim: palavras mais comuns (artigos, preposições, etc) deveriam ter peso menor, pois são menos discriminantes. Solução #2: usar T F IDF em vez de T F IDF = inverse document frequency IDF t = log N df t N = qtde. de documentos df t = qtde. de documentos em que o termo t aparece T F IDF t,d = T F t,d IDF t Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 16 / 25

transformando textos em dados: o peso de cada palavra IDF = inverse document frequency IDF t = log N df t N = qtde. de documentos df t = qtde. de documentos em que o termo t aparece T F IDF t,d = T F t,d IDF t O peso de cada termo (t):... aumenta quando t aparece muitas vezes em poucos documentos... diminui quando t aparece em muitos documentos... diminui quando t aparece poucas vezes no documento I.e., o peso de t é maior quando t é mais discriminante. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 17 / 25

transformando textos em dados: o peso de cada palavra Documento 1: "Não trabalho para ter clientes; tenho clientes para poder trabalhar." Documento 2: "Não se pode forçar a inteligência a trabalhar." TF (normalizada): Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligênc 0,27 0,27 0,53 0,27 0,53 0,27 0,27 0,27 0 0 0 0 0 0,32 0 0 0 0 0 0 0,32 0,32 0,32 0,32 0,63 0,32 TFIDF: Não trabalho para ter clientes tenho poder trabalhar se pode forçar a inteligênci 0 0,08 0,16 0,08 0,16 0,08 0,08 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,1 0,1 0,1 0,19 0,1 Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 18 / 25

transformando textos em dados: o peso de cada palavra Todo pacote decente de mineração de dados tem uma função p/ gerar TFIDF. Exemplo: scikit-learn (Python) from sklearn.feature_extraction.text import TfidfVectorizer tfidf_maker = TfidfVectorizer() documents = [ Não trabalho para ter clientes; tenho clientes para poder trabalhar.", "Não se pode forçar a inteligência a trabalhar."] tfidf = tfidf_maker.fit_transform(documents) Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 19 / 25

transformando textos em dados: pré-processamento Caracteres especiais (caracteres acentuados, símbolos, etc) freqüentemente resultam em erros. É preciso descobrir qual o encoding (codificação) dos documentos (UTF-8, Windows-1252, etc) e informar esse encoding p/ o pacote que vai carregar os dados. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 20 / 25

transformando textos em dados: pré-processamento Às vezes não queremos diferenciar entre, digamos, "trabalho" e "trabalhar". Nesse caso substituímos a palavra por sua raiz: "trabalh". O nome disso é lematização (stemming). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 21 / 25

transformando textos em dados: pré-processamento Às vezes não estamos interessados em determinadas expressões: "saia justa", "processamento de linguagem natural", etc. Nesses casos podemos escolher trabalhar com bigramas, trigramas, etc, em vez de unigramas. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 22 / 25

minerando textos: similaridade do co-seno Como medir a similaridade entre dois documentos? Passo 1: vetorizar cada documento (bag of words, normalização, TFIDF). Passo 2: computar o produto escalar dos dois vetores. Esse produto é o co-seno do ângulo entre os dois vetores. Quanto mais próximo de 0, mais diferentes os documentos; quanto mais próximo de 1, mais similares os documentos. (O co-seno varia, em tese, entre -1 e +1; mas quando se trata de documentos o co-seno é sempre não-negativo, pois o TF ou TFIDF não tem elementos negativos.) Aplicação comum: text retrieval (similaridade entre expressão pesquisada e documentos disponíveis.). Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 23 / 25

minerando textos: análise de sentimentos Objetivo: medir "sentimento" de cada texto, ao longo de alguma escala: triste-feliz, satisfeito-insatisfeito, etc. Manualmente: lista de palavras que denotam sentimento e respectivos scores. Score do documento é o score médio de suas palavras. Automaticamente: documentos pré-scored como dataset de treinamento e então regressão. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 24 / 25

transformando textos em dados: o problema da dimensionalidade O número de dimensões (colunas) no dataset aumenta rapidamente conforme aumenta a quantidade de documentos. (Minha tese: 42 milhões de documentos, 6,3 milhões de palavras diferentes.) Soluções: 1) algoritmos de redução de dimensionalidade (LSA); "combinam" colunas 2) algoritmos de extração de tópicos (LDA, HDP) Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/2016 25 / 25