Začněte nyníZačněte zdarma

Víc než slova: tokenizace (1)

Dolování z textu se běžně využívá například k analýze recenzí produktů – abychom zjistili, co si zákazníci myslí – nebo k analýze finančních zpráv za účelem předpovědi sentimentu okolo cen akcií. Při zpracování textových dat se jako předběžné kroky obvykle provádí převod textu na malá písmena (viz tolower()) a rozdělení vět na jednotlivá slova.

ft_tokenizer() provede oba tyto kroky najednou. Používá se stejně jako ostatní transformace, které jsi už viděl/a – bez dalších argumentů.

shop_reviews %>%
  ft_tokenizer("review_text", "review_words")

Protože výstup může v každém řádku obsahovat různý počet slov, je output.col sloupcovým seznamem, kde každý prvek je seznam řetězců. Pro analýzu textu je zpravidla výhodnější mít v datech jedno slovo na řádek. Formát seznam-seznamů-řetězců lze převést na jednoduchý znakový vektor pomocí unnest() z balíčku tidyr. Zatím neexistuje způsob, jak unnestovat data přímo ve Sparku, takže je nejprve musíš načíst do R a teprve pak transformovat. Vzor kódu vypadá takto:

library(tidyr)
text_data %>%
  ft_tokenizer("sentences", "word") %>%
  collect() %>%
  mutate(word = lapply(word, as.character)) %>%
  unnest(word)

Pokud se chceš o balíčku tidyr dozvědět víc, podívej se na kurz Cleaning Data in R.

Toto cvičení je součástí kurzu

Úvod do Sparku se sparklyr v R

Zobrazit kurz

Pokyny k cvičení

Spark připojení je pro tebe připraveno jako spark_conn. Tibble napojený na metadata skladeb uložená ve Sparku je předdefinován jako track_metadata_tbl.

  • Vytvoř proměnnou title_text z track_metadata_tbl.
    • Vyber pole artist_name a title.
    • Pomocí ft_tokenizer() vytvoř nové pole word, které bude obsahovat název rozdělený na jednotlivá slova.
    • Načti výsledek pomocí collect().
    • Uprav sloupec word pomocí mutate() – zploštěj ho na seznam znakových vektorů s využitím lapply a as.character.
    • Použij unnest() pro zploštění sloupcového seznamu a získej jedno slovo na řádek.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# track_metadata_tbl has been pre-defined
track_metadata_tbl

title_text <- track_metadata_tbl %>%
  # Select artist_name, title
  ___ %>%
  # Tokenize title to words
  ___ %>%
  # Collect the result
  ___ %>%
  # Flatten the word column 
  ___ %>% 
  # Unnest the list column
  ___
Upravit a spustit kód