62
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO BACHARELADO SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS UTILIZANDO REDES NEURAIS ARTIFICIAIS MARCO AURÉLIO BEBER BLUMENAU 2013 2013/2-19

SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

  • Upload
    vanhanh

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO

SISTEMA DE MONITORAMENTO DE REDES SOCIAIS

DIGITAIS UTILIZANDO REDES NEURAIS ARTIFICIAIS

MARCO AURÉLIO BEBER

BLUMENAU

2013

2013/2-19

Page 2: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

MARCO AURÉLIO BEBER

SISTEMA DE MONITORAMENTO DE REDES SOCIAIS

DIGITAIS UTILIZANDO REDES NEURAIS ARTIFICIAIS

Trabalho de Conclusão de Curso submetido à

Universidade Regional de Blumenau para a

obtenção dos créditos na disciplina Trabalho

de Conclusão de Curso II do curso de Sistemas

de Informação— Bacharelado.

Prof. Roberto Heinzle, Doutor – Orientador

BLUMENAU

2013

2013/2-19

Page 3: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

SISTEMA DE MONITORAMENTO DE REDES SOCIAIS

DIGITAIS UTILIZANDO REDES NEURAIS ARTIFICIAIS

Por

MARCO AURÉLIO BEBER

Trabalho aprovado para obtenção dos créditos

na disciplina de Trabalho de Conclusão de

Curso II, pela banca examinadora formada

por:

______________________________________________________

Presidente: Prof. Roberto Heinzle, Doutor – Orientador, FURB

______________________________________________________

Membro: Prof. Wilson Pedro Carli, Mestre – FURB

______________________________________________________

Membro: Prof. Francisco Adell Péricas, Mestre – FURB

Blumenau, 02 de dezembro de 2013.

Page 4: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

Dedico este trabalho aos meus familiares,

professores e amigos, especialmente aqueles

que me ajudaram na conclusão deste trabalho.

Page 5: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

AGRADECIMENTOS

À minha família: Eugênio Beber, Odete Maria Beber e Mara Rúbia Beber, que sempre

me apoiaram incondicionalmente.

À minha namorada, Fernanda Krieger da Silva, que esteve presente nos momentos

alegres e tristes e que nunca deixou de me apoiar.

A todos os meus amigos, e em especial: Fernando Erhardt, Felippe Prado, Guilherme

Goll, Eduardo Kraus e Iago Schmitt, que contribuíram para a realização deste trabalho.

Ao meu orientador, professor Roberto Heinzle, por ter me aceito como orientando e

por ter acreditado na conclusão deste trabalho.

Aos professores do Departamento de Sistemas e Computação e aos professores do

Departamento de Matemática da Universidade Regional de Blumenau por suas contribuições

durante o curso.

Page 6: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

Don’t worry about failure; you only have to be

right once

Drew Houston

Page 7: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

RESUMO

Este trabalho apresenta a especificação e o desenvolvimento de um sistema capaz de obter

publicações de redes sociais digitais e filtrá-las de acordo com os interesses do usuário através

de uma rede neural artificial. Para o desenvolvimento do sistema utilizou-se a plataforma

Node.js, a linguagem de programação JavaScript, o framework Backbone.js e o banco de

dados MongoDB. Como resultado obteve-se um sistema de filtro de conteúdo em tempo real

para redes sociais digitais que respeita as necessidades de cada usuário.

Palavras-chave: Redes sociais digitais. Redes neurais artificiais. Filtro de conteúdo. Twitter.

Page 8: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

ABSTRACT

This paper presents the specification and development of a system capable of obtain

publications from digital social networks and filter them according to the user's interests

through an artificial neural network. For the system development was used the Node.js

platform, JavaScript programming language, Backbone.js framework and MongoDB

database. The result was a real time content filter system for digital social networks that

respects each user's needs.

Key-words: Digital social networks. Artificial neural networks. Content filter. Twitter.

Page 9: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

LISTA DE FIGURAS

Figura 1 - Neurônio artificial de McCulloch e Pitts ................................................................. 16

Figura 2 - Rede de Hopfield composta por três neurônios ....................................................... 17

Figura 3 - Equação para o armazenamento de padrões ............................................................ 18

Figura 4 - Função de transformação de binário para bipolar .................................................... 18

Figura 5 - Matriz de contribuição ............................................................................................. 18

Figura 6 - Matriz de peso .......................................................................................................... 18

Figura 7 - Trecho de código para a reconstrução de padrões da rede de Hopfield .................. 19

Figura 8 - Sistema de classificação de páginas web ................................................................. 20

Figura 9 - Sistema de monitoramento usando palavras-chave ................................................. 21

Figura 10 - Diagrama de casos de uso ...................................................................................... 25

Figura 11 - Diagrama de atividades do treinamento da RNA .................................................. 26

Figura 12 - Diagrama de atividades da avaliação das publicações através da RNA ................ 28

Figura 13 - Diagrama de classes simplificado do front-end do sistema ................................... 29

Figura 14 - Diagrama de classes simplificado do back-end do sistema ................................... 30

Figura 15 - Ferramenta usada para o desenvolvimento do sistema .......................................... 32

Figura 16 - Trecho de código usando Node.js .......................................................................... 33

Figura 17 - Trecho de código responsável por fazer a busca das publicações ......................... 33

Figura 18 - Trecho de código para monitoramento de publicações do Twitter ........................ 34

Figura 19 - Aplicação cliente MongoDB ................................................................................. 35

Figura 20 - Trecho de código responsável por criar a RNA com base nos interesses .............. 36

Figura 21 - Trecho de código responsável por realizar o treinamento da RNA ....................... 37

Figura 22 - Trecho de código responsável por reconstruir o padrão apresentado à rede ......... 38

Figura 23 - Trecho de código responsável por definir a exibição da publicação ..................... 39

Figura 24 - Página de login do sistema .................................................................................... 40

Figura 25 - Página de cadastro de usuário ................................................................................ 40

Figura 26 - Página home do sistema ......................................................................................... 41

Figura 27 - Página de edição de dados do usuário ................................................................... 41

Figura 28 - Página de interesses ............................................................................................... 42

Figura 29 - Cadastro de interesse ............................................................................................. 43

Figura 30 - Página de treinamento de interesses ...................................................................... 43

Figura 31 - Treinamento de interesses ...................................................................................... 44

Page 10: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

Figura 32 - Trecho de código responsável por exibir as publicações do treinamento .............. 44

Figura 33 - Página de visualização de conteúdos ..................................................................... 45

Figura 34 - Página de conteúdos exibindo mensagens filtradas através da RNA .................... 45

Figura 35 - Gráfico do entendimento do sistema ..................................................................... 46

Figura 36 - Gráfico da forma com que o treinamento de interesses é feito .............................. 47

Figura 37 - Gráfico dos conteúdos apresentados usando a RNA ............................................. 47

Figura 38 - Página de desenvolvedor para o Twitter ................................................................ 58

Figura 39 - Dados de conexão com o Twitter .......................................................................... 58

Page 11: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

LISTA DE QUADROS

Quadro 1 - Requisitos funcionais ............................................................................................. 24

Quadro 2 - Requisitos não funcionais ...................................................................................... 24

Quadro 3 - Comparação com os trabalhos correlatos ............................................................... 46

Quadro 4 - Caso de uso "Efetuar Login" .................................................................................. 52

Quadro 5 - Caso de uso "Manter conta de usuário" ................................................................. 53

Quadro 6 - Caso de uso "Manter interesses" ............................................................................ 54

Quadro 7 - Caso de uso "Manter palavras-chave" .................................................................... 55

Quadro 8 - Caso de uso "Treinar rede neural" .......................................................................... 56

Quadro 9 - Caso de uso "Monitorar publicações" .................................................................... 56

Quadro 10 - Caso de uso "Visualizar publicações relevantes" ................................................. 57

Quadro 11 - Coleção "Authentications" ................................................................................... 59

Quadro 12 - Coleção "Contents" .............................................................................................. 59

Quadro 13 - Coleção "Interests" ............................................................................................... 59

Quadro 14 - Coleção "Trainings" ............................................................................................. 59

Quadro 15 - Coleção "Users" ................................................................................................... 60

Page 12: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

LISTA DE SIGLAS

API – Application Programming Interface

I/O – Input/ Output

JSON – JavaScript Object Notation

MVC – Model View Collection

RF – Requisito Funcional

RNA - Rede Neural Artificial

RNF – Requisito Não Funcional

Page 13: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

SUMÁRIO

1. INTRODUÇÃO .................................................................................................................. 12

1.1 OBJETIVOS DO TRABALHO ......................................................................................... 13

1.2 ESTRUTURA DO TRABALHO ....................................................................................... 13

2. FUNDAMENTAÇÃO TEÓRICA .................................................................................... 14

2.1 REDES SOCIAIS DIGITAIS ......................................................................................... 14

2.2 REDES NEURAIS ARTIFICIAIS ................................................................................. 15

2.2.1 Definição de rede neural artificial ................................................................................... 15

2.2.2 Neurônio artificial ........................................................................................................... 16

2.2.3 Aprendizado .................................................................................................................... 16

2.2.4 Rede de Hopfield............................................................................................................. 17

2.3 SISTEMA ATUAL ......................................................................................................... 19

