Script: extrair links de posts de uma rede social como forma de analisar a mobilização de referências pelos usuários

Nas últimas semanas, tenho intensificado as ações de pesquisa com scripts em Python para análise de dados. Alguns estudantes se aproximaram do laboratório para iniciar estudos e pesquisas e o projeto de pesquisa da Rede Humaniza SUS está entrando em uma fase mais operacional e temos sido levados a aprofundar os esforços para tratar dados e começar a responder algumas de nossas perguntas.

Uma análise que tenho desejado fazer já a algum tempo diz sobre entender melhor como os usuários de uma rede social linkam outros sites ou mesmo conteúdos internos como forma de referenciar, seja para criticar, seja para se basear, mas mobilizando outros objetos digitais para incluírem em sua narrativa.

O desafio técnico aqui estava em obter os links de cada post, ao mesmo tempo referenciando o post de origem e o usuário que postou.

Deixo aqui algumas anotações sobre como isso foi feito para registro da pesquisa:

  • Links consultados para escrever o script:
    • biblioteca BeautifulSoup: é a lib que permite de fato extrair os elementos html de uma página. No caso, foi utilizado o recurso de extrair os “hrefs” dos links;
    • biblioteca PyMySql: interface com o banco de dados MySql;
    • biblioteca CSV: gera o arquivo de saída que pode ser exportado para um editor de planilhas ou qualquer outra ferramenta para analisar os dados.
  • Script: o resultado final tá aqui, já hospedado no GitHub onde vou arquivar todos os códigos utilizados para o desenvolvimento desta pesquisa.

Os resultados analisados dos arquivos gerados para essa pesquisa serão publicados posteriormente, dado que ainda passarão por várias fases de reflexão até poderem ser publicados acompanhados de comentários e análises da equipe de pesquisa.

Anúncios

Críticas a digitalização: 20 retratos

Nesse livro, o autor Otto Peters seleciona 20 vozes que abordam uma série de questões relacionadas com a digitalização. Cada capítulo abre com uma breve nota biográfica sobre o autor e termina com uma avaliação. A motivação do autor é discutida, as suas publicações mais influentes estão listadas e as os pontos críticos são discutidos.

Link: https://www.uni-oldenburg.de/fileadmin/user_upload/c3l/master/mde/download/asfvolume15_ebook.pdf

OpenGLAM Benchmark Survey

O OpenGLAM Benchmark Survey é uma pesquisa on-line realizada em instituições do patrimônio em todo o mundo durante 2014-2016 pela Open Knowledge Foundation em parceria com outras instituições ao redor do mundo. Nessa página é possível encontrar relatórios e artigos publicados em inglês, francês, alemão e polonês: https://outreach.wikimedia.org/wiki/GLAM/OpenGLAM_Benchmark_Survey

 

“Cultura e Tecnologias no Brasil: um estudo sobre as práticas culturais da população e o uso das tecnologias da informação e comunicação”

O presente estudo do Comitê Gestor da Internet no Brasil – CGI.br , apresenta dados sobre as práticas culturais e os usos das tecnologias da informação e comunicação no Brasil.

Acesse aqui: http://nic.br/media/docs/publicacoes/7/cultura-e-tecnologias-no-brasil.pdf

Challenges & Opportunities Concerning Corporate Formation, Nonprofit Status, & Governance for Open Source Projects

A publicação “Challenges & Opportunities Concerning Corporate Formation, Nonprofit Status, & Governance for Open Source Projects”, de março de 2017, aborda importantes questões chaves que aqueles que administram iniciativas de desenvolvimento de softwares open source devem levar em consideração quanto a estrutura, organização e governança do projeto.
Autores: Dalia Topelson Ritvo, Kira Hessekiel e Christopher T. Bavitz
Essa publicação pode ser baixada em: The Berkman Klein Center for Internet & Society Research Publication Series: https://dash.harvard.edu/handle/1/30805146

Modelagem de Tópicos: Uma introdução básica

