O documento descreve os principais componentes e etapas para agrupar mensagens do Twitter, incluindo a coleta de dados, pré-processamento, representação dos documentos em vetores, e algoritmos de agrupamento como K-means.
Atena: um sistema para suporte ao planejamento na área de Gestão de Projeto
Agrupamento de mensagens do Twitter com K-means
1. Agrupamento de mensagens do
Twitter
Fabr´ J. Barth
ıcio
Faculdade BandTec e VAGAS Tecnologia
Junho de 2013
2. Sum´rio
a
• Componentes para uma solu¸˜o
ca
• Coletor
• Pr´-processamento dos documentos
e
• Agrupamento dos documentos
• An´lises
a
Agrupamento de mensagens do Twitter —
Sum´rio
a
2
3. Componentes para uma solu¸˜o...
ca
Fonte
Coletor
Pré-processamento
dos documentos
Agrupa
documentos
Agrupamento de mensagens do Twitter —
Componentes para uma solu¸˜o...
ca
Agrupamentos de
documentos
3
4. Coletando dados do twitter com o R
¤
§
l i b r a r y ( twitteR )
c r e d < O A u t h F a c t o r y $new (
−
consumerKey=”XXXX” ,
c o n s u m e r S e c r e t=”XXXX” ,
r e q u e s t U R L=” h t t p s : // a p i . t w i t t e r . com/ o a u t h / r e q u e s t t o k e n ” ,
a c c e ssU R L=” h t t p s : // a p i . t w i t t e r . com/ o a u t h / a c c e s s t o k e n ” ,
authURL=” h t t p : // a p i . t w i t t e r . com/ o a u t h / a u t h o r i z e ” )
cred $ handshake ( )
registerTwitterOAuth ( cred )
a b o u t p r o t e s t o < s e a r c h T w i t t e r ( ’#p r o t e s t o s p ’ , n =250)
−
a b o u t p r o t e s t o 2 < s e a r c h T w i t t e r ( ’ s p ’ , n=90)
−
p r e f e i t u r a T w e e t s < u s e r T i m e l i n e ( ’ P r e f e i t u r a SP ’ )
−
t e x t < c ( about p r o t e s t o , about p r o t e s t o 2 , p r e f e i t u r a T w e e t s )
−
d f < twListToDF ( t e x t )
−
s a v e ( df , f i l e =” . . / d a t a / p r o t e s t o . r d a ” )
¦
Agrupamento de mensagens do Twitter —
Coletando dados do twitter com o R
¥
4
6. Formato de um documento
... Esta disciplina tem como objetivo apresentar os principais
conceitos da ´rea de Inteligˆncia Artificial, caracterizar as
a
e
principais t´cnicas e m´todos, e implementar alguns problemas
e
e
cl´ssicos desta ´rea sob um ponto de vista introdut´rio.
a
a
o
A estrat´gia de trabalho, o conte´do ministrado e a forma
e
u
depender˜o dos projetos selecionados pelos alunos.
a
Inicialmente, os alunos dever˜o trazer os seus Projetos de
a
Conclus˜o de Curso, identificar intersec¸oes entre o projeto e a
a
c˜
disciplina, e propor atividades para a disciplina. ...
Pr´-processamento dos dados —
e
Formato de um documento
6
7. Conjunto de Exemplos - Atributo/Valor
Doc.
apresent
form
tecnic
caracteriz
···
d1
0.33
0.33
0.33
0.33
···
d2
0
0.5
0.2
0.33
···
d3
1
0.6
0
0
···
d4
0.4
0.3
0.33
0.4
···
d5
1
0.4
0.1
0.1
···
dn
···
···
···
···
···
Pr´-processamento dos dados —
e
Conjunto de Exemplos - Atributo/Valor
7
8. Atributo/Valor usando vetores
Como representar os documentos?
→
−
di = (pi1 , pi2 , · · · , pin)
(1)
• Os atributos s˜o as palavras que aparecem nos
a
documentos.
• Se todas as palavras que aparecem nos documentos
forem utilizadas, o vetor n˜o ficar´ muito grande?
a
a
Pr´-processamento dos dados —
e
Atributo/Valor usando vetores
8
9. Diminuindo a dimensionalidade do vetor
• Como filtrar as palavras que devem ser usadas como
atributos?
• Em todos os idiomas existem ´tomos (palavras) que
a
n˜o significam muito. Stop-words
a
Esta disciplina tem como objetivo apresentar os principais
conceitos da ´rea de Inteligˆncia Artificial, caracterizar as
a
e
principais t´cnicas e m´todos, e implementar alguns problemas
e
e
cl´ssicos desta ´rea sob um ponto de vista introdut´rio.
a
a
o
···
Pr´-processamento dos dados —
e
Diminuindo a dimensionalidade do vetor
9
10. Diminuindo ainda mais a
dimensionalidade do vetor
• Algumas palavras podem aparecer no texto de diversas
maneiras: t´cnica, t´cnicas, implementar,
e
e
implementa¸˜o...
ca
• Stemming - encontrar o radical da palavra e usar
apenas o radical.
Pr´-processamento dos dados —
e
Diminuindo ainda mais a dimensionalidade do vetor
10
11. Atributo/Valor usando vetores
• J´ conhecemos os atributos.
a
• E os valores?
Booleana - se a palavra aparece ou n˜o no
a
documento (1 ou 0)
Por freq¨ˆncia do termo - a freq¨ˆncia com que
ue
ue
a palavra aparece no documento (normalizada ou
n˜o)
a
Pondera¸˜o tf-idf - o peso ´ proporcional ao
ca
e
n´mero de ocorrˆncias do termo no documento e
u
e
inversamente proporcional ao n´mero de
u
documentos onde o termo aparece.
Pr´-processamento dos dados —
e
Atributo/Valor usando vetores
11
12. Por freq¨ˆncia do termo
ue
(apresent,0.33) (form,0.33) (tecnic,0.33) (caracteriz,0.33)
(projet,1.0) (introdutori,0.33) (objet,0.33) (inteligente,0.33)
(conclusa,0.33) (selecion,0.33) (intersecco,0.33) (classic,0.33)
(identific,0.33) (conceit,0.33) (trabalh,0.33) (disciplin,1.0)
(traz,0.33)
Pr´-processamento dos dados —
e
Por freq¨ˆncia do termo
ue
12
13. Executando esta etapa no R
http://rpubs.com/fbarth/agrupamentosTwitter
Pr´-processamento dos dados —
e
Executando esta etapa no R
13
14. Componentes para uma solu¸˜o...
ca
Fonte
Coletor
Pré-processamento
dos documentos
Agrupa
documentos
Agrupamentos de
documentos
Wiki2Group - http://trac.fbarth.net.br/wikiAnalysis
Pr´-processamento dos dados —
e
Componentes para uma solu¸˜o...
ca
14
16. Defini¸oes de Algoritmos de Agrupamento
c˜
• O objetivo dos algoritmos de agrupamento ´ colocar
e
os objetos similares em um mesmo grupo e objetos
n˜o similares em grupos diferentes.
a
• Normalmente, objetos s˜o descritos e agrupados
a
usando um conjunto de atributos e valores.
• N˜o existe nenhuma informa¸˜o sobre a classe ou
a
ca
categoria dos objetos.
Algoritmos para Agrupamento —
Defini¸˜es de Algoritmos de Agrupamento
co
16
17. Algoritmos para Agrupamento - K-means
• K significa o n´mero de agrupamentos (que deve ser
u
informado ` priori).
a
• Sequˆncia de a¸˜es iterativas.
e
co
• A parada ´ baseada em algum crit´rio de qualidade
e
e
dos agrupamentos (por exemplo, similaridade m´dia).
e
Algoritmos para Agrupamento —
Algoritmos para Agrupamento - K-means
17
18. Algoritmo para Agrupamento - K-means
5
5
4
4
3
3
2
2
1
1
0
0
1
2
3
4
5
6
7
1
8
2
3
4
5
6
7
8
(2) Sorteio dos pontos centrais dos agrupamentos
(1) Objetos que devem ser agrupados
5
5
4
4
3
3
2
2
1
1
0
0
1
2
3
4
5
6
7
(3) Atribuição dos objetos aos agrupamentos
Algoritmos para Agrupamento —
8
1
2
3
4
5
6
7
8
(4) Definição do centro do agrupamento
Algoritmo para Agrupamento - K-means
18
19. Algoritmo K-means
• A medida de distˆncia pode ser a distˆncia Euclidiana:
a
a
n
− −
| → − → |=
x
y
(xi − yi )2
(2)
i=1
• a fun¸˜o para computar o ponto central pode ser:
ca
→= 1
−
→
−
x
µ
M→
− ∈C
x
(3)
onde M ´ igual ao n´mero de pontos no agrupamento
e
u
C.
Algoritmos para Agrupamento —
Algoritmo K-means
19
20. Como determinar o melhor k?
A medida de distribui¸˜o dos pontos normalmente empregada ´ sum of squared errors.
ca
e
Algoritmos para Agrupamento —
Como determinar o melhor k?
20
21. Agrupamento de mensagens do twitter
com o R
http://rpubs.com/fbarth/agrupamentosTwitter
Algoritmos para Agrupamento —
Agrupamento de mensagens do twitter com o R
21
22. Referˆncias
e
• RDataMining.com: Text Mining.
http://www.rdatamining.com/examples/text-mining.
Acessado em 14 de junho de 2013.
• Ingo Feinerer. Introduction to the tm Package: Text
Mining in R. http://cran.rproject.org/web/packages/tm/vignettes/tm.pdf.
Acessado em 14 de junho de 2013.
Algoritmos para Agrupamento —
Referˆncias
e
22
23. • BARTH, F. J. Ferramentas para a detec¸˜o de grupos
ca
em Wikis. In: VII Simp´sio Brasileiro de Sistemas
o
Colaborativos, 2010, Belo Horizonte. Anais do VII
Simp´sio Brasileiro de Sistemas Colaborativos. IEEE
o
Computer Society, 2010. v.II. p.8 - 11.
• BARTH, F. J. ; BELDERRAIN, M. C. R. ;
QUADROS, N. L. P. ; FERREIRA, L. L. ;
TIMOSZCZUK, A. P. . Recupera¸˜o e minera¸˜o de
ca
ca
informa¸˜es para a ´rea criminal. In: VI Encontro
co
a
Nacional de Inteligˆncia Artificial, 2007, Rio de
e
Janeiro. Anais do XXVII Congresso da SBC, 2007.
Algoritmos para Agrupamento —
Referˆncias
e
23