2.4 TRABALHOS CORRELATOS ..................................................................................... 20

3. DESENVOLVIMENTO DO SISTEMA .......................................................................... 22

3.1 LEVANTAMENTO DE INFORMAÇÕES ....................................................................... 22

3.2 ESPECIFICAÇÃO ............................................................................................................. 23

3.2.1. Requisitos do sistema ..................................................................................................... 24

3.2.2. Diagramas de casos de uso ............................................................................................. 25

3.2.3. Diagramas de atividades ................................................................................................. 26

3.2.4. Diagramas de classe........................................................................................................ 29

3.3 IMPLEMENTAÇÃO ......................................................................................................... 32

3.3.1 Técnicas e ferramentas utilizadas .................................................................................... 32

3.3.2 Operacionalidade da implementação ............................................................................... 39

3.4 RESULTADOS E DISCUSSÃO ....................................................................................... 46

4. CONCLUSÕES .................................................................................................................. 48

4.1 EXTENSÕES ..................................................................................................................... 49

REFERÊNCIAS ..................................................................................................................... 50

APÊNDICE A – Descrição dos Casos de Uso ...................................................................... 52

APÊNDICE B – Cadastro de aplicativo do Twitter ............................................................ 58

APÊNDICE C – Descrição do Dicionário de Dados ............................................................ 59

Page 14: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

12

1. INTRODUÇÃO

Os sites que têm por objetivo conectar e promover a interação entre grupos de pessoas

são conhecidos como redes sociais digitais. Assim como as redes de computadores são

conjuntos de máquinas conectadas através de cabos, as redes sociais são compostas por

grupos de pessoas ou organizações que se conectam através de relações, como amizade,

trabalho em equipe ou troca de informação (GARTON; HAYTHORNTHWAITE;

WELLMAN, 1997, p.1).

Uma das características das redes sociais digitais é que o seu consumidor, ou usuário,

é capaz de publicar conteúdo dentro da rede. Esse conteúdo pode variar de simples mensagens

de texto, comunicando atividades cotidianas, até conteúdos mais elaborados, como imagens e

vídeos. Para Tomaél, Alcará e Chiara (2005), ―as redes sociais constituem uma das estratégias

subjacentes utilizadas pela sociedade para o compartilhamento da informação e do

conhecimento [...]‖.

Como consequência dessa característica, volumes de dados gigantescos são gerados

diariamente dentro das redes. Levando-se em conta o exemplo da rede social Facebook, seus

usuários fazem upload de um bilhão de novas fotos semanalmente, o que é equivalente a 60

Terabytes (BEAVER et al, 2009).

Com o crescimento da quantidade de conteúdo publicado, aumenta a quantidade de

conteúdos maliciosos ou irrelevantes que se propagam através da rede. Esse conteúdo vai

desde propagandas não solicitadas, até spam. Conteúdos que não são solicitados consomem a

atenção do usuário e, em últimos casos, o distúrbio que é causado pelos usuários emissores

desses conteúdos reduz a efetividade da comunicação e faz com que ao tentar buscar

conteúdo, o usuário encontre dificuldades e acabe frustrado por perder seu tempo visualizando

conteúdos irrelevantes (BENEVENUTO; ALMEIDA; SILVA, 2012).

Relacionando a quantidade de informação gerada dentro das redes sociais com

assuntos não solicitados ou irrelevantes, surge a necessidade de monitorar e filtrar os

conteúdos que estejam de acordo com os interesses dos usuários. Para Martins e Coello

(2010), "[...] os sistemas de filtragem de informação têm que ser personalizados para

satisfazer os interesses de cada usuário, assumindo o papel de assistentes pessoais‖.

Apesar de existirem alternativas de sistemas para o monitoramento e filtro de

publicações na rede social digital Twitter, não foi encontrado um sistema que fosse capaz de

realizar o filtro das publicações de maneira eficaz.

Page 15: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

13

Diante deste cenário, este trabalho consiste em uma solução para obter informações

relevantes nas redes sociais digitais através de um sistema de monitoramento e filtro de

conteúdos. Trata-se de um sistema na plataforma web, onde o conteúdo apresentado ao

usuário é baseado no uso de uma rede neural artificial, treinada com base nos seus interesses

específicos.

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho consiste em criar um sistema de monitoramento e filtro de

publicações para a rede social digital Twitter, baseado em redes neurais artificiais.

Os objetivos específicos do trabalho são:

a) construir um mecanismo de monitoramento das publicações do Twitter;

b) possibilitar o cadastro de interesses e palavras-chave;

c) construir uma rede neural baseada nos interesses do usuário;

d) realizar o treinamento da rede neural;

e) realizar o filtro das publicações através da rede neural artificial.

1.2 ESTRUTURA DO TRABALHO

No primeiro capítulo tem-se a introdução ao tema principal deste trabalho com a

apresentação da justificativa e dos objetivos.

No segundo capítulo apresenta-se a fundamentação teórica pesquisada sobre as redes

sociais digitais e sobre as redes neurais artificiais. Ainda no capítulo dois, são apresentados o

sistema atual e os trabalhos correlatos.

O terceiro capítulo apresenta o desenvolvimento do sistema, iniciando-se com o

levantamento de informações, tendo na sequência a especificação, implementação e

resultados e discussão.

No quarto capítulo têm-se as conclusões deste trabalho bem como as sugestões para

trabalhos futuros.

Page 16: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

14

2. FUNDAMENTAÇÃO TEÓRICA

A fundamentação teórica aborda assuntos necessários para a compreensão do sistema

desenvolvido. Na seção 2.1 é apresentada uma visão geral das redes sociais digitais. Na seção

2.2 é feita uma abordagem das redes neurais artificiais, dividindo o conteúdo em definição,

neurônio artificial, aprendizado e a rede de Hopfield. A seção 2.3 é dedicada ao

funcionamento do sistema atual e por fim, a seção 2.4 apresenta os trabalhos correlatos.

2.1 REDES SOCIAIS DIGITAIS

As redes sociais digitais são caracterizadas por promover a interação entre grupos de

pessoas através da internet. Assim como as redes de computadores são conjuntos de máquinas

interconectadas, as redes sociais digitais são compostas por grupos de pessoas ou

organizações que se conectam através de relações, onde as conexões realizadas são feitas

através da internet (GARTON; HAYTHORNTHWAITE; WELLMAN, 1997, p.1).

Uma rede, assim, é uma metáfora para observar os padrões de conexão de um grupo

social, a partir das conexões estabelecidas entre os diversos atores. A abordagem de

rede tem, assim, seu foco na estrutura social, onde não é possível isolar os atores

sociais e nem suas conexões. (RECUERO, 2009, p.24).

Tendo essa definição como base, pode-se verificar a existência de diversas redes

sociais presentes na internet. Dentre estas, pode-se verificar que elas possuem diferentes

propósitos, como o Twitter, que tem como objetivo a troca de mensagens curtas, o LinkedIn,

cujo objetivo é promover a interação entre profissionais de diferentes áreas, o Facebook, que

tem como foco os relacionamentos de pessoas, marcas e produtos (BENEVENUTO;

ALMEIDA; SILVA, 2012).

Dentro das redes sociais, as pessoas ou organizações são caracterizadas como atores.

São esses atores que criam a estrutura da rede através de relações.

Os atores são o primeiro elemento da rede social, representados pelos nós (ou nodos).

Trata-se das pessoas envolvidas na rede que se analisa. Como parte do sistema, os

atores atuam de forma a moldar as estruturas sociais, através da interação e da

constituição dos laços sociais. (RECUERO, 2009, p.25).

No caso das redes sociais da internet, no entanto, os atores são representados de uma

maneira um pouco diferente. A representação do ator se dá pela construção de uma identidade

dentro da rede. No caso de uma conta no Twitter pertencente à determinada empresa,

considera-se a conta como um ator, entretanto ela pode ser mantida por diversas pessoas.

Page 17: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

15

Por causa do distanciamento entre os envolvidos na interação social, principal

característica da comunicação mediada por computador, os atores não são

imediatamente discerníveis. Assim, neste caso, trabalha-se com representações dos

atores sociais, ou com construções identitárias do ciberespaço. Um ator, assim, pode

ser representado por um weblog, por um fotolog, por um twitter ou mesmo por um

perfil no Orkut. E, mesmo assim, essas ferramentas podem apresentar um único nó

(como um weblog, por exemplo), que é mantido por vários atores (um grupo de

autores do mesmo blog coletivo). (RECUERO, 2009, p.25).

As conexões de uma rede social podem ser definidas como a constituição de laços

sociais, que por sua vez, são formados através da interação social entre os atores. Na internet,

as conexões podem ser identificadas devido à possibilidade de manter os rastros sociais dos

indivíduos. Por exemplo, comentários em uma foto do Facebook podem permanecer até que

alguém o apague ou a foto seja excluída (RECUERO, 2009, p.30).

2.2 REDES NEURAIS ARTIFICIAIS

Esta seção apresenta as redes neurais artificias, abordando sua definição, alguns

conceitos, métodos de aprendizado e modelo de Hopfield.

2.2.1 Definição de rede neural artificial

Braga, Carvalho e Ludemir (2000), afirmam que ―Redes Neurais Artificiais (RNAs)

são modelos matemáticos que se assemelham às estruturas neurais biológicas e que tem

