2017-11-28 16 views
6

Tôi đang sử dụng API twitter để tạo ra tình cảm. Tôi đang cố gắng tạo ra một đám mây từ dựa trên các tweet.Wordcloud là văn bản cắt xén

Đây là mã của tôi để tạo ra một wordcloud

wordcloud(clean.tweets, random.order=F,max.words=80, col=rainbow(50), scale=c(3.5,1)) 

Kết quả cho việc này:

enter image description here

Tôi cũng đã cố gắng này:

pal <- brewer.pal(8,"Dark2") 

wordcloud(clean.tweets,min.freq = 125,max.words = Inf,random.order = TRUE,colors = pal) 

Kết quả cho việc này:

enter image description here

Tôi có thiếu gì đó không?

Đây là cách tôi nhận được và làm sạch tweets:

#downloading tweets 
tweets <- searchTwitter("#hanshtag",n = 5000, lang = "en",resultType = "recent") 
# removing re tweets 
no_retweets <- strip_retweets(tweets , strip_manual = TRUE) 

#converts to data frame 
df <- do.call("rbind", lapply(no_retweets , as.data.frame)) 

#remove odd characters 
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub="")) #remove emoticon 
df$text = gsub("(f|ht)tp(s?)://(.*)[.][a-z]+", "", df$text) #remove URL 
sample <- df$text 


    # Cleaning Tweets 
    sum_txt1 <- gsub("(RT|via)((?:\\b\\w*@\\w+)+)","",sample) 
    sum_txt2 <- gsub("http[^[:blank:]]+","",sum_txt1) 
    sum_tx3 <- gsub("@\\w+","",sum_txt2) 
    sum_tx4 <- gsub("[[:punct:]]"," ", sum_tx3) 
    sum_tex5 <- gsub("[^[:alnum:]]", " ", sum_tx4) 
    sum_tx6 <- gsub("RT ","", sum_tex5) 

    # WordCloud 

    # data frame is not good for text convert it corpus 
    corpus <- Corpus(VectorSource(sum_tx6)) 
    clean.tweets<- tm_map(corpus , content_transformer(tolower)) #converting everything to lower cases 
    clean.tweets<- tm_map(guj_clean,removeWords, stopwords("english")) #stopword are words like of, the, a, as.. 
    clean.tweets<- tm_map(guj_clean, removeNumbers) 
    clean.tweets<- tm_map(guj_clean, stripWhitespace) 

Cảm ơn trước!

+0

Bạn có thể chia sẻ mã bạn đã sử dụng để tạo đối tượng clean.tweet không? Tôi không có pblm sản xuất một wordcloud trên máy tính của tôi. Bất kỳ cơ hội nào bạn đã chỉ định một tùy chọn 'par()' trước đây? –

+0

@ColinFAY vui lòng kiểm tra câu hỏi cập nhật. Tôi không sử dụng mệnh lệnh() trong mã của tôi –

Trả lời

0

Thử thay đổi tỷ lệ trên wordcloud của bạn từ c (3,5,1) thành c (3,5,0,25).

wordcloud(clean.tweets, random.order=F,max.words=80, col=rainbow(50), scale=c(3.5,0.25))