Twitter-tekst verwerken

Socialemediagegevens analyseren in R

Vivek Vijayaraghavan

Data Science Coach

Lesoverzicht

  • Waarom tweet-tekst verwerken?
  • Stappen in het verwerken van tweet-tekst
    • overbodige info verwijderen
    • Tekst omzetten naar corpus
    • Stopwoorden verwijderen
Socialemediagegevens analyseren in R

Waarom tweet-tekst verwerken?

  • Tweet-tekst is ongestructureerd, rommelig en rauw
  • Bevat emoticons, URL's, cijfers
  • Tekst schoonmaken is nodig voor analyse en betrouwbare resultaten
Socialemediagegevens analyseren in R

Stappen in tekstverwerking

Stap 1: Overbodige informatie verwijderen

Socialemediagegevens analyseren in R

Stappen in tekstverwerking

Stap 2: Tekst omzetten naar een corpus

Socialemediagegevens analyseren in R

Stappen in tekstverwerking

Stap 3: Omzetten naar kleine letters

Socialemediagegevens analyseren in R

Stappen in tekstverwerking

Stap 4: Stopwoorden verwijderen

Socialemediagegevens analyseren in R

Tweet-tekst extraheren

# Extract 1000 tweets on "Obesity" in English and exclude retweets
tweets_df <- search_tweets("Obesity", n = 1000, include_rts = F, lang = 'en')
# Extract the tweet texts and save it in a data frame
twt_txt <- tweets_df$text
Socialemediagegevens analyseren in R

Tweet-tekst extraheren

head(twt_txt, 3)
[1] "@WeeaUwU for real, obesity should not be praised like it is in today's society" 

[2] "Great work by @DosingMatters in @AJHPOfficial on \"Vancomycin Vd estimation in 
adults with class III obesity\". As we continue to study/learn more about dosing in 
large body weight pts, we see that it's not a simple, one size, one level estimate 
that works https://t.co/KkYPqS6JzG" 

[3] "The Scottish Government have an ambition to halve childhood obesity by 2030. 
This means reducing obesity prevalence in 2-15yo children in Scotland to 7%. 
\n\n\U0001f449 In 2018, this figure was 16%\n\nFind out more in our latest blog: 
https://t.co/FWp56QWjQc https://t.co/XBK8Je7F1A"
Socialemediagegevens analyseren in R

URL's verwijderen

# Remove URLs from the tweet text
library(qdapRegex)
twt_txt_url <- rm_twitter_url(twt_txt)
Socialemediagegevens analyseren in R

URL's verwijderen

twt_txt_url[1:3]
[1] "@WeeaUwU for real, obesity should not be praised like it is in today's society"

[2] "Great work by @DosingMatters in @AJHPOfficial on \"Vancomycin Vd estimation in  adults 
with class III obesity\". As we continue to study/learn more about dosing in large body 
weight pts, we see that it's not a simple, one size, one level estimate that works"

[3] "The Scottish Government have an ambition to halve childhood obesity by 2030. 
This means reducing obesity prevalence in 2-15yo children in Scotland to 7%. 
\U0001f449In 2018, this figure was 16% Find out more in our latest blog:"  
Socialemediagegevens analyseren in R

Speciale tekens, interpunctie en cijfers

# Remove special characters, punctuation & numbers
twt_txt_chrs  <- gsub("[^A-Za-z]", " ", twt_txt_url)
Socialemediagegevens analyseren in R

Speciale tekens, interpunctie en cijfers

twt_txt_chrs[1:3]
[1] " WeeaUwU for real  obesity should not be praised like it is in today s society"

[2] "Great work by  DosingMatters in  AJHPOfficial on  Vancomycin Vd estimation in 
adults with class III obesity   As we continue to study learn more about dosing in 
large body weight pts  we see that it s not a simple  one size  one level estimate 
that works"

[3] "The Scottish Government have an ambition to halve childhood obesity by       This 
means reducing obesity prevalence in     yo children in Scotland to       In       this 
figure was     Find out more in our latest blog "   
Socialemediagegevens analyseren in R

Omzetten naar tekstcorpus

# Convert to text corpus
library(tm)
twt_corpus <- twt_txt_chrs %>% 
                VectorSource() %>% 
                Corpus()
twt_corpus[[3]]$content
[1] "The Scottish Government have an ambition to halve childhood obesity by       
This means reducing obesity prevalence in     yo children in Scotland to       In  
     this figure was     Find out more in our latest blog "
Socialemediagegevens analyseren in R

Omzetten naar kleine letters

  • Een woord mag niet dubbel tellen door hoofd-/kleine letters
# Convert text corpus to lowercase
twt_corpus_lwr <- tm_map(twt_corpus, tolower) 
twt_corpus_lwr[[3]]$content
[1] "the scottish government have an ambition to halve childhood obesity by     this 
means reducing obesity prevalence in     yo children in scotland to       in    this 
figure was     find out more in our latest blog "
Socialemediagegevens analyseren in R

Wat zijn stopwoorden?

  • Stopwoorden zijn veelvoorkomende woorden zoals a, an, and, but
# Common stop words in English
stopwords("english")

Standaard stopwoorden in het Engels

Socialemediagegevens analyseren in R

Stopwoorden verwijderen

  • Verwijder stopwoorden om op kernwoorden te focussen
# Remove stop words from corpus
twt_corpus_stpwd <- tm_map(twt_corpus_lwr, removeWords, stopwords("english"))
twt_corpus_stpwd[[3]]$content

[1] " scottish government   ambition  halve childhood obesity         means 
reducing obesity prevalence      yo children  scotland                figure      
find     latest blog "
Socialemediagegevens analyseren in R

Extra spaties verwijderen

  • Verwijder extra spaties voor een schoon corpus
# Remove additional spaces
twt_corpus_final <- tm_map(twt_corpus_stpwd, stripWhitespace)
twt_corpus_final[[3]]$content
[1] " scottish government ambition halve childhood obesity means reducing obesity 
prevalence yo children scotland figure find latest blog "
Socialemediagegevens analyseren in R

Laten we oefenen!

Socialemediagegevens analyseren in R

Preparing Video For Download...