capacidade computacional adquirida por meio de aprendizado e generalização‖. Já Barreto

(2002, p.13) complementa, dizendo que não apenas se assemelham, mas tem a sua construção

inspirada nos neurônios biológicos e no funcionamento do sistema nervoso.

Informalmente, as RNAs são sistemas compostos por vários neurônios. Os neurônios

conectam-se pelo que é chamado de conexão sináptica. Traçando uma comparação com o

organismo humano, pode-se dizer que os neurônios correspondentes aos órgãos dos sentidos

são equivalentes aos neurônios de entrada da rede, já que recebem excitações do exterior.

Outros que são usados para alterar o mundo exterior são chamados de neurônios de saída e

correspondem aos neurônios biológicos que excitam os músculos. Há ainda, outro tipo de

neurônio, que não se encaixa na classificação de entrada e saída, esse tipo de neurônio é

chamado de neurônio escondido (BARRETO, 2002, p.16).

Page 18: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

16

2.2.2 Neurônio artificial

O primeiro modelo de neurônio artificial foi proposto por Warren McCulloch e Walter

Pitts no ano de 1943 (MCCULLOCH; PITTS, 1943). O modelo de McCulloch e Pitts

interpreta o funcionamento do neurônio como sendo um circuito binário simples, que combina

várias entradas excitatórias ou inibitórias, e gera um sinal de saída (KARRER et al, 2005). A

Figura 1 representa o modelo de neurônio proposto por McCulloch e Pitts.

Figura 1 - Neurônio artificial de McCulloch e Pitts

Fonte: Tatibana e Kaetsu (2000?).

Para determinar o estado do neurônio, calcula-se a soma do estado das entradas com

os seus pesos, positivos no caso excitatório e negativos no caso inibitório. Se a soma for

maior ou igual a determinado limiar já fixado, considera-se que o neurônio está ativo e é

emitido um pulso (SILVA, 2003, p. 10).

Dessa forma, uma rede neural é constituída de neurônios artificiais, que tem o papel de

um simples processador. Cada neurônio executa uma função simples, mas uma rede neural

tem capacidade computacional para resolução de problemas complexos (BRAGA;

CARVALHO; LUDEMIR, 2000).

2.2.3 Aprendizado

Barreto (2002, p.22) considera que: ―aprender é o ato que produz um comportamento

diferente a um estímulo externo devido a excitações recebidas no passado e é de certa forma,

sinônimo de aquisição de conhecimento‖. Sendo assim, as RNAs possuem a capacidade de

aprender através de exemplos. Para um determinado conjunto de dados, o algoritmo de

aprendizado deve ser responsável por adaptar os parâmetros da rede e obter uma solução

através de um número finito de iterações do algoritmo (KARRER et al, 2005).

Page 19: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

17

Considera-se que o processo de aprendizado da rede tem como característica a

ocorrência de um estímulo externo representado por um conjunto de dados. Como

consequência o algoritmo de aprendizado provoca mudança nos parâmetros da rede que

acarretam na mudança no comportamento da RNA (KARRER et al, 2005).

Outra maneira de se classificar o aprendizado é traçando uma analogia com uma sala

de aula, onde há ou não, a intervenção do professor. Quando há intervenção significa que em

determinado instante os alunos aprenderão porque o professor realizará a correção das

atividades, enquanto a ausência significa que o aprendizado é realizado sem a necessidade da

correção do professor (BARRETO, 2002, p.23).

2.2.4 Rede de Hopfield

A memória dos seres humanos funciona como uma memória endereçada por conteúdo,

o que quer dizer que dado determinado estímulo, um padrão pode ser reconstruído. Por

exemplo, o simples fato de ouvir uma melodia ou uma frase pode levar ao reconhecimento de

uma música ou seu autor. É através do endereçamento de conteúdo, também conhecido como

memória associativa, que funciona a rede de Hopfield (SILVA, 2003, p.18).

Tratando-se de memória associativa, todos os neurônios de uma rede de Hopfield são

considerados como neurônio de entrada e saída, e são completamente conectados, ou seja, o

padrão utilizado como entrada para a rede é o padrão que será reconstruído (ROSEN, 2009).

Um exemplo de rede com três neurônios pode ser observado na imagem a seguir.

Figura 2 - Rede de Hopfield composta por três neurônios

Fonte: Rosen (2009).

Page 20: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

18

Para que a rede seja capaz de realizar o reconhecimento de padrões é necessário antes

passar por uma etapa de aprendizado. A Figura 3 apresenta a equação responsável por

armazenar os padrões da RNA.

Figura 3 - Equação para o armazenamento de padrões

Fonte: Rosen (2009).

Através desta equação podem-se identificar duas coisas:

a) o vetor binário apresentado para a rede na etapa de aprendizado será transformado

em um vetor bipolar. A Figura 4 apresenta a função responsável por esta

transformação;

Figura 4 - Função de transformação de binário para bipolar

Fonte: adaptado de Rosen (2009).

b) o vetor bipolar será transposto e multiplicado para obter-se uma matriz que

representa um novo padrão para a rede neural, essa matriz é chamada de matriz de

contribuição. A Figura 5 apresenta o cálculo para a obtenção da matriz de

contribuição.

Figura 5 - Matriz de contribuição

Fonte: adaptado de Rosen (2009).

Após ter calculado a matriz de contribuição, é necessário adicioná-la na memória da

rede. Essa etapa pode ser definida através de uma adição de matrizes, conforme se demonstra

na Figura 6.

Figura 6 - Matriz de peso

Fonte: adaptado de Rosen (2009).

Page 21: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

19

Terminada a fase de aprendizado, a rede é capaz de fazer a reconstrução dos padrões

aprendidos. Para tal, é necessário realizar iterações na rede até que o padrão de entrada esteja

estabilizado em um dos padrões armazenados. A rede estará estabilizada quando o estado dos

neurônios não for mais afetado por novas iterações. Demonstra-se na Figura 7 o algoritmo

responsável por reconstruir os padrões. No primeiro passo do algoritmo os estados atuais dos

neurônios serão iguais aos estados iniciais e posteriormente, os neurônios serão atualizados

até que tenham seus estados constantes (SILVA, 2003).

Figura 7 - Trecho de código para a reconstrução de padrões da rede de Hopfield

Fonte: adaptado de Silva (2003).

2.3 SISTEMA ATUAL

A rede social digital Twitter é considerada um microblog porque permite a troca de

textos de até 140 caracteres. A rede estrutura-se da seguinte forma: há atores que

desempenham o papel de seguidores, há atores que desempenham o papel de pessoas que são

seguidas e há atores que desempenham ambos os papéis. Dentre todos esses papéis, cada ator

pode determinar, de acordo com os seus interesses, quais e se serão adotados algum dos

papéis. Para os atores seguidores, são exibidas no seu feed as mensagens dos atores que se

está seguindo. Para o ator que é seguido, a mensagem é distribuída entre todos os seus

seguidores (RECUERO, 2009, p.173).

Dessa forma, os atores da rede tem o poder de escolher as origens das publicações que

visualizarão e possuem uma página de filtro por palavras-chave, porém não há uma maneira

eficiente de escolher quais publicações devem ou não ser exibidas, e ainda, estão limitados a

visualizar em seu feed, apenas as mensagens dos atores que se está seguindo e das

propagandas patrocinadas.

Page 22: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

20

2.4 TRABALHOS CORRELATOS

Os trabalhos correlatos aqui apresentados envolvem de alguma forma as técnicas que

foram utilizadas no desenvolvimento do sistema. Dallo (2013) trata do desenvolvimento de

um sistema capaz de classificar o conteúdo de páginas da web através de uma rede neural

artificial. O sistema de Dallo (2013) permite carregar as palavras presentes em determina

página web através do preenchimento de um campo com a URL. Após a etapa de busca das

palavras da página web desejada, esse conteúdo será processado por uma RNA. A Figura 8

representa a tela do sistema.

Figura 8 - Sistema de classificação de páginas web

Fonte: Dallo (2013).

O funcionamento de filtro de conteúdo é semelhante ao deste trabalho, porém Dallo

(2013) quantifica as palavras presentes na fase de treinamento e classificação para determinar

os pesos dos neurônios enquanto o sistema desenvolvido considera apenas a presença da

palavra.

O aprendizado da RNA no sistema desenvolvido é feita de forma híbrida, fazendo-se

necessária a classificação do usuário para determinar se as palavras são relevantes ou

irrelevantes para o interesse desejado, porém não permitindo alterar manualmente o resultado

Page 23: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

21

final do treinamento, enquanto Dallo (2013) realiza o treinamento da RNA a partir das

palavras-chave encontradas em documentos selecionados pelo usuário.

Já Holt (2013) criou um sistema que realiza o monitoramento da rede social digital

Twitter a partir de palavras-chave informadas pelo usuário. A Figura 9 representa o sistema de

Holt (2013).

Figura 9 - Sistema de monitoramento usando palavras-chave

Fonte: Holt (2013).

Diferente do sistema de Dallo (2013), o sistema de Holt (2013) apenas filtra as

publicações que contenham as palavras-chave selecionadas, permitindo a visualização

simultânea de diferentes palavras-chave.

O sistema desenvolvido por Martins e Coello (2010) apresenta características

semelhantes com o sistema de Dallo (2013). Ele possui módulos especializados em processar

determinados documentos de um determinado assunto, quantificar as palavras-chave

presentes nos documentos e realizar o treinamento da rede neural artificial. Diferente do

sistema de Dallo (2013), Martins e Coello (2010) fazem o uso de uma ontologia para filtrar os

documentos de maneira mais eficiente, porém, segundo eles, ―nos experimentos realizados, o

uso de ontologia mostra resultados positivos, porém causou grande perda de desempenho ao

agente, que passa a levar muito mais tempo para realizar a busca.‖.

Page 24: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

22

3. DESENVOLVIMENTO DO SISTEMA

Neste capítulo serão apresentadas as características do sistema desenvolvido, como o

levantamento de informações, especificação dos requisitos funcionais e não funcionais,

diagrama de casos de uso, diagrama de classes, técnicas e ferramentas utilizadas no

desenvolvimento do sistema, operacionalidade da implementação e por fim, os resultados

obtidos.

3.1 LEVANTAMENTO DE INFORMAÇÕES

O levantamento de informações foi realizado em conversas informais entre usuários de

redes sociais digitais. Com o interesse de visualizar a maior quantidade de informações sobre

determinado assunto dentro das redes sociais, foi verificada a necessidade de um sistema

capaz de filtrar os conteúdos e organizá-los através de interesses. Para atingir esse objetivo,

definiu-se um sistema responsável por monitorar e filtrar as publicações da rede social

Twitter, através da sua Application Programming Interface (API). O sistema ainda conta com

o filtro das publicações através de uma rede neural artificial, para proporcionar a visualização

de informações relevantes de acordo com os interesses do usuário.

O sistema foi dividido em cinco módulos: gerenciamento de conta, gerenciamento de

interesses, treinamento de interesses, monitoramento de publicações e visualização de

conteúdo. O módulo de gerenciamento de conta possibilita que o usuário crie e mantenha os

dados da sua conta. Para atender essa funcionalidade, foi desenvolvida uma página de

cadastro de usuários, página de login do sistema e uma página para configuração de dados da

conta.

O módulo de gerenciamento de interesses possibilita que o usuário crie e mantenha

seus interesses atualizados. Os interesses do usuário serão utilizados para alimentar a rede

neural artificial, que será responsável por filtrar as publicações da rede social digital Twitter.

Para atender essa funcionalidade, foi criada uma página de cadastro de interesses e palavras-

chave, onde cada interesse do usuário será composto por uma ou mais palavras-chave. As

palavras chaves serão utilizadas como filtro para o treinamento da rede neural artificial e os

Page 25: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

23

interesses terão um percentual de limiar que definirá se a publicação deverá ou não ser exibida

para o usuário.

O módulo de treinamento de interesses é responsável por realizar o treinamento da

rede neural artificial. As palavras-chave do interesse serão utilizadas para filtrar as

publicações do Twitter e as palavras-chave presentes nas publicações serão utilizadas para

alimentar a rede neural artificial. Para atender essa funcionalidade, foi criada uma página de

treinamento de interesses, que permite ao usuário selecionar o interesse desejado e iniciar o

treinamento, parar o treinamento e avaliar as publicações como relevantes ou irrelevantes.

O módulo de monitoramento de publicações é responsável por manter o

monitoramento contínuo das publicações que contenham as palavras-chave dos interesses de

todos os usuários. Para atender essa funcionalidade, foi criado um mecanismo que utiliza

bibliotecas que fazem o acesso a API do Twitter para obter as publicações em tempo real.

O módulo de visualização de conteúdo possibilita que o usuário visualize as

publicações que atendam aos seus interesses. Para atender à funcionalidade de visualização de

conteúdo, será utilizada a técnica de mineração de texto na publicação para separar suas

palavras-chave. As palavras-chave presentes na publicação serão tratadas e usadas como

entrada para a rede neural artificial, que reconstruirá o padrão de interesses e filtrará a

publicação de acordo com o percentual de limiar definido no interesse.

Para o desenvolvimento do sistema, foram necessárias as seguintes ferramentas:

a) ferramenta Eclipse Juno para o desenvolvimento do sistema;

b) Node.js para o back-end do sistema;

c) MongoDB como o banco de dados;

d) Backbone.js para o desenvolvimento do front-end;

e) Twitter Bootstrap para o desenvolvimento da parte gráfica do front-end;

f) Sparx Systems Enterprise Architect para a modelagem dos diagramas.

3.2 ESPECIFICAÇÃO

Nesta seção serão apresentados os requisitos funcionais e não funcionais do sistema, os

digramas de atividades, os diagramas de classes e o diagrama de casos de uso, sendo que os

principais casos de uso estão descritos no Apêndice A.

Page 26: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

24

3.2.1. Requisitos do sistema

O Quadro 1 apresenta os Requisitos Funcionais (RF) previstos para o sistema e sua

rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s). Dentre eles

destacam-se o RF05, RF06 e RF07. O RF05 diz respeito à criação de um mecanismo que seja

capaz de realizar o monitoramento de publicações realizadas na rede social Twitter. O RF06

diz respeito à forma como o sistema será capaz de identificar as publicações relevantes para o

usuário. Por fim, o RF07 refere-se à forma que o sistema será capaz de avaliar as publicações

para o usuário.

Quadro 1 - Requisitos funcionais

Requisitos Funcionais Caso de Uso

RF01: O sistema deverá permitir que o usuário efetue login no sistema. UC01

RF02: O sistema deverá permitir o usuário manter conta. UC02

RF03: O sistema deverá permitir o usuário manter interesses. UC03

RF04: O sistema deverá permitir o usuário manter palavras-chave. UC04

RF05: O sistema deverá monitorar as publicações do Twitter. UC06

RF06: O sistema deverá realizar o treinamento da rede neural com os

interesses do usuário.

UC05

RF07: O sistema deverá permitir o usuário visualizar publicações filtradas

pela rede neural.

UC07

O Quadro 2 lista os Requisitos Não Funcionais (RNF) previstos para o sistema. Dentre

eles, destaca-se o RNF01, que diz respeito à forma com que as publicações do Twitter serão

monitoradas.

Quadro 2 - Requisitos não funcionais

Requisitos Não Funcionais

RNF01: O sistema deverá utilizar a API do Twitter para buscar as publicações.

RNF02: O sistema deverá ser desenvolvido na linguagem JavaScript.

RNF03: O sistema deverá utilizar banco de dados MongoDB.

RNF04: O sistema deverá ser multi browser.

Page 27: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

25

3.2.2. Diagramas de casos de uso

Esta subseção apresenta o diagrama de casos de uso do sistema desenvolvido, sendo

que a descrição e o detalhamento dos casos de uso estão disponíveis no Apêndice A.

A Figura 10 apresenta o cenário com as funcionalidades que o usuário pode realizar.

Será permitido ao usuário cadastrar-se, realizar login e manter sua conta no sistema para que

dessa forma tenha-se acesso aos interesses já cadastrados e publicações filtradas

anteriormente. Também será permitido ao usuário criar interesses e palavras-chave, que serão

responsáveis por definir os conteúdos visualizados. Será permitido realizar o treinamento dos

seus interesses, que será responsável por ensinar a rede neural quais tipos de publicações são

relevantes para o usuário. Por fim, será possível que o usuário visualize publicações vindas da

rede social Twitter, obtidas através do uso de sua API.

Figura 10 - Diagrama de casos de uso

Page 28: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

26

3.2.3. Diagramas de atividades

A Figura 11 contém o diagrama de atividades que representa o treinamento da rede

neural artificial. Como pode ser observado, o processo tem início com a busca dos interesses e

das palavras-chave cadastrados pelo usuário, que são responsáveis por definir quais conteúdos

serão visualizados. Então as publicações do Twitter serão filtradas utilizando as palavras-

chave do interesse para que o usuário visualize e classifique as publicações como relevantes

ou irrelevantes, para dessa forma treinar a rede neural com o que considera interessante. A

partir daí o sistema encarrega-se de separar todas as palavras-chave de todas as publicações

selecionadas no treinamento e as adiciona como neurônios da RNA. Terminada a construção

da rede, as palavras-chave de cada publicação selecionada no treinamento são utilizadas como

uma regra de aprendizado para a RNA. Esse padrão corresponde à presença das palavras-

chave da publicação em relação a todas as palavras-chave selecionadas no treinamento.

Figura 11 - Diagrama de atividades do treinamento da RNA

Page 29: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

27

A Figura 12 contém o diagrama de atividades que representa o filtro de conteúdos

através da RNA. Como pode ser observado, o processo é iniciado quando o usuário seleciona

um determinado interesse, para que sejam exibidas publicações relacionadas a ele. Após a

seleção do interesse, o sistema encarrega-se de buscar as publicações utilizadas como base

para o treinamento do interesse e constrói a rede neural do usuário. A partir desse ponto,

enquanto o usuário não executar a ação de parar com a visualização dos conteúdos, serão

buscadas publicações do Twitter para que sejam avaliadas pela rede neural. Para realizar a

avaliação, o sistema separa as palavras-chave presentes na publicação e, de acordo com a

presença delas nos neurônios da rede, gera o padrão de entrada para a RNA. Esse padrão é