Olá a todos que acompanham o blog, este post esta sendo produzido no intuito de dar inicio aos estudos sobre modelagem de tópicos, que também é o meu tema de mestrado, atualmente não existe muito conteúdo sobre este tema em português e muito do conteúdo encontrado tem certa complexidade, o que teremos aqui é a tradução de uma publicação feita pela autora Megan R. Brett no Journal of Digital Humanities, onde ela dá uma introdução simplificada ao tema e um tanto quanto básica mas muito instrutiva, achei de grande valia a tradução do conteúdo para a disseminação de conteúdo, no entanto por se tratar de uma tradução que não foi feita por um profissional, podem haver erros quanto ao conteúdo, houve um esforço para tentar fazer a melhor tradução possível, e escrever de forma coerente. No texto estão marcados certos números [1], que voltam a aparecer no fim do artigo onde coloco todos os links que são mencionados no artigo original, para mais informações acesse o artigo original.

=============================//===========================

Este post tem como propósito ajudar a explicar os conceitos básicos sobre modelagem de tópicos, introdução a algumas ferramentas de modelagem de tópicos, e pontuar outros posts sobre o tema. A audiência esperada são os historiadores, mas esperasse que seja algo útil para os leitores em geral.

 

O Que é modelagem de tópicos?

Modelagem de Tópicos é uma forma de mineração de texto, uma forma de identificar padrões e um corpus. Construindo um corpus e executando uma ferramenta que gera grupos de palavras a respeito do corpus distribuídas em “tópicos”. Miriam Posner descreve a modelagem de tópicos[1] como “um método para achar e traçar clusters de palavras (chamado “tópicos” de forma abreviada) em grandes corpos de texto. ”

O que é um tópico então? Uma definição oferecida no Twitter[2] durante a conferência de modelagem de tópicos descreveu um tópico como “um padrão recorrente de co-ocorrência de palavras. ” Uma ferramenta de modelagem de tópicos vê através do corpus para estes clusters de palavras e as agrupam por um processo de similaridade (mais sobre isso mais tarde). Em um bom modelo de tópicos, as palavras em tópico fazem sentido, por exemplo “navy, ship, captain” e “tabacco, farm, crops. ”

Como funciona?

Uma forma de se imaginar como o processo de modelagem de tópicos funciona é imaginar que se esta trabalhando em um artigo com diferentes marcadores. A medida que você lê o artigo, você usa uma cor diferente para as diferentes palavras chave dos temas à medida que você se deparou com eles. Ao terminar, é possível copiar as palavras, agrupando-as por cor. Essa lista de palavras é um tópico, e cada cor representa tópicos diferentes. Nota: está descrição é inspirada pela ilustração a seguir do artigo de David Blei´s[3], que é uma das melhores representações visuais sobre tópicos que achei.

Screen-Shot-2012-11-11-at-9.31.22-PM-300x189

Figure 1: Ilustração de Blei, D. 2012. “Modelagem de tópicos probabilistica.”

Como os programas de modelagem de tópicos atuais são determinados pela matemática. Muitos artigos sobre modelagem de tópicos incluem equações para explicarem de forma matemática o que é feito, mas eu pessoalmente não posso analisa-los. A melhor explicação sem equações de como pelo menos um programa de modelagem de tópicos atribui palavras a tópicos foi dada por David Mimno em uma conferência[4] sobre modelagem de tópicos realizada em novembro de 2012 pela Maryland Institute for Technology in Humanities e National Endowment for Humanities. Como ele explica[5], o computador compara a ocorrência de tópicos em um documento com a forma como uma palavra foi atribuída em outros documentos para encontrar a melhor combinação.

O modelo explicado por Mimno é o Latent Dirichlet Allocation, ou LDA, que tem sido o modelo mais utilizado em humanidades. O LDA tem pontos fortes e fracos, e pode não ser o certo para todos os projetos. Ele forma a base do MALLET, que é uma fonte aberta e uma ferramenta bastante acessível para modelagem de tópicos.

