Sejam $latex s_1 \cdots s_n$ os $latex n$ seguidores de uma pessoa no Twitter.
Agora, para cada uma desses seguidores, denote $latex m_i$ o número de pessoas que essa pessoa segue. O índice de reputação é definido como
$latex R = \sum_{i=1}^n \frac{\log_2 m_i}{m_i}$
Uma leitura cuidadosa da explicação do conceito de entropia informacional na Wikipedia justifica este índice.
O problema dos rankings é que não diferenciam entre ser assinado por grandes assinantes e ser assinado como um dos poucos feeds importantes. Quem é que rodava aquele bot-fazedor-de-rankings mesmo?
You must be logged in to post a comment.
“O problema dos rankings é que não diferenciam entre ser assinado por grandes assinantes e ser assinado como um dos poucos feeds importantes.”
Perfeito.
Genial.
Mostrei essa fórmula para o pessoal aqui do trabalho. Pensávamos em como ter um algorítimo que calculasse a relevância de um funcionário a partir de um organograma. Não sei se vamos chegar a testar, mas os matemáticos daqui concordaram que é uma excelente saída.
O bot é meu, achei sensacional a idéia. Mas não entendi uma coisa: meu m1 é quantas pessoas me assinam ou quantas pessoas eu assino?
É assim. Você tem n assinantes. Vamos numerá-los: i=1,2,…,n
m(i) é quantas pessoas esse assinante seu assina, incluindo você.
Esse é o número que entra na fórmula acima.
Eu sei que a API não dá isso direto, mas quando você crawleou a coisa toda você pode cruzar os dados facilmente.
Eu já estava baixando aqui o módulo Python pra acessar a API do Twitter, mas não consigo instalar simplejson aqui no Windows do trabalho. Em casa, no meu Mac, acabarei escrevendo o meu próprio bot. Aliás, como é que você delimita quem faz parte da twitterosfera brasileira?
Rotina em Python para calcular o índice de reputação:
import math
def entropy(x): return (math.log(x)/(math.log(2)*x))
def reputacao(xs): return (sum(map(entropy,xs)))
onde xs é uma lista com o número de seguidores de cada pessoa que te segue.
Agora não tem desculpa de notação matemática
Mas peraí… o m(i) não deveria ser o número de pessoas que *seguem* o i, em vez de quantas pessoas ele segue?
Você continua com rankings na cabeça. Isto não é um PageRank, é uma medida do quanto a pessoa está ligada a redes sólidas. É um conceito diferente.
Eu quero pagerank.
Estar na lista do Cory –> http://twitter.com/doctorow deveria contar muitos pontos. Ele lê pouca gente mas muita gente lê ele, fora o fato de que muita gente fodástica lê ele. (ignorando o fato de que ele não atualiza tem 3 meses…)
Precisamente. Estar na lista do Cory conta muitos pontos.
Vede:
>>> reputacao([150,150,150,150,150])
0.24096062301652937
>>> reputacao([150,150,4])
0.59638424920661171
>>> reputacao([150,150,4,4,8])
1.4713842492066118
O índice de reputação faz exatamente o que eu prometi. A coisa é que o Cory não vale mais por ser muito lido, mas por ler pouca gente. Estrelas não me importam, talvez porque várias pessoas com quem eu estudei viraram astros de TV e chegaram a sair na Playboy
Mas, sério, no índice de reputação o que conta é a atenção que a pessoa te dispensa.
Cris, no caso que estávamos estudando aqui, dado um organograma empresarial bem complexo, que em si já contém uma hiearquia (rank) o número de seguidores Si é o número de funcionários sob o sua gerência e o Mi é quantos gerentes (pessoas hierarquicamente acima) cada pessoa tem.
Desta forma, um cara que esteja abaixo hierarquicamente (um gerente e não um VP, por exemplo), mas que tem autonomia de decisão (aka, poucas ou nenhuma pessoa diretamente acima dele) tem, teoricamente, mais relevância do que um cara hierarquicamente (rank) acima, mas que tem pouca gente para administrar e deve satisfação para muita gente (estando diretamente abaixo de um grande grupo de pessoas).
Repare que relevância, nesse caso, é relevância corporativa: poder e autonomia de decisão.
Entendi alguma coisa errado?
Entendi… eu preferia uma coisa mais parecida com whuffie/pagerank, onde quem lê o cara conta pontos. Se alguém é lido por 3000 pessoas e lê você, você ganha muito ponto.
Mas no fim-de-semana dou uma brincada com esse algoritmo.
Pois é. Let a thousand bots flourish.
A minha questão é the attention economy — uma medida de quanta atenção uma pessoa recebe.
O que eu quero na vida é ter alguns bons amigos que tenham uma parcela de atenção pra mim, não ser acompanhado por uma legião de fãs. O peso de estrelismo das pessoas não me interessa. Aliás, é por isso que não participo de Blogdays e similares. Além de que entropia informacional tem propriedades matemáticas importantes que se transferem diretamente para o índice de reputação.
Qual é a chance de eu ter acesso ao código do seu robô?
(Se o que te interessa é um ranking melhorado, dê uma olhada no algoritmo do PageRank. Não tem uma fórmula fechada e você precisa aprender o que são autovetores e autovalores (em inglês, eigenvalues e eigenvectors ;)) mas é muito eficiente, como mostra a experiência do Google.)
Hmmm… vai ser complicado… O Twitter não informa que lê Fulano, então eu teria que crawlizar TODOS os usuários do Twitter pra ter a informação correta. E isso é um trabalho meio hercúleo.
Mas pegando só os lusófonos já dá pra quebrar um galho.
Pode não ser reputação no Twitter todo, mas é reputação numa rede. As pessoas podem se inscrever num site para serem crawleadas.