submetido a RNA, que é responsável por fazer a reconstrução do padrão informado,

transformando-o em um dos padrões já aprendidos no treinamento do interesse. Após a RNA

ser estabilizada, o sistema compara o padrão submetido com o padrão reconstruído, para

verificar se a publicação avaliada faz parte dos interesses do usuário. O sistema realiza a

comparação através de uma função que define que: se o limiar definido no interesse for

atendido, a publicação é exibida; senão ela é descartada.

Page 30: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

28

Figura 12 - Diagrama de atividades da avaliação das publicações através da RNA

Page 31: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

29

3.2.4. Diagramas de classe

A Figura 13 contém a versão resumida do diagrama de classes que representa a

estrutura do front-end do sistema. Foram escolhidas apenas as classes que contribuem para a

lógica do sistema. As classes responsáveis por controlar acesso ao banco de dados ou

desenhar as telas foram omitidas do diagrama. A descrição do dicionário de dados do sistema

pode ser visualizada no Apêndice C.

Figura 13 - Diagrama de classes simplificado do front-end do sistema

A função de cada classe é descrita a seguir:

a) classe Login - classe responsável por realizar as operações de login do sistema.

A classe não armazena dados, apenas possui vínculo com a classe User, que

contém os dados de acesso ao sistema;

b) classe User - classe responsável por armazenar dados do usuário. A classe

armazena dados de nome, senha, e-mail, faz ligação com os interesses do usuário

e com a rede neural de Hopfield;

c) classe Interest - classe responsável por armazenar dados dos interesses do

usuário. A classe armazena dados de título do interesse, descrição do interesse,

Page 32: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

30

interesse ativo, percentual de ativação, palavras-chave e faz ligação com os

conteúdos e o treinamento;

d) classe Training - classe responsável por armazenar o treinamento dos

interesses. A classe armazena dados de texto da publicação, data da publicação,

relevância e faz ligação com os conteúdos e com os interesses;

e) classe Content - classe responsável por armazenar dados dos conteúdos

filtrados pela rede neural. A classe armazena dados de texto da publicação, data da

publicação e faz ligação com os interesses, treinamentos e com a rede neural de

Hopfield;

f) classe HopfieldNetwork - classe responsável por realizar o reconhecimento

de padrões de interesses do usuário. A classe armazena um índice de neurônios,

que são compostos pelas palavras-chave do interesse, a matriz de peso, que é a

memória da rede neural, e faz ligação com o usuário e com os conteúdos;

A Figura 14 contém a versão resumida do diagrama de classes que representa a

estrutura do back-end do sistema. Igualmente foram escolhidas apenas as classes que

contribuem para a lógica do sistema, além disso, a listagem de atributos e métodos foi

simplificada.

Figura 14 - Diagrama de classes simplificado do back-end do sistema

Page 33: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

31

A função de cada classe é descrita a seguir:

a) classe Server - classe responsável por organizar a estrutura de rotas do sistema,

responder com o conteúdo do sistema e organizar a busca de publicações do

Twitter;

b) classe Worker - classe responsável por controlar a classe que realiza a busca das

publicações do Twitter que contenham as palavras-chave dos interesses dos

usuários;

c) classe Twitter - classe responsável por armazenar os dados de autenticação do

sistema vinculados ao Twitter. Esses dados são disponibilizados ao desenvolvedor

ao cadastrar uma nova aplicação para a rede social;

d) classe TwitterStream - classe que faz uso da biblioteca ntwitter-

immortal para buscar publicações do Twitter. Através de alterações realizadas

nas rotinas da biblioteca é possível iniciar e parar a busca de publicações

realizadas em tempo real;

e) classe Users - classe responsável por realizar as operações de inserção, seleção e

atualização dos dados dos usuários do sistema;

f) classe Interests - classe responsável por realizar as operações de inserção,

seleção, atualização e exclusão de interesses do sistema;

g) classe Contents - classe responsável por realizar as operações de inserção,

seleção e exclusão de conteúdos do sistema;

h) classe Trainings - classe responsável por realizar as operações de inserção,

seleção, atualização e exclusão de treinamentos de interesses do sistema;

i) classe Authentications - classe responsável por realizar a autenticação,

mudança de senha, envio de e-mails e logout dos usuários do sistema. A classe

também conta com rotinas que tratam da restrição de visualização de registros que

não sejam de autoria do usuário e rotinas que validam os tokens de acesso dos

usuários ao sistema.

Page 34: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

32

3.3 IMPLEMENTAÇÃO

A seguir são mostradas as técnicas e ferramentas utilizadas no desenvolvimento do

sistema, a operacionalidade da implementação, bem como determinados trechos de código

que são relevantes para o entendimento do sistema.

3.3.1 Técnicas e ferramentas utilizadas

Para o desenvolvimento do sistema foi utilizada a ferramenta Eclipse Juno, conforme

apresentado na Figura 15. A ferramenta possui editor para a linguagem JavaScript com plug-

in para a plataforma Node.js bem como possui editores para HTML e CSS.

Figura 15 - Ferramenta usada para o desenvolvimento do sistema

O sistema foi desenvolvido utilizando a linguagem JavaScript, tanto no front-end

quanto no back-end. Para o desenvolvimento do back-end foi utilizada a plataforma Node.js,

que faz uso do modelo orientado a eventos, com Input/Output (I/O) não bloqueante, o que

torna a plataforma leve e eficiente, perfeita para aplicações em tempo real com grande volume

de dados (DAHL, 2013).

Diferente dos servidores web que criam novas threads para atender a novas requisições

Page 35: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

33

dos usuários, a plataforma Node.js usa apenas uma thread. Conforme apresentado na Figura

16, várias conexões podem ser tratadas concorrentemente desta maneira. Ao conectar-se ao

servidor, será executada a função de callback, ou seja, cada conexão é apenas uma pequena

parte alocada da memória (DAHL, 2013).

Figura 16 - Trecho de código usando Node.js

Fonte: DAHL (2013)

Para realizar o monitoramento das publicações do Twitter foi utilizada como base a

biblioteca immortal-ntwitter, que facilita o processo de busca de publicações, início e

parada de monitoramento (IMMORTAL-NTWITTER, 2013). O trecho de código que

corresponde aos controles de início e parada do monitoramento de publicações do Twitter

pode ser visualizado na Figura 17. O método de início faz uso da biblioteca supracitada para

estabelecer a conexão com a API do Twitter e cria uma função de call-back para ser

executada quando novas publicações forem encontradas. As publicações recebidas são

enviadas para os usuários conectados ao sistema. O método de parada aborda a conexão para

que ela seja reestabelecida com novas palavras-chave para o filtro. A forma de obtenção dos

dados de conexão com a rede social é descrita no Apêndice B.

Figura 17 - Trecho de código responsável por fazer a busca das publicações

Além dos controles de início de pausa de monitoramento, a Figura 18 apresenta o

trecho de código usado para monitorar as publicações usando as palavras-chave cadastradas

nos interesses dos usuários. Através dessa rotina é atendido o objetivo referente ao

mecanismo de monitoramento do Twitter. O requisito funcional atendido é o RF05.

Page 36: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

34

Figura 18 - Trecho de código para monitoramento de publicações do Twitter

Para o desenvolvimento do front-end foram utilizados os frameworks Backbone.js,

Underscore.js e Twitter Bootstrap. O framework Backbone.js tem como objetivo estruturar a

aplicação através do padrão Model View Collection (MVC). Ele oferece uma estrutura de

modelos com acesso por chave-valor e eventos customizados, coleções com várias funções,

visualizações com tratamentos de evento e tudo é conectado diretamente ao back-end da

aplicação através de uma interface JavaScript Object Notation (JSON) (ASHKENAS, 2013a).

Já o framework Underscore.js tem como objetivo reunir funções em JavaScript para

agilizar o desenvolvimento, como criação de templates e funções específicas (ASHKENAS,

2013b).

Para o desenvolvimento da parte gráfica foi utilizado o Twitter Bootstrap, que é um

framework para o desenvolvimento de telas, criado para padronizar e agilizar o

desenvolvimento do front-end (OTTO, 2011).

Para realizar a persistência dos dados no sistema foi utilizado o banco de dados

MongoDB. Trata-se de um banco não relacional orientado a documentos, sem esquemas, de

alto desempenho e alta escalabilidade (MONGODB, 2013).

A escolha de tal banco de dados deu-se por três motivos principais:

a) enquadrar-se perfeitamente com o framework Backbone.js, que faz uso de uma

Page 37: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

35

interface JSON para a camada de persistência;

b) ausência de esquema, viabilizando a adaptação e integração com outras redes

sociais digitais;

c) alta escalabilidade, viabilizando escalar a base horizontalmente, sendo necessário

apenas configurar novos nós em outras máquinas.

Para configurar e visualizar os dados foi utilizada a aplicação cliente presente no

pacote de instalação do MongoDB. A Figura 19 apresenta a tela da aplicação.

Figura 19 - Aplicação cliente MongoDB

Para realizar o filtro dos conteúdos é utilizada uma RNA treinada com base nos

interesses do usuário. Foi escolhido o modelo de Hopfield por tratar-se de um modelo

associativo, com objetivo de reconstruir padrões incompletos, que é o caso das publicações

das redes sociais digitais.

