quarta-feira, 29 de outubro de 2014

Novas informações de um tweet

Com finalidade de ajudar na distinção de tweets de midia e tweets de usuários comuns, agora é possivel coletar as seguintes informações:
-quantidade de seguidores do usuário que tweetou
-se é ou não verificado pelo twitter ( pessoas famosas e jornais reconhecidos possuem esse atributo)
-quantidade de pessoas que favoritaram o tweet

terça-feira, 28 de outubro de 2014

Machine Learning

Passado o desafio de coletar dados e já estando com o banco repleto de dados, passamos para a próxima etapa do projeto, hora de trabalhar com esses dados, para retirarmos deles as informações que necessitamos.

O que é MACHINE LEARNING?

" A aprendizagem automática ou aprendizado de máquina é um sub-campo da inteligência artificial dedicado ao desenvolvimento de algoritmos e técnicas que permitam ao computador aprender, isto é, que permitam ao computador aperfeiçoar seu desempenho em alguma tarefa. Enquanto que na inteligência artificial existem dois tipos de raciocínio - o indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo - o aprendizado de máquina só se preocupa com o indutivo.
Algumas partes da aprendizagem automática estão intimamente ligadas à mineração de dados e estatística. Sua pesquisa foca nas propriedades dos métodos estatísticos, assim como sua complexidade computacional. Sua aplicação prática inclui o processamento de linguagem natural, motores de busca, diagnósticos médicos, bioinformática, reconhecimento de fala, reconhecimento de escrita, visão computacional e locomoção de robôs. "

A partir disso, precisamos criar uma forma de identificar os tweets, por exemplo, os que são de mídia horizontal ou vertical, os que são contra ou a favor de um determinado candidato, etc.
Relacionado a isso estão os seguintes conceitos:
- mineração de dados (data mining) 
- análise de sentimentos/ mineração de opinião:  http://www.inf.ufsc.br/~alvares/INE5644/MineracaoOpiniao.pdf

Um grande desafio já previsto é a ironia presente quando um usuário, geralmente sem ser mídia, fala sobre política. Porém, não está certo que isso irá provocar impacto no resultado, pois a quantidade de ironia em relação a tweets sem ela, é mínima.

O site sentiment140.com obtem informações recentes sobre determinada marca ou produto e forma um gráfico analisando a opinião dos usuários. Quando entramos e pesquisamos sobre determinado assunto, podemos ver que os resultados nao sao precisos se analisarmos. Principalmente os classificados como negativos pelo que olhei.

Coleta do conteúdo: saber dividir fatos de opniões.

A classificação do conteúdo se dá em 3 etapas:
-aprendizagem de máquina
-seleção de palavras
-análise sintática

http://tecnologia.terra.com.br/internet/analise-de-sentimentos-e-novo-campo-na-web,48e8887dc5aea310VgnCLD200000bbcceb0aRCRD.html
opiniões dos úsuarios.

 

segunda-feira, 20 de outubro de 2014

Tamanho BD

A tabela possui os seguintes atributos:

- id : bigserial
-username: string 50 caracteres
-data: string 20 caracteres
-texto: string 160 caracteres
retweets: inteiro 

logo, 1 tupla ocupa o espaco de 8+50+20+160+4 bytes = 242 bytes

quinta-feira, 16 de outubro de 2014

Banco de dados

Consegui transferir os tweets para o banco de dados, usando postgresql.
Se coletar a cada dia é possível cobrir todos os tweets da #eleicoes2014.
Coloquei como chave primária o usuário e o texto do tweet, assim não pode haver repetição de um mesmo tweet de um mesmo usuário, pois não será uma informação relevante para o Arthur.

Até o momento estamos com 23043 tweets coletados. Já é possivel começar a realizar querys

quinta-feira, 9 de outubro de 2014

Página para acesso do Arthur

O próximo passo é transferir os arquivos.txt para o banco de dados, para isso preciso consultar a ferramenta que irei usar. Enquanto isso, estudarei php para começar a criar a página onde o Arthur poderá consultar os dados.


quarta-feira, 1 de outubro de 2014

Coletando tweets

Consegui coletar um número sufuciente para pegar todos tweets de um dia com #eleicoes2014 sem rate limit exceed

mudança no código:

try:
print('%d' %(i))
#Write a row to the csv file/ I use encode utf-8
csvWriter.writerow( [tweet.user.screen_name] + [tweet.created_at] + [tweet.text.encode('utf-8')] )
i=i+1

except tweepy.TweepError:
print 'DORMINDO'
time.sleep(60*15)
continue


Coletei em torno de 8mil tweets.

Filtros na pesquisa de tweets

1) result_type :
Optional. Specifies what type of search results you would prefer to receive. The current default is “mixed.” Valid values include:
  * mixed: Include both popular and real time results in the response.
  * recent: return only the most recent results in the response
  * popular: return only the most popular results in the response.

Portanto, devemos ver com o Arthur se para uma pesquisa de opniões o que vale é recent ( que geralmente vai pegar usuários quaisquer, sem "fama" e rts) ou popular ( que engloba principalmente famosos, políticos e fontes como jornais)

2) until / since : permite limitarmos a pesquisa por datas.

3) Usuário: Além do nome do twitter, é possivel pegar algumas informacoes do usuario, como seu nome, a data que o twitter foi criado e sua localização se estiver ativa.