Disciplina de Text Mining



Documentos relacionados
Web Data Mining com R

Data, Text and Web Mining

Web Data mining com R: aprendizagem de máquina

Fabrício J. Barth. Apontador

Algoritmos de Agrupamento - Aprendizado Não Supervisionado. Fabrício Jailson Barth

Informações na era do Big Data

Extração de Conhecimento & Mineração de Dados

Contexto de Big Data, Ciência de Dados e KDD

Hierarquia de modelos e Aprendizagem de Máquina

textos documentos semi-estruturado

Web Data Mining com R: design de projetos para criação de modelos preditivos

Experimentos de Mineração de Dados em R Disciplina do curso de Pós-Graduação da UTFPR

Marcelo K. Albertini. 17 de Abril de 2014

Análise de Sentimentos e Mineração de Links em uma Rede de Co-ocorrência de Hashtags

MINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas

Processamento de dados [no R] Fabrício Jailson Barth

Predição do Valor Econômico de uma Oportunidade Exploratória de Petróleo

Silvano Nogueira Buback. Utilizando aprendizado de máquina para construção de uma ferramenta de apoio a moderação de comentários

Tópicos Especiais: INTELIGÊNCIA DE NEGÓCIOS II. Mineração de Dados. Sylvio Barbon Junior 26 de junho de 2015 DC-UEL Sylvio Barbon Jr 1

Aprendizagem de Máquina

Aprendizagem de Máquina

Utilização da programação de computadores em Estatística

Clustering: K-means and Aglomerative

INSTITUTO TECNOLÓGICO DE AERONÁUTICA DIVISÃO DE ENGENHARIA ELETRÔNICA LABORATÓRIO DE GUERRA ELETRÔNICA

Considerações sobre Conhecimento Incerto e Redes Bayesianas

MATEMÁTICA E TECNOLOGIA: DESENVOLVENDO JOGOS ELETRÔNICOS UTILIZANDO O SCRATCH

Linear Solver Program - Manual do Usuário

Evento: 14ª Semana Acadêmica Organização: Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas. Período: 22/Abril a 26/Abril de 2013

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES CAPÍTULO ATIVIDADES, PAG. 138 A 150

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Reconhecimento de entidades nomeadas em textos em português do Brasil no domínio do e-commerce

A pesquisa de termos usando (Espaço) ou &, significa que os dois termos deverão constar no mesmo documento.

Data Mining em Redes Sociais. Felipe Botelho e Pedro Ugioni

4 Aplicativo para Análise de Agrupamentos

servidores Web com RapidMiner

Extração de conteúdo em páginas da web

REPÓRTER ADVFN - ARTIGOS

Diretoria de Pesquisas e Informações Estratégicas

XIII Encontro de Iniciação Científica IX Mostra de Pós-graduação 06 a 11 de outubro de 2008 BIODIVERSIDADE TECNOLOGIA DESENVOLVIMENTO

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

SISTEMAS DE APRENDIZADO PARA A IDENTIFICAÇÃO DO NÚMERO DE CAROÇOS DO FRUTO PEQUI LEARNING SYSTEMS FOR IDENTIFICATION OF PEQUI FRUIT SEEDS NUMBER

Uso de software livre para modelagem matemática e simulação

MOODLE NA PRÁTICA PEDAGÓGICA

Laboratório de Mídias Sociais

Análise da Produção Bibliográfica e Rede de Coautoria da UFABC

ESTUDO DE CASO: LeCS: Ensino a Distância

1 Contextualização 3 2 Administração do Joomla 5 3 Painel de controlo Menu sítio Menu utilizadores Outras funcionalidades 8 4