Na Figura 20 é apresentado o trecho de código em que é feita a construção da RNA a

partir dos interesses cadastrados pelo usuário. As publicações usadas como treinamento do

interesse são carregadas em uma lista e cada palavra presente nas publicações relevantes dessa

lista é considerada como um neurônio para a rede. As palavras presentes nas publicações

irrelevantes dessa lista são removidas dos neurônios e cada publicação relevante é

transformada em um padrão para a rede neural artificial. Através dessa rotina é atingido o

objetivo referente a construir uma rede neural baseada nos interesses do usuário.

Page 38: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

36

Figura 20 - Trecho de código responsável por criar a RNA com base nos interesses

Na Figura 21 é apresentado o trecho de código em que ocorre o treinamento da RNA.

O padrão apresentado à RNA é processado em três etapas até que seja armazenado. A

primeira etapa é transformar o padrão binário em bipolar, pois os padrões apresentados à rede

são descritos em valores binários, que representam a presença ou ausência da palavra-chave

na memória da rede, e matematicamente valores binários não são opostos. O segundo passo é

transpor e multiplicar a matriz que representa o padrão, fazendo com que seja gerada uma

matriz quadrada, que representa a conexão entre todos os neurônios. O terceiro passo é zerar a

diagonal principal da matriz, pois como a matriz representa uma memória associativa,

significa que os neurônios não possuem ligações com eles mesmos.

Realizados os três passos, a matriz é somada com a memória anterior da rede fazendo

com que o padrão seja aprendido. Através dessa rotina é atendido o objetivo referente a

realizar o treinamento da rede neural. O requisito funcional atendido é o RF06.

Page 39: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

37

Figura 21 - Trecho de código responsável por realizar o treinamento da RNA

Para reconstruir o padrão a RNA segue três fases de processamento. A primeira fase é

separar as palavras-chave da publicação sujeita a exibição, da mesma forma como é feito o

treinamento da rede, mas dessa vez o padrão vai ser avaliado. A segunda fase é adaptar a

entrada da rede de acordo com os seus neurônios, gerando um padrão binário de entrada. A

terceira etapa é fazer com que a rede reconstrua um padrão já treinado a partir do padrão

fornecido como entrada. A Figura 22 apresenta o trecho de código responsável por fazer a

reconstrução do padrão de entrada.

Page 40: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

38

Figura 22 - Trecho de código responsável por reconstruir o padrão apresentado à rede

Além da reconstrução do padrão, o sistema também faz a comparação do padrão de

entrada da rede com o padrão reconstruído. Se os dois atingirem o percentual para a exibição

definido no cadastro do interesse, a publicação é considerada relevante e é exibida para o

usuário. A Figura 23 apresenta o trecho de código responsável por fazer a avaliação da

publicação. Através dessa rotina é atingido o objetivo referente a realizar o filtro de

publicações através da RNA. O requisito funcional atendido é o RF07.

Page 41: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

39

Figura 23 - Trecho de código responsável por definir a exibição da publicação

3.3.2 Operacionalidade da implementação

Nesta subseção são apresentadas as principais telas do sistema, suas funcionalidades e

trechos de código para o entendimento das principais rotinas.

Ao abrir o sistema, é apresentada a página de login. A página de login contém uma

descrição breve do sistema, links para baixar o código fonte do sistema, ferramentas utilizadas

e para o perfil do seu criador. A página também contém uma caixa solicitando o e-mail e

senha do usuário para entrar no sistema. Através da página é atendido o requisito funcional

RF01. A Figura 24 apresenta a página de login.

Page 42: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

40

Figura 24 - Página de login do sistema

Os usuários não serão cadastrados por um administrador. Para obter acesso ao sistema

todos os novos usuários deverão criar sua conta informando nome, e-mail e senha, conforme a

página exibida na Figura 25. Através da página é atendido parcialmente o requisito funcional

RF02, que define que o sistema torne possível manter as contas de usuários.

Figura 25 - Página de cadastro de usuário

Após a autenticação ou o cadastro no sistema, o usuário é direcionado para a página

Page 43: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

41

home, onde são exibidos os módulos principais do sistema: interesses, treinamento e

conteúdo. A Figura 26 apresenta a página home.

Figura 26 - Página home do sistema

Além dos módulos principais, o usuário pode realizar alterações na sua conta através

do botão "Usuário". A Figura 27 apresenta a página para realizar as alterações na conta de

usuário. Através dessa página o requisito funcional RF02 é atendido completamente.

Figura 27 - Página de edição de dados do usuário

Page 44: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

42

Para que o usuário visualize os conteúdos é necessário antes realizar duas etapas: o

cadastro de seus interesses e o seu treinamento. Ao acessar a página de interesses é exibida

uma lista com todos os interesses do usuário e as funções para cadastrar um novo interesse ou

excluir um ou mais interesses cadastrados, conforme Figura 28.

Figura 28 - Página de interesses

Ao cadastrar um novo interesse, o usuário deverá informar o título do interesse, uma

breve descrição do interesse, o percentual de aceitação para as publicações filtradas pela rede

neural artificial e as palavras-chave que compõem o interesse. A Figura 29 apresenta a página

de cadastro de interesses. Através dessa página é atendido o objetivo referente ao cadastro de

interesses e palavras-chave. Os requisitos funcionais atendidos são os RF03 e RF04.

Page 45: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

43

Figura 29 - Cadastro de interesse

Terminado o cadastro do interesse, é necessário realizar o treinamento da rede para que

o conteúdo comece a ser exibido. Ao acessar a página de treinamento é exibida uma lista com

os interesses ativos e funções para iniciar ou excluir o treinamento. A Figura 30 apresenta a

página de treinamento.

Figura 30 - Página de treinamento de interesses

Page 46: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

44

Iniciado o treinamento, as publicações filtradas com as palavras-chave do interesse

serão exibidas para que o usuário as classifique como relevantes ou irrelevantes e assim

componha a memória da RNA. Também é possível usar a função ―Recarregar‖ para exibir

outras publicações e a função ―Parar‖ para terminar o treinamento do interesse. A Figura 31

apresenta as publicações sendo exibidas.

Figura 31 - Treinamento de interesses

Na Figura 32 apresenta-se o trecho de código usado para exibir as publicações para que

o usuário classifique-as.

Figura 32 - Trecho de código responsável por exibir as publicações do treinamento

Page 47: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

45

Após realizar o treinamento das publicações é possível visualizar o conteúdo filtrado

através da RNA. Ao acessar a página de conteúdos é exibida uma lista com os interesses

cadastrados e uma função para iniciar a visualização dos conteúdos caso o interesse já tenha

passado pela etapa de treinamento. A Figura 33 apresenta a página de conteúdos.

Figura 33 - Página de visualização de conteúdos

Ao abrir e selecionar o interesse da página de conteúdos, a rede neural artificial é

treinada com as publicações selecionadas na sessão de treinamento do interesse. Após realizar

o treinamento da RNA, as publicações estão prontas para serem filtradas. A Figura 34

apresenta a página de conteúdos exibindo publicações consideradas relevantes pela RNA. A

página ainda conta com a função ―Parar‖ para que os conteúdos sejam interrompidos.

Figura 34 - Página de conteúdos exibindo mensagens filtradas através da RNA

Page 48: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

46

3.4 RESULTADOS E DISCUSSÃO

O sistema desenvolvido neste trabalho atendeu as expectativas propostas fazendo com

que os usuários de redes sociais digitais possam visualizar grande quantidade de informações

sobre determinado assunto, respeitando os seus interesses específicos.

No Quadro 3 é feita uma comparação das principais funções encontradas no sistema

desenvolvido e nos trabalhos correlatos. Dentre elas, destacam-se o uso da rede neural

juntamente com o filtro realizado em tempo real, possibilitando a visualização de grande

quantidade de informações.

Quadro 3 - Comparação com os trabalhos correlatos

Funções Holt

(2013)

Dallo

(2013)

Martins e Coello

(2010) Sistema desenvolvido

Uso de rede neural X X X

Filtro de conteúdo X X X X

Filtro em tempo real X X

Integração com redes sociais X X

Ao término do desenvolvimento do trabalho foi realizado um questionário para validar

as principais funções do sistema e a forma com que o treinamento de interesses é realizado.

Para realização do questionário, foram entrevistados informalmente cinco usuários de redes

sociais digitais, todos residentes em Blumenau.

Na Figura 35 tem-se o resultado referente ao entendimento das funcionalidades e uso

do sistema.

Figura 35 - Gráfico do entendimento do sistema

Page 49: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

47

A Figura 36 trata da forma com que o treinamento dos interesses é feito para que se

possam filtrar os conteúdos usando a rede neural artificial. Houve bastante divergência nas

respostas dessa questão, tal fato pode ser explicado devido ao fato de que alguns usuários

encontraram demora em realizar o treinamento de determinados interesses, visto que são

filtradas publicações em tempo real.

Figura 36 - Gráfico da forma com que o treinamento de interesses é feito

Na Figura 37 pode-se observar que o resultado do filtro da rede neural artificial está

em um grau aceitável para os usuários das redes sociais, visto que os usuários que marcaram a

opção ―Atende parcialmente‖ o fizeram por ter encontrado demora do sistema para listar

conteúdos relevantes. Tal fato é esperado, já que o sistema depende das publicações realizadas

