FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS
LUCAS VINÍCIUS DOS SANTOS SILVA
MINERAÇÃO DE DADOS EM SISTEMA DE RECOMENDAÇÃO DA
WEB
SÃO JOSÉ DOS CAMPOS
2011
ii
LUCAS VINÍCIUS DOS SANTOS SILVA
MINERAÇÃO DE DADOS EM SISTEMAS DE RECOMENDAÇÃO DA
WEB
Trabalho de Graduação apresentado à
Faculdade de Tecnologia São José dos
Campos, como parte dos requisitos necessários
para a obtenção do título de Tecnólogo em
Banco de Dados.
Orientador: Me. Giuliano Araújo Bertoti
SÃO JOSÉ DOS CAMPOS
2011
iii
Dados Internacionais de Catalogação-na-Publicação (CIP)
Divisão de Informação e Documentação
SILVA, Lucas Vinicius dos Santos
Mineração de Dados em Sistema de Recomendação da Web.
São José dos Campos, 200X11.
100f. (número total de folhas do TG)
Trabalho de Graduação – Curso de Tecnologia em Informática com
Ênfase em Banco de Dados, FATEC de São José dos Campos: Professor Jessen Vidal, 2011.
Orientador: Mestre, Giuliano Bertoti.
1. Mineração de Dados. 2. Mineração na Web. 3. Processamento de Linguagem Natural. 4.
Sistemas de Recomendação. I. Faculdade de Tecnologia. FATEC de São José dos Campos:
Professor Jessen Vidal. Divisão de Informação e Documentação. II. Mineração de dados em
Sistema de Recomendação Web.
REFERÊNCIA BIBLIOGRÁFICA –
SILVA, Lucas Vinicius dos Santos. Mineração de dados em Sistema de Recomendação
Web 2011. 100f. Trabalho de Graduação - FATEC de São José dos Campos: Professor Jessen
Vidal.
CESSÃO DE DIREITOS –
NOME DO AUTOR: Lucas Vinicius dos Santos Silva
TÍTULO DO TRABALHO: Mineração de dados em Sistema de Recomendação Web
TIPO DO TRABALHO/ANO: Trabalho de Graduação / 2011.
É concedida à FATEC de São José dos Campos: Professor Jessen Vidal permissão para
reproduzir cópias deste Trabalho e para emprestar ou vender cópias somente para propósitos
acadêmicos e científicos. O autor reserva outros direitos de publicação e nenhuma parte deste
Trabalho pode ser reproduzida sem a autorização do autor.
____________________________________
Lucas Vinicius dos Santos Silva
Rua Raul Seixas 45, Parque Industrial
CEP 12235-673 – São José dos Campos – São Paulo
4
LUCAS VINÍCIUS DOS SANTOS SILVA
MINERAÇÃO DE DADOS EM SISTEMAS DE RECOMENDAÇÃO DA
WEB
Trabalho de Graduação apresentado à
Faculdade de Tecnologia São José dos
Campos, como parte dos requisitos necessários
para a obtenção do título de Tecnólogo em
Banco de Dados.
___________________________________________________________________
Me. Juliana Forin Pasquini Martinez
__________________________________________________________________
Dr. Silvia Bianchi
__________________________________________________________________
Me. Giuliano da Silva Bertoti
_____/_____/_____
DATA DA APROVAÇÃO
5
Dedico esse trabalho ao meu pai Ademir
Antônio da Silva (in memorian). Um grande
homem que me ensinou que não há limites
quando há foco na vida.
6
AGRADECIMENTOS
Agradeço em primeiro lugar a Deus, por ter me concedido uma nova oportunidade de realizar
o sonho de cursar uma instituição de Ensino Superior, e por ter guiado meus passos sempre na
direção certa, de encontro aos meus objetivos de vida. Aos meus pais, Maria de Fátima e
Ademir Antônio (in memorian) por nunca deixarem de apoiar minhas escolhas. Aos meus
irmãos, Natália Irina e Jordano Égon, pela paciência e compreensão pelos momentos de
ausência enquanto desenvolvia este trabalho. Aos meus sogros, Luceni e Ideraldo, pelo
incentivo constante e torcida pelo meu sucesso. A minha esposa, Fernanda, pela compreensão
e apoio nos momentos mais difíceis. Ao orientador Giuliano Bertoti, pelas cobranças,
incentivos, torcida e, principalmente, por acreditar no meu potencial. E a todos que
contribuíram direta ou indiretamente para a conclusão e sucesso deste trabalho. O meu muito
obrigado!
7
“Cada sonho que você deixa pra trás, é um
pedaço do seu futuro que deixa de existir.”
Steve Jobs
8
RESUMO
A capacidade de produção e armazenamento de informação alcançou, já na primeira década
do séc. XXI, o patamar de vários terabytes, até mesmo para computadores pessoais. Nas
últimas décadas, devido a diversos fatores, a Web tem sido disponibilizada por um número
cada vez maior de usuários, os quais acessam uma infinidade de recursos e informações, uma
imensa massa de dados armazenados sob as mais diversas formas. Produto desta interação é o
armazenamento e disponibilização de um material composto pela opinião e sentimento dos
usuários, disponível nas redes sociais, sites pessoais, blogs, e sistemas de recomendação de
lojas de comércio eletrônico. Neste campo, a mineração de dados surge como técnica na qual
é possível extrair informações que serão úteis tanto para as empresas quanto para os clientes.
Deste modo, este trabalho é baseado na busca de padrões lingüísticos em posts negativos com
relação ao serviço de entrega do sistema de recomendação do comércio eletrônico da
Amazon. Para isso, foi utilizada a biblioteca de processamento de linguagem natural Natural
Language Toolkit (NLTK) em conjunto com a linguagem de programação Python. O objetivo
foi desenvolver um protótipo de sistema capaz de rotular os posts como sendo negativos em
relação ao serviço ou não. Com isso espera-se que seja possível aos sites de comércio
eletrônico minimizar as perdas, tais como redução nas vendas decorrentes de problemas
relacionados diretamente ao serviço e não à qualidade do produto, possibilitando aos clientes
recomendações mais precisas e úteis de fato.
Palavras-Chave: Mineração de Dados; Mineração na Web; Processamento de Linguagem
Natural; Natural Language Toolkit; Sistemas de Recomendação.
9
ABSTRACT
The capacity of production and storage of information has reached, already in the first decade
of the century XXI, the level of several terabytes, even for personal computers. In recent
decades, due to several factors, the web has been provided by an increasing number of users
who access a multitude of resources and information, an immense mass of data stored in
many different ways. Product of this interaction is the storage and availability of a material
composite by users opinion and feeling, available in social networks, personal websites,
blogs, and recommendation systems in e-commerce. In this field, data mining emerges as a
technique which can extract information that will be useful both for companies and for
customers. Thus, this work is based in search on linguistic patterns of negative posts about the
service delivery in system recommendation of Amazon e-commerce. For this, we used a
library of natural language processing, Natural Language Toolkit (NLTK) in with
programming language Python. The objective was to develop a system able to label as
negative posts regarding the service or not. This is expected to be able to e-commerce sites to
minimize losses, such as a reduction in sales due to problems directly related to the service
and not the quality of the product, enabling customers to more precise recommendations and
useful indeed.
Keywords: Data Mining; Web Mining; Natural language Processing; Natural Language
Toolkit; Recommender Systems.
10
LISTA DE FIGURAS
Figura 1 – Evolução de usuários da Web, no Brasil
01
Figura 2 – Linha contínua da Interpretação
07
Figura 3 – Equação representativa da definição de Conhecimento
08
Figura 4 – Equação que expressa a formação do novo conhecimento
08
Figura 5 – Categorias da Mineração de Dados na Web e respectivas áreas de interesse
11
Figura 6 – Processo de Mineração de Dados na Web
11
Figura 7 – Arquitetura de transformação do texto livre em forma intermediária
16
Figura 8 – Código para buscar um texto de uma url
19
Figura 9 – Método para realizar a tokenização de textos
20
Figura 10 – Código para abrir um arquivo de texto
20
Figura 11 – Processo de classificação supervisionada
21
Figura 12 – Código para categorização das palavras
23
Figura 13 – Site de comércio eletrônico Amazon.com
25
Figura 14 – Frequência da palavra-chave arrive nos posts coletados
51
Figura 15 – Frequência da palavra-chave late nos posts coletados
53
Figura 16 – Frequência da palavra-chave ship, shipping e shipment nos posts coletados
54
Figura 17 – Frequência da palavra-chave delay nos posts coletados
55
Figura 18 – Código em python para busca em informação estruturada
55
Figura 19 – Método para extração de informação
57
Figura 20 – Código para efetuar a tokenização
57
Figura 21 – Categorizador de um post
58
Figura 22 – Segmentação com rótulos, também conhecida como chuncking
60
Figura 23 – Exemplo de post com problemas na categorização
61
Figura 24 – Categorizador customizado
61
Figura 25 – Imports e variáveis do sistema de busca
62
Figura 26 – Código do método de busca de palavra padrão
63
Figura 27 – Método para gerar o contexto da palavra-chave
64
Figura 28 – Método para verificação e rotulação do post
64
Figura 29 – Método para categorização padrão do post
65
Figura 30 – Método para categorização customizada do post
65
11
LISTA DE TABELAS
Tabela 1 – Categorização dos posts coletados do comércio eletrônico Amazon.com
27
Tabela 2 – Palavras mais freqüentes segundo critério estabelecido
50
Tabela 3 – Ocorrências da palavra-chave arrive nos posts coletados
52
Tabela 4 – Ocorrências da palavra-chave late nos posts e derivada nos posts coletados
53
Tabela 5 – Ocorrências das palavras-chave ship, shipping e shipment
54
Tabela 6 – Tabela tuplas empresa versus localização
56
Tabela 7 – Categorias com maior freqüência encontrada
59
Tabela 8 – Funções em Python para busca de padrões regulares
59
12
GLOSSÁRIO
TERMO
SIGNIFICADO
NLTK
Biblioteca
para
desenvolvimento
de
aplicações
voltadas
ao
processamento de linguagem natural, em python.
Python
Linguagem de programação.
Default Tagger
Categorizador padrão, baseado no brown corpus, adiciona uma tag as
palavras criando tuplas (palavra, categoria morfológica)
Custom Tagger
Categorizador customizado, criado para corrigir erros e limitações do
categorizador padrão.
Corpus / Corpora
Conjunto de textos utilizado pelo Nltk utilizado como base para o PLN
PLN
Processamento de Linguagem Natural
Post
Postagem, mensagem escrita por usuários de sites eletrônicos.
Uni-gram tagger
MÉtodo que adicionar ao categorizador padrão taggs uma a uma
Chunking
Categorizador morfológica de frases também conhecido como
segmentação com rótulos
Token
Palavra ou símbolo que possua significado
Tokenizar
Método que transforma um texto em uma lista de strings
13
SUMÁRIO
1.
INTRODUÇÃO ....................................................................................................... 15
1.1.
Motivação ................................................................................................................. 15
1.2.
Objetivo geral ............................................................................................................ 17
1.3.
Objetivos específicos ................................................................................................ 18
1.4.
Metodologia .............................................................................................................. 18
1.5.
Organização do trabalho ........................................................................................... 18
2.
FUNDAMENTAÇÃO TEÓRICA ......................................................................... 20
2.1.
Dado, Informação e Conhecimento: definições e conceitos ..................................... 21
2.2.
Mineração de Dados ................................................................................................. 23
2.3.
Mineração de Dados na Web . .................................................................................. 24
2.3.1.
Categorias da Mineração na Web ............................................................................. 25
2.3.1.1. Mineração de Conteúdo ............................................................................................ 25
2.3.1.2. Mineração de Estrutura ............................................................................................. 26
2.3.1.3. Mineração de Uso ..................................................................................................... 27
2.4.
Mineração de Textos ................................................................................................. 28
2.5.
Processamento de Linguagem Natural ..................................................................... 30
2.5.1.
Linguagem de Programação Python ......................................................................... 30
2.5.2.
Natural Language Toolkit ......................................................................................... 31
2.5.2.1. Classificação Supervisionada .................................................................................... 33
2.5.2.2. Categorizando as palavras ......................................................................................... 34
3.
MINERAÇÃO DE DADOS EM SISTEMA DE RECOMENDAÇÃO .............. 37
3.1.
Sistemas de Recomendação ...................................................................................... 37
3.2.
Implementação de um Minerador ............................................................................. 39
3.2.1.
Coleta dos posts do Sistema de Recomendação da Amazon.com ............................ 39
3.2.2.
Análise das palavras-chave ....................................................................................... 61
3.2.2.1. Palavra-chave arrive ................................................................................................. 63
14
3.2.2.2. Palavra-chave late e derivada later ........................................................................... 65
3.2.2.3. Palavra-chave ship e derivadas shipping e shipment ............................................... 66
3.2.2.4. Palavra-chave delay .................................................................................................. 68
3.2.3.
Extração da informação ............................................................................................ 68
3.2.4.
Implementação do Sistema ....................................................................................... 74
4.
CONSIDERAÇÕES FINAIS ................................................................................. 79
4.1.
Contribuições e Conclusões ...................................................................................... 79
4.1.1.
Artigo publicado ....................................................................................................... 80
4.2.
Trabalhos futuros ...................................................................................................... 81
5.
REFERÊNCIAS ...................................................................................................... 82
6.
ANEXO I....................................................................................................................83
Download

tg_introdução_mineração_de_dados_em_redes