1Ò&/(2'(('8&$d 2$',67Æ1&,$1($' PROCEDIMENTOS PARA DISCIPLINAS A DISTÂNCIA MANUAL DO ALUNO

IBM Unica Histórico da Interação Attribution Modeler Versão 1 Release 0 15 de maio de Tabelas de Sistema do

Prof. Msc. Paulo Muniz de Ávila

O Processo de Engenharia de Requisitos

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

Sistema de mineração de dados para descobertas de regras e padrões em dados médicos

Data Mining II Modelos Preditivos

ATIVIDADES PRÁTICAS SUPERVISIONADAS

UNIPAMPA Universidade Federal do Pampa. Núcleo de Tecnologia da Informação (NTI)

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka

Seis Graus de Separação. Sidney de Castro

Plano de Trabalho Docente Ensino Médio

Manual do Usuário ipedidos MILI S.A. - D.T.I.

Tutorial Moodle ESDM - professores

MANUAL DE INSTRUÇÕES PORTAL DE NOTÍCIAS MMA

Neste tópico, abordaremos a funcionalidade de segurança fornecida com o SAP Business One.

UTILIZANDO O SOFTWARE WEKA

Algoritmo K-Means Paralelo com base no MapReduce para Mineração de dados agrícolas

UNIVERSIDADE DE SÃO PAULO FACULDADE DE EDUCAÇÃO

EDITAL 2016 PARA O PROCESSO SELETIVO DO NÚCLEO DE CRÍTICA DE CINEMA EM CURITIBA

Fundamentos de Modelagem de Sistemas

Aplicação de Ensembles de Classificadores na Detecção de Patologias na Coluna Vertebral

Questões sobre Web Mining e Web Warehousing

Sistemas de Informação

TECNOLOGIAS NO ENSINO DE MATEMÁTICA

MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO DIRETORIA DE ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE AQUISIÇÕES

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

DESENVOLVIMENTO DE UM REPOSITÓRIO DE DADOS DO FUTEBOL BRASILEIRO

Extração Automática de Palavras-chave de Textos da Língua Portuguesa

ESTEREOSCOPIA INTRODUÇÃO. Conversão de um par de imagens (a)-(b) em um mapa de profundidade (c)

Para a utilização do WordPress são recomendadas as seguintes configurações:

Portal do Projeto Tempo de Ser

REDES DE COMPUTADORES

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

ANEXO V Edital nº 03508/2008

Algoritmos Indutores de Árvores de

MINISTÉRIO DA EDUCAÇÃO Universidade Federal de Alfenas / UNIFAL-MG Programa de Pós-graduação em Estatística Aplicada e Biometria

Transcrição:

Disciplina de Text Mining Fabrício J. Barth fabricio.barth@gmail.com Pós Graduação em Big Data - Faculdade BandTec Novembro de 2015

Objetivo O objetivo deste curso é apresentar a área de Text Mining. Serão apresentados e discutidos conceitos e aplicações, além de técnicas e ferramentas para a implementação de soluções de Text Mining. Disciplina de Text Mining Objetivo 2

Sumário Revisar os conceitos: aprendizagem de máquina, knowledge discovery in databases e a linguagem de programação R. Pré-processamento em Text Mining: Bag of words, n-grams. Clustering e Classificação com dados não estruturados: Análise de mensagens dos twitter usando algoritmos de agrupamento. Desenvolvimento de algoritmos anti-spam. Desenvolvimento de Sistemas de Pergunta & Resposta. Disciplina de Text Mining Sumário 3

Reconhecimento de Entidades Nomeadas. Considerações finais. Referências. Disciplina de Text Mining Sumário 4

Conceitos 5

Knowledge Discovery in Databases (KDD) KDD é o processo não trivial de identificação de padrões em dados que sejam válidos, novos, potencialmente úteis e compreensíveis [Fayyad, 1996]. Conceitos Knowledge Discovery in Databases (KDD) 6

Descobrir conhecimento útil: Sintetizar informação: a partir de logs de servidores web, identificar qual é o caminho mais frequente de navegação dos usuários no site. a partir de notícias publicadas em veículos web, sumarizar os principais eventos do dia. Prescrever ações: a partir do histórico de candidaturas em vagas de um candidato, recomendar novas vagas para o mesmo. a partir de conteúdo previamente moderado, construir uma aplicação capaz de moderar conteúdo automaticamente. Conceitos Knowledge Discovery in Databases (KDD) 7

Processo de KDD 1. Qual é a pergunta? 2. Aquisição e pré-processamento dos dados. 3. Análise Exploratória. 4. Modelagem: construção do modelo descritivo ou preditivo. 5. Avaliação do modelo. 6. Entrega: relatórios estáticos, dinâmicos, sistemas ou funcionalidade de sistemas. Conceitos Processo de KDD 8

Aprendizagem de máquina Aprendizagem Supervisionada Modelos preditivos Não supervisionada Modelos descritivos Classificação Regressão Sumarização Associação Agrupamento Conceitos Aprendizagem de máquina 9

Exemplo de dataset com classe Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.10 3.50 1.40 0.20 setosa 2 4.90 3.00 1.40 0.20 setosa 3 4.70 3.20 1.30 0.20 setosa 4 4.60 3.10 1.50 0.20 setosa 5 5.00 3.60 1.40 0.20 setosa 52 6.40 3.20 4.50 1.50 versicolor 53 6.90 3.10 4.90 1.50 versicolor 54 5.50 2.30 4.00 1.30 versicolor 55 6.50 2.80 4.60 1.50 versicolor 56 5.70 2.80 4.50 1.30 versicolor 104 6.30 2.90 5.60 1.80 virginica 105 6.50 3.00 5.80 2.20 virginica 110 7.20 3.60 6.10 2.50 virginica 115 5.80 2.80 5.10 2.40 virginica Conceitos Exemplo de dataset com classe 10

Exemplo de modelo preditivo Conceitos Exemplo de modelo preditivo 11

Exemplos de aprendizagem não supervisionada Table 1: Exemplo de tabela com conexões entre usuários usuário user 1 user 2 user 3 usern user 1 1 1 0 1 user 2 1 1 0 0 user 3 1 0 1 0 user 4 0 1 0 0 usern 1 1 0 1 Conceitos Exemplos de aprendizagem não supervisionada 12

Exemplo de identificação de grupos em redes sociais Conceitos Exemplo de identificação de grupos em redes sociais 13

Ferramentas que suportam o processo de KDD O processo de KDD (pode/deve) ser suportado por ferramentas computacionais, tais como: R SPSS RapidMiner Weka Tableau Python, Julia, Octave, Matlab. Conceitos Ferramentas que suportam o processo de KDD 14

Projeto R http://www.r-project.org/ R Studio - http://www.rstudio.com/ É free É a linguagem de programação mais popular para análise de dados Script é melhor que clicar e arastar: É mais fácil de comunicar. Reproduzível. É necessário pensar mais sobre o problema. Existe uma quantia grande de pacotes disponíveis Conceitos Projeto R 15

Análise de mensagens do twitter usando algoritmos de agrupamento 16

Componentes para uma solução... Fonte Coletor Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos Análise de mensagens do twitter usando algoritmos de agrupamento Componentes para uma solução... 17

Coletando dados do twitter com o R l i b r a r y ( t w i t t e R ) c r e d < OAuthFactory $new ( consumerkey= XXXX, c o n s u m e r S e c r e t= XXXX, requesturl= h t t p s : // a p i. t w i t t e r. com/ oauth / r e q u e s t token, accessurl= h t t p s : // a p i. t w i t t e r. com/ oauth / a c c e s s token, authurl= h t t p : // a p i. t w i t t e r. com/ oauth / a u t h o r i z e ) c r e d $ handshake ( ) r e g i s t e r T w i t t e r O A u t h ( c r e d ) dados < s e a r c h T w i t t e r ( e c o n o m i s t b r a s i l, n=250) d f < twlisttodf ( dados ) save ( df, f i l e =.. / data / 20140424 e c o n o m i s t b r a s i l. rda ) Análise de mensagens do twitter usando algoritmos de agrupamento Coletando dados do twitter com o R 18

Pré-processamento dos dados 19

Acessar e fazer o download do projeto https://github.com/fbarth/mlr Pré-processamento dos dados Acessar e fazer o download do projeto 20

Formato de um documento... Esta disciplina tem como objetivo apresentar os principais conceitos da área de Inteligência Artificial, caracterizar as principais técnicas e métodos, e implementar alguns problemas clássicos desta área sob um ponto de vista introdutório. A estratégia de trabalho, o conteúdo ministrado e a forma dependerão dos projetos selecionados pelos alunos. Inicialmente, os alunos deverão trazer os seus Projetos de Conclusão de Curso, identificar intersecções entre o projeto e a disciplina, e propor atividades para a disciplina.... Pré-processamento dos dados Formato de um documento 21

Conjunto de Exemplos - Atributo/Valor Doc. apresent form tecnic caracteriz d 1 0.33 0.33 0.33 0.33 d 2 0 0.5 0.2 0.33 d 3 1 0.6 0 0 d 4 0.4 0.3 0.33 0.4 d 5 1 0.4 0.1 0.1 d n Pré-processamento dos dados Conjunto de Exemplos - Atributo/Valor 22

Atributo/Valor usando vetores Como representar os documentos? di = (p i1, p i2,, pin) (1) Os atributos são as palavras que aparecem nos documentos. As palavras do texto precisam ser normalizadas: caixa baixa, remover acentuação, remover stop-words, aplicar algoritmos de steamming. Pré-processamento dos dados Atributo/Valor usando vetores 23

Remover stop-words Em todos os idiomas existem átomos (palavras) que não significam muito. Stop-words Esta disciplina tem como objetivo apresentar os principais conceitos da área de Inteligência Artificial, caracterizar as principais técnicas e métodos, e implementar alguns problemas clássicos desta área sob um ponto de vista introdutório. Pré-processamento dos dados Remover stop-words 24

Algoritmos de steamming Algumas palavras podem aparecer no texto de diversas maneiras: técnica, técnicas, implementar, implementação... Stemming - encontrar o radical da palavra e usar apenas o radical. Pré-processamento dos dados Algoritmos de steamming 25

Radicalizador para o português: Regra de reducao de plurais (Regras N) Regra de reducao de femininos (Regras G) Regras de reducao de aumentativos e diminutivos (Regras T) Regras de reducao de grau (Regras S) Outras regras (Regras O) Regras para formas verbais (Regras V) A sequência para as formas verbais reduz-se à aplicação da regra para redução ao infinito. Para os nomes (substantivos, adjetivos e advérbios) aplica-se a seguinte sequência: N G T S O Pré-processamento dos dados Algoritmos de steamming 26

Atributo/Valor usando vetores Já conhecemos os atributos. E os valores? Booleana - se a palavra aparece ou não no documento (1 ou 0) Por freqüência do termo - a freqüência com que a palavra aparece no documento (normalizada ou não) Ponderação tf-idf - o peso é proporcional ao número de ocorrências do termo no documento e inversamente proporcional ao número de documentos onde o termo aparece. Pré-processamento dos dados Atributo/Valor usando vetores 27

Por freqüência do termo (apresent,0.33) (form,0.33) (tecnic,0.33) (caracteriz,0.33) (projet,1.0) (introdutori,0.33) (objet,0.33) (inteligente,0.33) (conclusa,0.33) (selecion,0.33) (intersecco,0.33) (classic,0.33) (identific,0.33) (conceit,0.33) (trabalh,0.33) (disciplin,1.0) (traz,0.33) Pré-processamento dos dados Por freqüência do termo 28

Conjunto de Exemplos - Atributo/Valor Doc. apresent form tecnic caracteriz d 1 0.33 0.33 0.33 0.33 d 2 0 0.5 0.2 0.33 d 3 1 0.6 0 0 d 4 0.4 0.3 0.33 0.4 d 5 1 0.4 0.1 0.1 d n Pré-processamento dos dados Conjunto de Exemplos - Atributo/Valor 29

Conjunto de Exemplos com Classe - Atributo/Valor Doc. apresent form tecnic caracteriz Classe d 1 0.33 0.33 0.33 0.33 AG d 2 0 0.5 0.2 0.33 RC d 3 1 0.6 0 0 AM d 4 0.4 0.3 0.33 0.4 AG d 5 1 0.4 0.1 0.1 AM d n Pré-processamento dos dados Conjunto de Exemplos com Classe - Atributo/Valor 30

Representação Booleana O peso é calculado levando-se em consideração a existência ou não do termo no documento. p i,j = 1 if f i,j > 0 0 if f i,j = 0 (2) Pré-processamento dos dados Representação Booleana 31

Representação por Frequência do Termo O peso é calculado levando-se em consideração a frequência com que o termo acontece no documento. Esta frequência pode ser ponderada ou não. p i,j = f i,j (3) p i,j = f i,j max z f z,j (4) Pré-processamento dos dados Representação por Frequência do Termo 32

Representação por Ponderação tf-idf O peso é proporcional ao número de ocorrências do termo no documento e inversamente proporcional ao número de documentos onde o termo aparece. onde, p i,j = f i,j max z f z,j log N n i (5) N = número de documentos. n i = número de documentos onde a palavra i aparece. f i,j max z f z,j = freqüência normalizada da palavra i no documento j. Pré-processamento dos dados Representação por Ponderação tf-idf 33

Relembrando as propriedades do log Pré-processamento dos dados Relembrando as propriedades do log 34

Componentes para uma solução... Fonte Coletor Pré-processamento dos documentos Agrupa documentos Agrupamentos de documentos Pré-processamento dos dados Componentes para uma solução... 35

Exemplo de projeto no R Projeto MLR - Script twitter/exemploagrupamentotexto.r Pré-processamento dos dados Exemplo de projeto no R 36

Algoritmos para Agrupamento 37

Definições de Algoritmos de Agrupamento O objetivo dos algoritmos de agrupamento é colocar os objetos similares em um mesmo grupo e objetos não similares em grupos diferentes. Normalmente, objetos são descritos e agrupados usando um conjunto de atributos e valores. Não existe nenhuma informação sobre a classe ou categoria dos objetos. Algoritmos para Agrupamento Definições de Algoritmos de Agrupamento 38

Algoritmos para Agrupamento - K-means K significa o número de agrupamentos (que deve ser informado à priori). Sequência de ações iterativas. A parada é baseada em algum critério de qualidade dos agrupamentos (por exemplo, similaridade média). Algoritmos para Agrupamento Algoritmos para Agrupamento - K-means 39

Algoritmo para Agrupamento - K-means 5 5 4 4 3 3 2 2 1 1 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 (1) Objetos que devem ser agrupados (2) Sorteio dos pontos centrais dos agrupamentos 5 5 4 4 3 3 2 2 1 1 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 (3) Atribuição dos objetos aos agrupamentos (4) Definição do centro do agrupamento Algoritmos para Agrupamento Algoritmo para Agrupamento - K-means 40

Algoritmo K-means A medida de distância pode ser a distância Euclidiana: x y = n (x i y i ) 2 (6) i=1 a função para computar o ponto central pode ser: µ = 1 M x C x (7) onde M é igual ao número de pontos no agrupamento C. Algoritmos para Agrupamento Algoritmo K-means 41

Algoritmos para Agrupamento 42

Como determinar o melhor k? A medida de distribuição dos pontos normalmente empregada é sum of squared errors. Algoritmos para Agrupamento Como determinar o melhor k? 43

Desenvolvimento de algoritmos anti-spam 44

Exemplos onde aplicar Desenvolvimento de algoritmos anti-spam Exemplos onde aplicar 45

Desenvolvimento de algoritmos anti-spam 46

Modelos preditivos para classificação Desenvolvimento de algoritmos anti-spam Modelos preditivos para classificação 47

Desenvolvimento de modelos preditivos para classificação Desenvolvimento de algoritmos anti-spam Desenvolvimento de modelos preditivos para classificação 48

Aprendizado de árvores de decisão Desenvolvimento de algoritmos anti-spam Aprendizado de árvores de decisão 49

Exemplo de classificação de Spam Objetivo: identificação de spam no www.apontador.com.br (Location Based Social Network). Tipos de atributos utilizados para caracterizar o conjunto de posts no site: conteúdo, sobre o usuário, sobre o lugar e social. Desenvolvimento de algoritmos anti-spam Exemplo de classificação de Spam 50

Desenvolvimento de algoritmos anti-spam Exemplo de classificação de Spam 51

Questões... Q 1 : Será que é possível construir uma função de anti-spam com acurácia acima de 90 % apenas com atributos de conteúdo? Desenvolvimento de algoritmos anti-spam Questões... 52

Método para construção do modelo: Florestas de árvores de decisão Desenvolvimento de algoritmos anti-spam Método para construção do modelo: Florestas de árvores de decisão 53

Código Projeto: https://github.com/fbarth/mlr Arquivo: scripts/antispam/attr conteudos.r Desenvolvimento de algoritmos anti-spam Código 54

Questões... Q 1 : Será que é possível construir uma função de anti-spam com acurácia acima de 90 % apenas com atributos de conteúdo? Q 2 : Será que é possível construir uma função de anti-spam com acurácia acima de 90 % utilizando todos os tipos de atributos coletados? Desenvolvimento de algoritmos anti-spam Questões... 55

Código Projeto: https://github.com/fbarth/mlr Arquivo: scripts/antispam/attr todos.r Desenvolvimento de algoritmos anti-spam Código 56

Considerações finais Análise de mensagens do twitter Transformação de informação não-estruturada em estruturada. Uso do algoritmo k-means Este mesmo processo pode ser aplicado para outros problemas similares: análise de notícias, análise de patentes e artigos científicos. Desenvolvimento de algoritmos anti-spam Considerações finais 57

Desenvolvimento de algoritmos anti-spam Uso do algoritmo random forest. Como desenvolver e avaliar um modelo preditivo. Este mesmo processo pode ser aplicado para outros problemas similares, inclusive problemas de recomendação de itens. Desenvolvimento de algoritmos anti-spam Considerações finais 58

Referências Bing Liu. Web Data Mining: exploring hyperlinks, contents, and usage data, 2008. Tom Mitchell. Machine Learning, 1997. Iah H. Witteh and Eibe Frank. Data Mining: Practical Machine Learning Tools and Techniques (Third Edition), 2011. Pang-Ning Tan, Michael Steinbach and Vipin Kumar. Introduction to Data Mining, 2006. Andrew Ng. http://www.ml-class.org Desenvolvimento de algoritmos anti-spam Referências 59

Andy and Matthew. Classification and regression by randomforest. R News, vol. 3, number 3, pages 18-22, 2002. Costa, H.; Merschmann, L. H. C.; Barth, F.; Benevenuto, F. Pollution, Bad-mouthing, and Local Marketing: The Underground of Location-based Social Networks. Information Sciences, 2014. RDataMining.com: Text Mining. http://www.rdatamining.com/examples/text-mining. Acessado em 14 de junho de 2013. Ingo Feinerer. Introduction to the tm Package: Text Mining in R. http://cran.rproject.org/web/packages/tm/vignettes/tm.pdf. Acessado em 14 de junho de 2013. Desenvolvimento de algoritmos anti-spam Referências 60

Barth, F. J. Ferramentas para a detecção de grupos em Wikis. In: VII Simpósio Brasileiro de Sistemas Colaborativos, 2010, Belo Horizonte. Anais do VII Simpósio Brasileiro de Sistemas Colaborativos. IEEE Computer Society, 2010. v.ii. p.8-11. Barth, F. J. ; Belderrain, M. C. R. ; Quadros, N. L. P. ; Ferreira, L. L. ; Timoszczuk, A. P.. Recuperação e mineração de informações para a área criminal. In: VI Encontro Nacional de Inteligência Artificial, 2007, Rio de Janeiro. Anais do XXVII Congresso da SBC, 2007. Desenvolvimento de algoritmos anti-spam Referências 61