em tempo real pela rede social digital Twitter.

Figura 37 - Gráfico dos conteúdos apresentados usando a RNA

Page 50: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

48

4. CONCLUSÕES

O trabalho aqui apresentado discorre sobre o desenvolvimento de um sistema capaz de

filtrar conteúdo relevante através de uma rede neural artificial treinada com os interesses do

usuário. O estudo de redes neurais artificiais possibilitou um melhor entendimento de como

essa técnica funciona e como ela é utilizada para fazer o reconhecimento de padrões não

apenas em textos, mas também em outros tipos de mídia, como imagens e áudio. Foi este

estudo que possibilitou a determinação de três objetivos do trabalho, que são criar uma rede

neural a partir os interesses do usuário, realizar o seu treinamento e filtrar publicações através

dela. Todos os três objetivos foram atendidos, visto que o sistema é capaz de montar a rede

neural a partir dos interesses, aceita que o usuário faça o seu treinamento e realiza o filtro das

publicações com ela, porém, apesar de mostrar resultados satisfatórios, o filtro de conteúdo

depende completamente das palavras selecionadas durante a etapa de treinamento, e sabe-se

que palavras comuns diminuem o poder descritivo do interesse e impactam na qualidade das

publicações filtradas pela rede.

Para atingir o objetivo referente ao monitoramento das publicações da rede social

digital Twitter foi desenvolvida uma rotina para buscar as publicações de acordo com as

palavras-chave dos interesses dos usuários. Tal objetivo foi atendido, visto que o sistema

realiza o monitoramento das publicações do Twitter e realiza o filtro dessas publicações com

a rede neural artificial. Para que este objetivo fosse atendido, foi utilizada a biblioteca

immortal-ntwitter. Sem essa biblioteca não seria possível realizar a busca das

publicações de maneira tão eficiente, seguindo as recomendações descritas na documentação

das integrações do Twitter.

Outro objetivo refere-se à criação de uma estrutura que possibilite ao usuário manter

seus interesses e palavras-chave. Para atender este objetivo foi desenvolvida uma página que

possibilita a criação, edição e exclusão de interesses compostos por palavras-chave.

O objetivo final do sistema, que trata do monitoramento e filtro de publicações

presentes na rede social digital Twitter foi atendido. O sistema mostrou-se capaz de realizar o

filtro das publicações em tempo real, de acordo com os interesses de cada usuário, porém, o

sistema apresenta uma limitação oriunda de limitações impostas pela própria rede social em

que as publicações são buscadas. Segundo o Twitter, não é permitido realizar a busca de

publicações com mais de 400 palavras-chave simultaneamente. Entretanto, a quantidade de

palavras-chave que podem ser filtradas simultaneamente é alta. Desta forma, o resultado

Page 51: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

49

obtido na utilização do filtro das publicações é satisfatório.

A utilização de publicações oriundas da rede social digital Twitter também se mostrou

um ponto positivo para o sistema e, unido ao uso da rede neural, é um fator que diferencia o

sistema dos trabalhos semelhantes.

4.1 EXTENSÕES

Como sugestões de extensões para trabalhos futuros, têm-se os seguintes itens:

a) filtrar conteúdos de outras redes sociais digitais;

b) aprimorar o filtro de conteúdos através do uso de uma ontologia, para que se

atribuam pesos à palavras similares;

c) criar uma rede neural capaz de filtrar imagens presentes nas redes sociais digitais.

Page 52: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

50

REFERÊNCIAS

ASHKENAS, Jeremy. Backbone.js. San Francisco, [2013]. Disponível em:

<http://backbonejs.org/>. Acesso em: 15 out. 2013.

ASHKENAS, Jeremy. Underscore.js. San Francisco, [2013]. Disponível em:

<http://underscorejs.org/>. Acesso em: 15 out. 2013.

BARRETO, Jorge M. Introdução as Redes Neurais Artificiais. Florianópolis, [2002].

Disponível em: <http://www.inf.ufsc.br/~barreto/tutoriais/Survey.pdf>. Acesso em: 11 abr.

2013.

BEAVER, Doug et al. Needle in a Haystack: Efficient Storage of Billions of Photos.

Facebook Engineering Notes. San Francisco, [2009]. Disponível em:

<http://www.facebook.com/note.php?note_id=76191543919>. Acesso em: 10 abr. 2013.

BENEVENUTO, Fabrício.; ALMEIDA, Jussara.; SILVA, Altigran. Coleta e Análise de

Grandes Bases de Dados de Redes Sociais Online. In: SOUZA, Alberto Ferreira et al.

Jornada de Atualizações em Informática (JAI). Curitiba: CSBC, 2012. p.11-57.

BRAGA, Antônio P.; CARVALHO, Andre C. P. L. F.; LUDEMIR, Teresa B. Redes Neurais

Artificiais: Teoria e Aplicações. Rio de Janeiro: LTC, 2000.

DAHL, Ryan L. Node.js. San Francisco, [2013]. Disponível em: <http://nodejs.org/>. Acesso

em: 10 out. 2013.

DALLO, Genilto. Classificação de páginas da Internet utilizando redes neurais

artificiais. Guarapuava, [2013]. Disponível em: <http://www.geniltodallo.com/wp-

content/uploads/2013/03/Artigo-Redes-Neurais-Artificiais-Genilto-Dallo.pdf>. Acesso em:

05 abr. 2013.

GARTON, Laura.; HAYTHORNTHWAITE, Caroline.; WELLMAN, Barry. Studying

Online Social Networks, Journal of Computer Mediated Communication, n.3, vol 1, 1997.

Disponível em: <http://jcmc.indiana.edu/vol3/issue1/garton.html>. Acesso em: 05 abr. 2013.

HOLT, Alex. Monitter. Sydney, [2013]. Disponível em: <http://monitter.com/>. Acesso em:

10 abr. 2013.

IMMORTAL-NTWITTER. Imortal-ntwitter. San Francisco, [2013]. Disponível em:

<https://github.com/horixon/immortal-ntwitter>. Acesso em: 12 out. 2013.

KARRER, Daniel et al. Redes neurais artificiais: conceitos e aplicações. In: Encontro de

Engenharia de Produção da UFRJ, 9., 2005, Rio de Janeiro. Anais... Rio de Janeiro: UFRJ,

2005.

MARTINS, Daniel M.; COELLO, Juan M. A. Filtragem de informação na web usando

rede neural de Hopfield e ontologia. In: Encontro de Iniciação Científica, 15., 2010,

Campinas. Anais... Campinas: PUC-Campinas, 2010.

Page 53: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

51

MCCULLOCH, Warren S.; PITTS, Walter H. Logical Calculus of the Ideas Immanent in

Nervous Activity. Bulletin of Mathematical Biophysics, Elmsford, v.5, p.115-133, 1943.

MONGODB, MongoDB. Palo Alto, [2013]. Disponível em: <http://www.mongodb.org/>.

Acesso em: 10 out. 2013.

OTTO, Mark. Bootstrap from Twitter. San Francisco, 2011. Disponível em:

<https://dev.twitter.com/blog/bootstrap-twitter>. Acesso em: 20 out. 2013.

RECUERO, Raquel. Redes sociais na internet. Porto Alegre: Sulina, 2009.

ROSEN, Bruce. A Hopfield Net Example. Los Angeles, 2009. Disponível em:

<http://www.cs.ucla.edu/~rosen/161/notes/hopfield.html>. Acesso em: 14 out. 2013.

SILVA, Juliana M. N. Redes Neurais Artificiais: Rede Hopfield e Redes Estocásticas. 2003.

40 f. Estudo Orientado (Pós-Graduação em Ciência da Computação) - Instituto de

Computação, Universidade Federal Fluminense, Niterói.

TATIBANA, Cassia Y.;KAETSU, Deisi Y. Uma introdução às Redes Neurais. Maringá,

[2000?]. Disponível em: <http://www.din.uem.br/ia/neurais/>. Acesso em: 12 out. 2013.

TOMAÉL, Maria I.; ALCARÁ, Adriana R.; CHIARA, Ivone G. Das redes sociais à inovação.

Ci. Inf., Brasília, v. 34, n. 2, p. 93-104, Mai./Ago. 2005.

Page 54: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

52

APÊNDICE A – Descrição dos Casos de Uso

Nos quadros a seguir, tem-se o detalhamento dos casos de uso presentes no diagrama

apresentado na sessão 3.2.2. No Quadro 4 apresenta-se a função do caso de uso, as pré-

condições, pós-condições e o fluxo principal e alternativo para que o usuário faça login no

sistema.

Quadro 4 - Caso de uso "Efetuar Login"

UC01 Efetuar Login

Permite ao usuário conectar-se ao sistema.

Ator: Usuário.

Pré-condição: O usuário deve estar cadastrado na base de dados.

Pós-condição: Usuário conectado ao sistema.

Cenários.

Fluxo principal:

1. Usuário acessa o sistema;

2. Usuário informa os dados para acesso;

3. Usuário obtém acesso ao sistema.

Fluxo alternativo:

No passo 2 caso os dados informados sejam inválidos:

1. Sistema exibe mensagem alertando o nome de usuário e/ou senha inválido(s);

2. Sistema volta para o fluxo principal no passo 2.

