2016-06-03 15 views
2

Ich bin mit R 3.1.3 Plattform: x86_64-Apfel-darwin13.4.0 (64-Bit) und tm_0.6-2 Version von PaketDaten von Twitter mit R erhalten?

Hier folgt meine Codes:

install.packages(c("twitterR","ROAuth","RCurl","tm","wordcloud","SnowballC")) 
library(SnowballC) 
library(twitteR) 
library(ROAuth) 
library(RCurl) 
library(tm) 
library(wordcloud) 
#twitter authentication 
consumerKey <- " " 
consumerSecret <- " " 
accessToken <- " " 
accessTokenSecret <- " " 

twitteR::setup_twitter_oauth(consumerKey,consumerSecret,accessToken,accessTokenSecret) 

#retrive tweets from twitter 
tweets=searchTwitter("euro2016+france",lang = "en",n=500,resultType = "recent") 
class(tweets) 
head(tweets) 
#converting list to vector 
tweets_text=sapply(tweets,function(x) x$getText()) 
str(tweets_text) 
#creates corpus from vector of tweets 
tweets_corpus=Corpus(VectorSource(tweets_text)) 
inspect(tweets_corpus[100]) 

#cleaning 
tweets_clean=tm_map(tweets_corpus,removePunctuation,lazy= T) 
tweets_clean=tm_map(tweets_clean,content_transformer(tolower),lazy = T) 
tweets_clean=tm_map(tweets_clean,removeWords,stopwords("english"),lazy = T) 
tweets_clean=tm_map(tweets_clean,removeNumbers,lazy = T) 
tweets_clean=tm_map(tweets_clean,stripWhitespace,lazy = T) 
tweets_clean=tm_map(tweets_clean,removeWords,c("euro2016","france"),lazy = T) 
#wordcloud play with parameters 
wordcloud(tweets_clean) 

Als ich die letzte Zeile laufen, ich habe:

Fehler in UseMethod („meta“, x): keine anwendbare Methode für ‚Meta‘ auf ein Objekt der Klasse angewandt „Try-Fehler“ Zusätzlich: Warnung Nachrichten: 1: In mclapply (x $ Inhalt [i], Funktion (d) tm_reduce (d, x $ faul $ Karten)): alle geplanten Kerne sind Fehler aufgetreten in Benutzercode 2: In mclapply (unname (Gehalt (x)), termFreq, Kontrolle): alle geplanten Kerne Fehler in Benutzercode angetroffen

Kennt jemand Lösung a dafür?

+0

Dies ist noch nicht ein minimales Arbeitsbeispiel. Bitte reduzieren Sie den Code (z. B. die verschiedenen Reinigungsschritte), um genau zu unterscheiden, was den Fehler verursacht. – Heisenberg

+0

Das Problem kommt mit der 'removeWords' Funktion. Ohne die Funktion läuft der Code gut, muss aber trotzdem eine Umgehung für die Funktion finden. – holzben

Antwort

1

Irgendwie scheint ein Codierungsproblem mit der removeWords-Funktion zu sein, wenn es zusammen mit der tm_map-Funktion verwendet wird (siehe auch here).

Eine Arbeit um könnte die Funktion früher verwenden, an dem Punkt, wo Sie den Text in das Corpus laden:

#converting list to vector 
tweets_text=sapply(tweets,function(x) x$getText()) 
str(tweets_text) 

# removing words 
tweets_text<- sapply(tweets_text, function(x) removeWords(x, c("euro2016","france"))) 
tweets_text<- sapply(tweets_text, function(x) removeWords(x, stopwords("english"))) 


#creates corpus from vector of tweets 
tweets_corpus=Corpus(VectorSource(tweets_text)) 
inspect(tweets_corpus[100]) 

#cleaning 
tweets_clean=tm_map(tweets_corpus,removePunctuation) 
tweets_clean=tm_map(tweets_clean,content_transformer(tolower)) 
#tweets_clean=tm_map(tweets_clean,removeWords,stopwords("english")) 
tweets_clean=tm_map(tweets_clean,removeNumbers,lazy = T) 
tweets_clean=tm_map(tweets_clean,stripWhitespace,lazy = T) 
#tweets_clean=tm_map(tweets_clean,removeWords,c("euro2016","france"),lazy = T) 
wordcloud(tweets_clean)