de Deepal Dsilva

Cum să vizualizați ceea ce ați postat pe Twitter

Un experiment wordcloud în R.

Cum sa vizualizati ceea ce ati postat pe Twitter

V-ați întrebat vreodată despre ce tweet-uri cel mai mult? Sau participați la conferința dvs. preferată și doriți să știți care este buzz-ul din jurul ei?
Sau poate vreți să știți care este vorba despre cel mai recent film lansat?

Ei bine, WordClouds este locul unde ar trebui să te uiți. Acestea sunt ușor de configurat, oferă vizualizări uimitoare și sunt ușor de personalizat.

Aștepta! Dar mai întâi, ce este un WordCloud?

Este o imagine compusă din cuvinte folosite într-un anumit text sau subiect, în care dimensiunea fiecărui cuvânt indică frecvența sau importanța acestuia.

Acum, că știți elementele de bază, să începem în R.

Încărcați bibliotecile necesare

library(twitteR)library(ROAuth)library(stringr)library(tm)library(wordcloud2)library(tidytext)

Configurarea aplicației Twitter

Vom folosi datele Twitter pentru a construi wordcloud-ul nostru, așa că obțineți un cont Twitter dacă nu aveți unul. Voi astepta…

ad-banner

În continuare, vom avea nevoie de o aplicație Twitter. Aceasta este o configurare unică.

Trebuie să vă autentificați pe Twitter, astfel încât să puteți trimite o cerere pentru tweet-uri și ca Twitter să vi le trimită înapoi.

Nu voi intra în pașii detaliați. Poți să folosești acest tutorial pentru a-l pune la punct.

Apoi, trecem jetonul la funcția setup_twitter_oauth pentru a ne autentifica.

consumer_key <- "xxxx"      #Your Consumer Key (API Key)consumer_secret <- "xxxx"   #Your Consumer Secret (API Secret)access_token <- "xxxx"      #Your Access Tokenaccess_secret <- "xxxx"     #Your Access Token Secretsetup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)

Extragerea datelor Twitter

Puteți extrage tweeturi pe baza profilului unui utilizator sau a oricărui cuvânt cheie / hashtag. Iată ambele exemple.

#Query a hashtagtweets <- searchTwitter("#rstats",n=3000,lang="en", resultType = "popular")
#OR
#Query a user you follow or yourselftweets <- userTimeline("dsilvadeepal",n=3200,includeRts = FALSE)

Text Mining tweet-urile dvs.

Acum trebuie să extragem textul din tweets într-un vector.

Și vom elimina mai întâi parametrii grafici. Aceasta elimină caracterele vizibile (orice, cu excepția spațiilor și a caracterelor de control) pentru a evita erorile de intrare.

tweets.txt <- sapply(tweets, function

Acum să creăm o funcție pentru a curăța tweet-urile. Aici vom elimina cifrele, punctuația, spațiile, linkurile HTTP și retweet-urile (RT-uri). Puteți personaliza această funcție pe baza datelor pe care le prelucrați.

clean.text = function(x){    x = tolower(x)                   # tolower  x = gsub("rt", "", x)            # remove rt  x = gsub("@\w+", "", x)         # remove at  x = gsub("[[:punct:]]", "", x)   # remove punctuation  x = gsub("[[:digit:]]", "", x)   # remove numbers  x = gsub("http\w+", "", x)      # remove links http  x = gsub("[ |t]{2,}", "", x)    # remove tabs  x = gsub("^ ", "", x)            # remove leading blank spaces   x = gsub(" $", "", x)            # remove trailing blank spaces    return(x)}
clean_tweet <- clean.text(tweets.txt)

Apoi, construim un Corpus. Un Corpus este o colecție de documente text, iar VectorSource indică vectorul în care sunt stocate tweet-urile.

De asemenea, vom crea un vector pentru a elimina cuvintele de oprire în limba engleză și orice alte cuvinte care sunt irelevante (vom identifica aceste cuvinte într-un pas ulterior). Unele cuvinte obișnuite de oprire în limba engleză sunt „the”, „I” și „he”.

tweets <- Corpus(VectorSource(clean_tweet))wordsToRemove <- c(stopwords('en'), 'tco', 'https')clean_tweet <- tm_map(tweets, removeWords, wordsToRemove)

Acum creăm un Term Document Matrix (TDM) care ne spune de câte ori este găsit fiecare cuvânt din corpus.

dtm <- TermDocumentMatrix(clean_tweet, control = list(wordLengths = c(1, Inf)))m <- as.matrix(dtm)v <- sort(rowSums(m),decreasing=TRUE)d <- data.frame(word = names(v),freq=v)head(d, 10)   #inspect our word list and remove any irrelevant words  in the stop words step above

În cele din urmă pentru partea distractivă!

Crearea wordcloud-ului nostru

Aici vom folosi pachetul WordCloud2 - acesta este un pachet mai nou pentru pachetul WordCloud și oferă o personalizare mult mai mare.

wordcloud2(d, shape = "triangle", color="random-light", backgroundColor = "white", minRotation = -pi/4, maxRotation = -pi/4, size = 0.5)
1611508566 377 Cum sa vizualizati ceea ce ati postat pe Twitter

Și iată-l! Iată un link către cod în Github.

Mulțumesc pentru lectură!

Notă: API-ul Twitter limitează numărul de tweets pe care un utilizator le poate obține dintr-o anumită cronologie la 3200.