No Quadro 5 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que o usuário mantenha os dados de sua conta atualizada

no sistema.

Page 55: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

53

Quadro 5 - Caso de uso "Manter conta de usuário"

UC02 Manter Conta de Usuário

Permite ao usuário cadastrar ou alterar sua conta.

Ator: Usuário.

Pré-condição: Não há.

Pós-condição: O usuário criou/alterou dados da sua conta.

Cenários.

Fluxo principal:

1. Usuário opta por cadastrar sua conta.

2. Sistema exibe formulário de cadastro de conta;

3. Usuário preenche os dados do formulário;

4. Usuário seleciona a opção ―Cadastrar‖;

5. Sistema inclui o registro na base;

6. Sistema exibe mensagem confirmando o cadastro;

7. Sistema redireciona o usuário para a página inicial.

Fluxo alternativo:

No passo 3 caso os dados obrigatórios não sejam preenchidos:

1. Sistema exibe mensagem de alerta requisitando o preenchimento dos campos;

2. Sistema volta para o fluxo principal no passo 3.

No Quadro 6 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que o usuário mantenha os dados dos seus interesses

atualizados no sistema.

Page 56: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

54

Quadro 6 - Caso de uso "Manter interesses"

UC03 Manter Interesses

Permite ao usuário criar, alterar ou excluir seus interesses.

Ator: Usuário.

Pré-condição: Usuário deve fazer login no sistema.

Pós-condição: Usuário cadastrou, editou ou excluiu interesse.

Cenários.

Fluxo principal:

1. Usuário acessa página de interesses;

2. Sistema exibe interesses cadastrados;

3. Usuário opta por incluir, editar ou excluir registro(s).

Cenário - Inclusão/Edição:

1. Sistema exibe formulário de cadastro;

2. Usuário preenche dados do formulário;

3. Usuário seleciona a opção ―Salvar‖;

4. Sistema realiza a alteração na base;

5. Sistema confirma a alteração para o usuário.

Cenário - Exclusão:

1. Usuário seleciona um ou mais interesses;

2. Usuário seleciona a ação ―Excluir‖;

3. Sistema pede confirmação de exclusão;

4. Usuário confirma exclusão;

5. Sistema exclui interesse.

Fluxo alternativo:

No passo 3 do cenário de inclusão/edição, caso os dados obrigatórios não estejam

preenchidos:

1. Sistema exibe mensagem de alerta requisitando o preenchimento dos campos;

2. Sistema volta para o fluxo principal no passo 2.

No passo 3 do cenário de exclusão, caso o usuário não confirme a exclusão:

1. Sistema retorna para o passo 2 do fluxo principal.

No Quadro 7 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que o usuário mantenha as palavras-chave atualizadas

dentro dos seus interesses.

Page 57: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

55

Quadro 7 - Caso de uso "Manter palavras-chave"

UC04 Manter Palavras-chave

Permite ao usuário criar ou excluir as palavras-chaves de seus interesses.

Ator: Usuário.

Pré-condição: Usuário deve fazer login no sistema e deve selecionar interesse.

Pós-condição: Usuário cadastrou ou excluir palavra-chave.

Cenários.

Fluxo principal:

1. Usuário seleciona interesse;

2. Sistema exibe coleção de palavras-chave;

3. Usuário opta por incluir ou excluir palavras-chave.

Cenário - Inclusão/alteração:

1. Sistema grupo de palavras-chave;

2. Usuário faz o preenchimento do grupo;

3. Usuário seleciona a opção ―Salvar‖;

4. Sistema realiza a inclusão/atualização na base;

5. Sistema confirma a inclusão/atualização para o usuário.

Fluxo alternativo:

No passo 2 do cenário de inclusão/alteração, caso o usuário não preencha ao menos

uma palavra-chave:

1. Sistema exibe mensagem de alerta requisitando o preenchimento das palavras-

chave;

2. Sistema volta para o fluxo principal no passo 2.

No Quadro 8 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que o usuário realize o treinamento da rede neural artificial

para realizar o filtro de conteúdos.

Page 58: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

56

Quadro 8 - Caso de uso "Treinar rede neural"

UC05 Treinar Rede Neural

Permite o usuário treinar a rede neural para filtrar interesses.

Ator: Usuário.

Pré-condição: Usuário deve fazer login no sistema e deve possuir interesses e palavras-

chave cadastradas.

Pós-condição: Rede neural é treinada com os interesses do usuário.

Fluxo principal:

1. Usuário seleciona módulo ―Treinamento‖;

2. Sistema busca os interesses do usuário;

3. Usuário seleciona interesse para realizar o treinamento;

4. Sistema exibe publicações filtradas pelas palavras-chave;

5. Usuário classifica as publicações como relevante ou irrelevante;

6. Rede neural é treinada.

No Quadro 9 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que seja possível filtrar as publicações da rede social

digital Twitter.

Quadro 9 - Caso de uso "Monitorar publicações"

UC06 Monitorar Publicações

Permite monitorar as publicações criadas na rede social Twitter.

Ator: Twitter.

Pré-condição: Twitter deve estar acessível.

Pós-condição: Publicações do Twitter são enviadas para os usuários.

Cenários.

Fluxo principal:

1. Sistema busca publicações do Twitter;

2. Sistema envia as publicações para os usuários conectados ao sistema.

Fluxo alternativo:

No passo 1 do fluxo principal, caso o Twitter não esteja disponível:

1. Sistema para de enviar mensagens para os usuários;

2. Sistema tenta reconectar-se até que o Twitter esteja disponível;

Page 59: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

57

3. Sistema volta para o fluxo principal no passo 1.

No Quadro 10 apresenta-se a função do caso de uso, as pré-condições, pós-condições e

o fluxo principal e alternativo para que o usuário visualize conteúdos da rede social digital de

acordo com os seus interesses.

Quadro 10 - Caso de uso "Visualizar publicações relevantes"

UC07 Visualizar Publicações Relevantes

Permite o usuário visualizar as publicações relevantes da rede social Twitter.

Ator: Usuário.

Pré-condição: Usuário deve fazer login no sistema e deve ter a rede neural treinada.

Pós-condição: Publicações são visualizadas pelo usuário.

Cenários.

Fluxo principal:

1. Usuário acessa ―Conteúdos‖;

2. Usuário seleciona interesse;

3. Usuário visualiza as publicações.

Page 60: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

58

APÊNDICE B – Cadastro de aplicativo do Twitter

Nos figuras a seguir, têm-se as principais etapas para obter os dados de conexão com o

Twitter. Na Figura 38 apresenta-se a página exibida para os desenvolvedores e os aplicativos

cadastrados.

Figura 38 - Página de desenvolvedor para o Twitter

Criado o aplicativo, é necessário obter os dados que tornam possível ao Twitter

identificar qual aplicativo está requisitando o uso de suas APIs. Na Figura 39 é demonstrada a

página onde os dados estão disponíveis.

Figura 39 - Dados de conexão com o Twitter

Page 61: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

59

APÊNDICE C – Descrição do Dicionário de Dados

Nos quadros a seguir, tem-se a descrição das coleções de documentos do banco de

dados apresentadas na seção de especificação deste trabalho. Nos Quadros de 11 a 15 estão o

dicionário de dados das coleções de documentos do sistema. Utilizam-se os seguintes tipos de

dados para os atributos:

a) objectId: armazena o identificador único do documento;

b) string: armazena caracteres alfanuméricos;

c) date: armazena data;

d) double: armazena números com duas casas decimais.

Quadro 11 - Coleção "Authentications"

Authentications – Armazena as chaves de validação das contas

Atributo Descrição Tipo Tamanho

_id Identificador único objectId 12

Email E-mail do usuário string -

Token Token de validação string 32

Quadro 12 - Coleção "Contents"

Contents – Armazena os conteúdos filtrados pelo sistema

Atributo Descrição Tipo Tamanho

_id Identificador único objectId 12

Parent Documento de origem objectId 12

User Usuário da publicação String -

Text Conteúdo da publicação String 140

Date Data da publicação Date 24

Quadro 13 - Coleção "Interests"

Interests – Armazena os interesses dos usuários

Atributo Descrição Tipo Tamanho

_id Identificador único objectId 12

Parent Documento de origem objectId 12

Title Título do interesse String -

Description Descrição do interesse String -

Keywords Palavras-chave do interesse string -

Active Estado do interesse string 3

Percent Limiar do filtro de conteúdos double (3,2)

Quadro 14 - Coleção "Trainings"

Trainings – Armazena as publicações utilizadas para treinamento

Atributo Descrição Tipo Tamanho

Page 62: SISTEMA DE MONITORAMENTO DE REDES SOCIAIS DIGITAIS ...dsc.inf.furb.br/arquivos/tccs/monografias/2013_2_marco-aurelio... · sociais digitais e sobre as redes neurais artificiais. Ainda

60

_id Identificador único objectId 12

Parent Documento de origem objectId 12

User Usuário da publicação String -

Text Conteúdo da publicação String 140

Date Data da publicação Date 24

Relevance Relevância da publicação string 4

Quadro 15 - Coleção "Users"

Users – Armazena os usuários do sistema

Atributo Descrição Tipo Tamanho

_id Identificador único objectId 12

Name Nome do usuário String -

Email E-mail do usuário String -

Password Senha do usuário string -