Przetwarzanie tekstu tweetów

Analiza danych z mediów społecznościowych w R

Vivek Vijayaraghavan

Data Science Coach

Przegląd lekcji

  • Dlaczego przetwarzać tekst tweetów?
  • Kroki przetwarzania tekstu tweetów
    • usuwanie nadmiarowych informacji
    • konwersja tekstu do korpusu
    • usuwanie stop words
Analiza danych z mediów społecznościowych w R

Dlaczego przetwarzać tekst tweetów?

  • Tekst tweetów jest nieustrukturyzowany, zaszumiony i surowy
  • Zawiera emotikony, adresy URL, liczby
  • Czysty tekst jest niezbędny do analizy i wiarygodnych wyników
Analiza danych z mediów społecznościowych w R

Kroki przetwarzania tekstu

Krok 1: Usuwanie nadmiarowych informacji

Analiza danych z mediów społecznościowych w R

Kroki przetwarzania tekstu

Krok 2: Konwersja tekstu do korpusu

Analiza danych z mediów społecznościowych w R

Kroki przetwarzania tekstu

Krok 3: Konwersja na małe litery

Analiza danych z mediów społecznościowych w R

Kroki przetwarzania tekstu

Krok 4: Usuwanie stop words

Analiza danych z mediów społecznościowych w R

Ekstrakcja tekstu tweetów

# 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
Analiza danych z mediów społecznościowych w R

Ekstrakcja tekstu tweetów

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"
Analiza danych z mediów społecznościowych w R

Usuwanie adresów URL

# Remove URLs from the tweet text
library(qdapRegex)
twt_txt_url <- rm_twitter_url(twt_txt)
Analiza danych z mediów społecznościowych w R

Usuwanie adresów URL

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:"  
Analiza danych z mediów społecznościowych w R

Znaki specjalne, interpunkcja i liczby

# Remove special characters, punctuation & numbers
twt_txt_chrs  <- gsub("[^A-Za-z]", " ", twt_txt_url)
Analiza danych z mediów społecznościowych w R

Znaki specjalne, interpunkcja i liczby

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 "   
Analiza danych z mediów społecznościowych w R

Konwersja do korpusu tekstowego

# 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 "
Analiza danych z mediów społecznościowych w R

Konwersja na małe litery

  • To samo słowo nie powinno być traktowane jako różne ze względu na wielkość liter
# 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 "
Analiza danych z mediów społecznościowych w R

Czym są stop words?

  • Stop words to często używane słowa, takie jak a, an, and, but
# Common stop words in English
stopwords("english")

Domyślne stop words w języku angielskim

Analiza danych z mediów społecznościowych w R

Usuwanie stop words

  • Stop words należy usunąć, aby skupić się na istotnych słowach
# 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 "
Analiza danych z mediów społecznościowych w R

Usuwanie nadmiarowych spacji

  • Usuń nadmiarowe spacje, aby uzyskać czysty korpus
# 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 "
Analiza danych z mediów społecznościowych w R

Czas na ćwiczenia!

Analiza danych z mediów społecznościowych w R

Preparing Video For Download...