Coder Social home page Coder Social logo

vmussa / sdbase Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 0.0 18 KB

Scripts Básicos para Sociologia Digital

Python 100.00%
digital-sociology computational-social-science computational-sociology digital-humanities web-scraper qualitative-data-analysis qualitative-research qualitative-analysis

sdbase's Introduction

Scripts Básicos para Sociologia Digital (sdbase)

Esse repositório guarda uma série de scripts básicos para o auxílio à pesquisa em Sociologia Digital. O objetivo dessa iniciativa é facilitar o acesso às técnicas computacionais a pesquisadores não familiarizados com essas técnicas, a iniciantes, assim como a usuários avançados que queiram construir técnicas mais complexas em cima das mais básicas aqui disponíveis. O foco do sdbase é o auxílio computacional à pesquisa qualitativa, mineração de texto para as humanidades e áreas relacionadas.

Raspador do Reddit para a Análise Qualitativa e Codificação: rdqda

O rdqda é um módulo e script pythônico para a formatação e exportação de dados da rede social Reddit próprio para a análise qualitativa e a codificação. O formato de saída dos dados privilegia, portanto, a fidelidade à forma como os dados são exibidos na rede social, aproximando a prática da codificação à experiência da plataforma no browser. Recomendamos ao usuário que clone o repositório para usá-lo, tal como explicado abaixo, na seção de instalação. Para usuários mais avançados, basta adicionar o módulo ao PYTHONPATH e importá-lo em seu código.

Estruturação de dados textuais de conversas do WhatsApp

Por enquanto, o módulo e script do WhatsApp oferece apenas a conversão para csv de dados de conversas em txt exportados diretamente pelo aplicativo. Veja abaixo instruções para o modo de uso.

Requisitos para a instalação

  • Python 3.8
  • pandas (biblioteca para manipulação de dados via DataFrames)
  • PRAW (biblioteca que facilita o acesso à API do Reddit)

O arquivo requirements.txt contém todas essas informações, o que permite uma instalação fácil, como indicado na seção abaixo.

Instalação e modo de uso

Basta clonar o repositório, criar um ambiente virtual, instalar as bibliotecas indicadas acima com o pip e rodar os scripts com o Python, como no exemplo abaixo:

cd diretorio-de-instalacao 
git clone https://github.com/vmussa/sdbase.git
cd sdbase
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Para o usar módulo do Reddit:

python reddit\submissions_para_txt.py

Para o usar módulo do WhatsApp:

python whatsapp\conversas_para_csv.py

Agradecimentos

Esse repositório está sendo desenvolvido no contexto de uma pesquisa de mestrado financiada pela Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) realizada no Programa de Pós-Graduação em Sociologia e Antropologia (PPGSA) da Universidade Federal do Rio de Janeiro (UFRJ). O desenvolvimento desse pacote deve muito ao apoio dessas instituições.

sdbase's People

Contributors

vmussa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sdbase's Issues

Consertar output do módulo reddit

Problema
O output do módulo reddit gera um .txt com uma formatação irregular e de leitura muito difícil. A indentação do texto parece não obedecer um padrão fixo e não é prático entender a filiação de cada comentário, isto é, quem está respondendo quem.

Indentação
Eu tentei usar a função dedent da biblioteca textwrap com as long strings do Python, mas não consegui gerar o efeito esperado. O cabeçalho por diversas vezes aparece com uma indentação extra.

  • Solução: consertar a formatação das long strings de forma coordenada com a função dedent.

Filiação dos comentários
O ideal é que pudéssemos gerar uma indentação aninhada dos comentários, de forma que soubéssemos cada nível de resposta. Atualmente só conseguimos distinguir, pela indentação, o nível zero dos comentários de todo o resto.

  • Solução: usar a recursividade para, de alguma forma, armazenar e transmitir a informação de indentação do comentário pai, adicionando mais um nível de indentação para o comentário filho.

Ferramenta de exportação de Submissions do PRAW/Reddit para CSV

  • Estado atual
    O módulo do Reddit permite apenas a exportação para .txt com o fim da análise qualitativa por meio de codificação.

  • Proposta de aprimoramento
    Permitir a exportação de uma Submission inteira do PRAW/Reddit para CSV. Isto é, uma ferramenta que exporte um dataset estruturado em CSV que contenha todos os comentários de cada Submission capturada pela query de interesse do usuário. Isso facilitaria muito o uso de técnicas de processamento de linguagem natural no corpora extraídos.

  • Exemplo de execução
    A API poderia seguir o modelo seguinte:

def submission_to_csv(reddit, sub, query):
    [...]
    return csv_formatted_data

Pythonizar scripts e transformá-los em módulos

Problema
Atualmente os códigos disponíveis não permitem sua reutilização de forma sistemática. Seria interessante estruturá-los como módulos com funções ou classes que pudessem ser importadas por outros scripts sem perder sua funcionalidade na forma de script.

Solução
Toda a construção das funcionalidades de cada código pode ser incorporada a funções ou a métodos de uma classe. Em seguida, para o modo script de utilização, pode-se utilizar a forma pythônica seguinte:

if __name__ == '__main__':
    func1(param1, param2)
    func2(param1)
    (...)

Dessa forma, o código ficará mais útil e mais legível.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.