knitr::opts_chunk$set(message = FALSE, warning = FALSE, echo = TRUE,
                      dev="png", fig.retina = 2, fig.width = 10, fig.height = 6)

misinfo

Tools to Perform 'Misinformation' Analysis on a Text Corpus

Description

Tools to Perform 'Misinformation' Analysis on a Text Corpus

What's Inside The Tin

The following functions are implemented:

Installation

devtools::install_github("hrbrmstr/misinfo")
options(width=120)

Usage

library(misinfo)
library(hrbrthemes)
library(tidyverse)

# current verison
packageVersion("misinfo")

Try it out on the built-in corpus

mi_analyze_document(
  path = system.file("extdat", package="misinfo"),
  pattern = ".*txt$",
  bias_type = "explanatory",
  sentiment_list = mi_use_builtin("explanatory")
) -> corpus
glimpse(corpus)
corpus$frequency_summary
corpus$individual_frequency
mi_plot_individual_frequency(corpus)
mi_plot_individual_frequency(corpus, FALSE)
mi_plot_document_summary(corpus)
mi_plot_document_summary(corpus, FALSE)

Compare a corpus across a bunch of biases

map_df(c("uncertainty", "sourcing", "retractors", "explanatory"), ~{

  # compute individual bias scores
  mi_analyze_document(
    path = system.file("extdat", package="misinfo"),
    pattern = ".*txt$",
    bias_type = .x,
    sentiment_list = mi_use_builtin(.x)
  ) -> corpus

 mutate(corpus$frequency_summary, bias = corpus$bias_type)

}) -> biases

mutate(biases, pct = ifelse(pct == 0, NA, pct)) %>% 
  ggplot(aes(sprintf("Doc #%s", doc_num), bias, fill=pct)) +
  geom_tile(color="#2b2b2b", size=0.125) +
  scale_x_discrete(expand=c(0,0)) +
  scale_y_discrete(expand=c(0,0)) +
  viridis::scale_fill_viridis(direction=-1, na.value="white") +
  labs(x=NULL, y=NULL, title="Word List Usage Heatmap (normalized)") +
  theme_ipsum_rc(grid="")

distinct(biases, doc_num, doc_id, total_words) %>% 
  knitr::kable(format="markdown")


hrbrmstr/misinfo documentation built on May 7, 2019, 9:36 a.m.