This article explores how ISIS followers spread information via Twitter Network, their primary social outlet

## Observations: 17,410
## Variables: 8
## $ name           (chr) "GunsandCoffee", "GunsandCoffee", "GunsandCoffe...
## $ username       (chr) "GunsandCoffee70", "GunsandCoffee70", "GunsandC...
## $ description    (chr) "ENGLISH TRANSLATIONS: http://t.co/QLdJ0ftews",...
## $ location       (chr) "", "", "", "", "", "", "", "", "", "", "", "",...
## $ followers      (int) 640, 640, 640, 640, 640, 640, 640, 640, 640, 64...
## $ numberstatuses (int) 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,...
## $ time           (chr) "1/6/2015 21:07", "1/6/2015 21:27", "1/6/2015 2...
## $ tweets         (chr) "ENGLISH TRANSLATION: 'A MESSAGE TO THE TRUTHFU...

Followers

To understand the fanbase, let’s look at their number of tweets vs number of followers

Rami stands out with large number of follower and tweet activity.
War Breaking News, Conflict Reporter and Salahuddin Ayubi has the most tweets activity

Timeline of tweets

activity types

data%>%group_by(is_retweet)%>%
summarize(n_tweet=n())%>%
head()
## Source: local data frame [2 x 2]
## 
##       is_retweet n_tweet
##            (chr)   (int)
## 1 Originaltweets   11584
## 2       Retweets    5826

It appears retweet vol is about half of original tweets.

tweet/retweet activity by most active users

data%>%
filter(name%in%c("Rami","War BreakingNews","Conflict Reporter","Salahuddin Ayubi"))%>%
select(date,tweets,is_retweet)%>%
arrange(date)%>%
group_by(date,is_retweet)%>%
summarize(n_tweet=n())%>%
ggplot(aes(date,n_tweet,fill=is_retweet))+
geom_bar(stat='identity',position='stack',color='white') +
theme_classic()

Activity peaked at:
* Mar 17 (when news of ISIS killing Syrian poet broke out) * Apr 05 (ISIS launched chemical weapon to attack Syrian army base)
It appears all of these only started to be active since 2016 Feb

hastags

Let’s next look into hashtag applied everyday

hash=data%>%
  mutate(hash=str_extract(tweets, "#\\w+"))%>%
  select(hash)%>%
  filter(!is.na(hash))%>%
  unnest(hash)%>%
  group_by(hash)%>%
  summarize(n_hash=n())%>%
  arrange(desc(n_hash))

Could hashtag shed some light on what happened on the days of peak twitter activity?

calloutdays=c('2016-03-11','2016-03-27','2016-04-05')
hashspecial=data%>%
  filter(date%in%calloutdays)%>%
  mutate(hash=str_extract(tweets, "#\\w+"))%>%
  select(date,hash)

mentions

Let’s also top handles mentioned

mention=data%>%
  mutate(mention=str_extract(tweets, "@\\w+"))%>%
  select(mention)%>%
  filter(!is.na(mention))%>%
  unnest(mention)%>%
  group_by(mention)%>%
  summarize(n_mention=n())%>%
  arrange(desc(n_mention))
mention%>%
  head(10)
## Source: local data frame [10 x 2]
## 
##             mention n_mention
##               (chr)     (int)
## 1      @RamiAlLolah       533
## 2      @Nidalgazaui       326
## 3     @WarReporter1       236
## 4         @7layers_       108
## 5  @sparksofirhabi3        75
## 6       @MaghrebiQM        70
## 7     @DidyouknowVS        69
## 8        @Conflicts        63
## 9    @Uncle_SamCoco        61
## 10   @Pachaconsumer        47

Mention Network

Due to sparse twitter activity in 2015, we zoom in to 2016

user=data%>%select(username)%>%unique()
links=data %>%
select(from=username, tweets)%>%
  mutate(to = str_extract_all(tweets, '(?<=@)\\w+')) %>%
  filter(to!='character(0)') %>%
  select(-tweets)%>%
  unnest(to)%>%
  mutate(flag=to%in%user$username)%>%
  filter(flag==TRUE)%>%
  filter(from!=to)%>%
  select(-flag)%>%
  group_by(from,to) %>% tally()

nodes=data.frame(id=unique( union(unique(links$from), unique(links$to))))
nodes=data%>%mutate(id=username)%>%
  group_by(id)%>%tally()
nodes$size <- sqrt(nodes$n)
nodes$title <-nodes$id
links$arrows <-'to'
links$width<- (links$n)^(1/3)
visNetwork(nodes, links, main='Twitter Network')%>%
  visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE)