-
Notifications
You must be signed in to change notification settings - Fork 1
/
twitterCall.R
46 lines (37 loc) · 1.58 KB
/
twitterCall.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Copyright 2014, 2015, 2016 B23 LABS INC.
#
# NOTICE: All information contained herein is, and remains
# the property of B23 LABS INC. The intellectual and technical concepts contained
# herein are proprietary to B23 LABS INC
# and may be covered by U.S. and Foreign Patents,
# patents in process, and are protected by trade secret or copyright law.
# Dissemination of this information or reproduction of this material
# is strictly forbidden unless prior written permission is obtained
# from B23 LABS INC.
## First: Create out.txt in the working directory
## Second: Schedule twitterSearch.R to run with cron using cronApp
## Third: Open twitterCron shiny app to view word cloud results
library(twitteR)
library(tm)
library(SnowballC)
library(stringr)
api_key <- "twitter.dev"
api_secret <- "twitter.dev"
token <- "twitter.dev"
token_secret <- "twitter.dev"
setup_twitter_oauth(api_key, api_secret, token, token_secret)
2
datetoday <- toString(Sys.Date())
tweets <- searchTwitter("election", n=50, lang="en", since=datetoday)
text <- sapply(tweets, function(x) x$getText())
usableText = str_replace_all(text,"[^[:graph:]]", " ")
corp = Corpus(VectorSource(usableText))
corp <- tm_map(corp, content_transformer(tolower), mc.cores=1)
corp <- tm_map(corp, removePunctuation, mc.cores=1)
corp <- tm_map(corp, removeWords, c("RT", "election", stopwords("english")), mc.cores=1)
tdm <- TermDocumentMatrix(corp)
m = as.matrix(tdm)
word_freqs = sort(rowSums(m), decreasing = TRUE)
write.csv(word_freqs, file="/home/admin/out.txt")
print("write")
system("cp /home/admin/out.txt /srv/shiny-server/twitterCron")