Para explicações mais detalhadas de como a modelagem de tópicos funciona, e como pode ser aplicada, dê uma olhada nos vídeos dos outros palestradas[6] da MITH/NEH conference[7]. Ted Underwood ofereceu sua explicação de como o processo funciona em uma postagem titulada Modelagem de tópicos Simplificada[8].

Scott B. Weingart escreveu uma excelente visão geral a respeito do conhecimento atual sobre modelagem de tópicos[9] com links para tudo, desde um tipo de conto que explica sobre modelagem de tópicos[10] até artigos que mergulham em uma vertente mais técnica[11]. Muitos dos artigos mais complexos e posts incluem equações complexas, mas é possível entender a base da modelagem de tópicos sem compreender totalmente as equações.

O que você precisa para modelagem de tópicos?

  1. Um corpus, preferencialmente um amplo.

Se você quisesse um modelo de tópico em um documento muito pequeno, talvez seja melhor usar marcadores ou uma boa ferramenta de anotações em pdf. Modelagem de tópicos é construída para grandes coleções de texto. As pessoas por trás do “Paper Machines”[12] uma ferramenta que permite criar um modelo de tópico a partir de uma biblioteca Zotero, recomenta que você tenha pelo menos 1,000 itens na biblioteca ou coleção que deseja modelar. A questão de “quão grande” ou “quão pequeno” é subjetiva, mas acho que você quer ter, no mínimo, em centenas se não um mínimo de 1.000 documentos em seu corpus. Tenha em mente que você define o que é um documento para a ferramenta. Se você tem um trabalho particularmente longo, você pode dividi-lo em pedaços e chamar cada peça de um documento.

Em algumas ferramentas, você terá que preparar o corpus antes que possa criar os modelos de tópico. Essencialmente o que deve ser feito é a tokenização do texto, mudando de frases legíveis para humanos para uma série de palavras, eliminando a pontuação e removendo a capitalização. Você também pode ignorar as “stopwords” que você define, que normalmente incluem coisas como a, o, e, etc. Onde você (espero) acaba gerando um documento sem capitalização, pontuação ou números para eliminar com os Algoritmos.

Existem inúmeras formas de limpar o texto para a etapa de modelagem de tópicos (e mineração de texto). Por exemplo, você pode usar Python e Expressões Regulares[13], a linha de comando (Terminal), e R.

Se deseja dar uma chance e tentar utilizar a modelagem de tópicos, mas não tem um corpus, existem extensas fontes de dados. Você pode, por exemplo, fazer o download do trabalho completo de Charles Dickens em uma série de arquivos de texto do Projeto Gutenberg[14], ou a JSTOR Data for Research[15], que requer cadastro, mas possibilita o download de conteúdo em csv, que é acessível para o uso no MALLET ou em outras ferramentas de mineração de texto e modelagem de tópicos.

  1. Familiaridade com o corpus

Isso pode parecer contra-intuitivo se você estiver planejando usar modelagem de tópicos para ajudá-lo a descobrir mais sobre um grande corpus, e, no entanto, é muito importante que você tenha, pelo menos, uma ideia do que deveria estar lá. Modelagem de tópicos não é uma ciência exata como muitos pensam. A única maneira de saber se seus resultados são úteis ou descontroladamente fora da marca é ter uma ideia geral do que você deveria estar vendo. A maioria das pessoas provavelmente colocariam itens muito abrangentes em tópicos comuns como “tabacco, farm, crops, navy” mas os tópicos mais complexos podem ser menos óbvios.

  1. Uma ferramenta para fazer a modelagem de tópicos

No entanto, você está indo ao modelo de tópico, você precisa decidir o que você vai usar e ter uma maneira de usá-lo.

Muitos humanistas usam o MALLET[16] e como extensão o LDA. O MALLET é particularmente útil para aqueles que se sentem confortáveis em trabalhar com o terminal em linha de comandos, e cuida da parte de tokenizing e stopwords para você. O site The Programming Historian[17] tem um tutorial o qual fala sobre o básico ao se trabalhar com o MALLET.

O grupo de processamento de linguagem natural de Stanford criou uma interface visual para se trabalhar com o MALLET, o Stanford Topic Modeling Toolbox[18]. Se escolher trabalhar com o TMT, leia o post do blog de Miriam Posner´s que contém estratégias básicas para interpretar os resultados da ferramenta de modelagem de tópicos[19].

Caso tenha um site em WordPress e um bom conhecimento em Python, veja o post de Peter Organisciak´s sobre o processo de exportações do WordPress para MALLET[20].

É importante estar ciente de que você precisa treinar essas ferramentas. Ferramentas de modelagem de tópicos só retornam à quantidade de tópicos que você pede para que retornem; isso importa quando você especifica 50, 5, ou 500. Se você imaginar a modelagem de tópicos como um quadro de distribuição, há um grande número de botões e mostradores que podem ser ajustados. Estes devem ser ajustados, principalmente através de tentativa e erro, antes que os resultados sejam úteis.

Se você usa o Zotero[21], você pode fazer uso da Paper Machines para modelos de tópicos de coleções particularmente extensas. O Paper Machines é um projeto open-source, o resultado de uma colaboração entre Jo Guldi e Chris Johnson-Roverson, apoiado pelo Google Summer of Code, o fundo William F. Milton, e o metaLAB @ Harvard[22]. Você pode fazer visualizações elegantes com o Paper Machines, mas para a modelagem de tópicos vocês precisa de pelo menos 1000 documentos. Por sorte, você pode completar sua biblioteca Zotero com dados da JSTOR Data for Research.

  1. Uma maneira de entender seus resultados

O resultado da modelagem de tópicos não é inteiramente legível. Uma forma de entender o que o programa está dizendo é através de visualizações, mas tenha certeza de que você entende o que a visualização está te dizendo. Ferramentas para modelagem de tópicos são falhas, e se o algoritmo não estiver correto, elas podem retornar alguns resultados bizarros.

Paper Machines output. Pretty, but what does it mean?

Figure 2: Resultado do Paper Machines . Bonito, mas o que significa?

Bem Schmidt, tem usado a clusterização k-means para classificar as viagens de caça às baleias, conectou seus dados ao modelo LDA para demonstrar as maneiras pelas quais a modelagem pode retornar resultados que, em última análise, não fazem sentido[23]. Seu post explica os perigos dos modelos quiméricos, onde dois cachos ficam presos juntos (pense “gato, peixe, mouse” e “arma, haste, caça”).

Modelagem de Tópicos e a História

A Modelagem de tópicos não é necessariamente útil como evidencia, mas se torna uma excelente ferramenta para descoberta.

Cameron Blevins tem uma série de posts[24] sobre o seu trabalho com mineração de texto e modelagem de tópicos com o conteúdo do diário de Martha Ballard. Ele compara seus resultados com os do trabalho de Laurel Thatcher Ulrich, que fez o trabalha a mão, e os dois resultados se mostram geralmente alinhados entre si. Seu trabalho é particularmente útil para entender o potencial e as limitações da modelagem de tópicos, como muitos historiadores já estão familiarizados com a fonte do material, tendo lido o livro de Ulrich A Midwife´s Tale. Ambos Blevins e Ulrich tiveram que estar familiarizados com o conteúdo do diário e seu contexto histórico para dar sentido as suas descobertas. Os resultados da modelagem de tópicos ajudam a revelar evidências já existentes no texto.

Os jornais provaram ser um assunto popular para modelagem de tópicos. Uma vez que fornece uma maneira de obter mudanças ao longo do tempo a partir de uma fonte diária. David J. Newman, um cientista da computação, e Sharon Block, um historiador, trabalharam juntos para criar um modelo de tópico para a Pennsylvania Gazette. A tabela 4 do seu artigo[25], lista as palavras mais prováveis ​​em um tópico e o rótulo que eles atribuíram a esse tópico; alguns dos tópicos são óbvios, mas outros se tornam claros quando você entende o contexto do corpus para ler os resultados. Outro exemplo de modelagem de tópicos de um jornal histórico é o projeto da Universidade de Richmond (VA), Mining the Dispatch[26]. O objetivo do projeto é explorar a vida social e política em Richmond durante a guerra civil. Explorar este site pode ajudá-lo a entender como modificar configurações em uma ferramenta de modelagem de tópicos altera a saída.

A modelagem de tópicos é complicada e potencialmente bagunçada, mas útil e até divertida. A melhor maneira de entender como funciona é experimentando. Não tenha medo de falhar ou obter resultados ruins, porque eles irão ajudá-lo a encontrar as configurações que lhe dão bons resultados. Conecte alguns dados e veja o que acontece.

 

Fonte/Source: http://journalofdigitalhumanities.org/2-1/topic-modeling-a-basic-introduction-by-megan-r-brett/#topic-modeling-a-basic-introduction-by-megan-r-brett-n-1

Escrito por/Writen by: Megan R. Brett

[1] http://miriamposner.com/blog/?p=1335

[2] https://twitter.com/footnotesrising/status/264823621799780353

[3] http://www.cs.princeton.edu/~blei/papers/Blei2012.pdf

[4] http://mith.umd.edu/topicmodeling/

[5] http://vimeo.com/53080123

[6] http://mith.umd.edu/topicmodeling/speaker-videos/

[7] http://mith.umd.edu/topicmodeling/

[8] http://tedunderwood.com/2012/04/07/topic-modeling-made-just-simple-enough/

[9] http://www.scottbot.net/HIAL/?p=19113

[10] http://www.matthewjockers.net/2011/09/29/the-lda-buffet-is-now-open-or-latent-dirichlet-allocation-for-english-majors/

[11] http://ariddell.org/weblog/2012/07/22/simple-topic-model/

[12] https://github.com/chrisjr/papermachines

[13] http://www.fredgibbs.net/clio3workspace/blog/cleaning-bad-ocr-with-regular-expressions-and-python/

[14] http://www.gutenberg.org/

[15] http://about.jstor.org/service/data-for-research

[16] http://mallet.cs.umass.edu/

[17] http://programminghistorian.org/

[18] http://nlp.stanford.edu/software/tmt/tmt-0.4/

[19] http://miriamposner.com/blog/?p=1335

[20] https://sense.porganized.com/processing-wordpress-exports-for-mallet-c6e53b5b8c7e

[21] http://www.zotero.org/

[22] http://metalab.harvard.edu/2012/07/paper-machines/

[23] http://sappingattention.blogspot.com/2012/11/when-you-have-mallet-everything-looks.html

[24] http://historying.org/martha-ballards-diary/

[25] http://www.ics.uci.edu/~newman/pubs/JASIST_Newman.pdf

[26] http://dsl.richmond.edu/dispatch/pages/home

Museus Brasileiros: Script para extração de posts a partir de páginas do Facebook

Script elaborado para extração de dados de posts do Facebook, para em seguida serem armazenados em um Banco de Dados.

Esse Script em questão usa os IDs de páginas do Facebook, de museus brasileiros, e a partir desses IDs são extraídos os conteúdos dos posts, os links dos posts, data e horário de publicação, número de reações, número de comentários e tipos de reações ( grr , uau, amei, haha, triste e curtir).

Script elaborado pelos pesquisadores do L3P , e ajustado conjuntamente com a equipe.

O Script trás todos os posts das páginas escolhidas e dessa maneira será efetivo para seguintes análises descritivas com relação aos museus brasileiros no Facebook.

Script necessita da versão 3.4 do Python e MySQL instalado no computador. Uso do módulo mysql.connector.

Segue link,

https://github.com/nataliafrancesca/Script-de-exporta-o-/blob/master/script

Museus Brasileiros