Mais que palavras: tokenização (1)
Usos comuns de text mining incluem analisar avaliações de compras para entender a percepção de quem comprou sobre o produto, ou analisar notícias financeiras para prever o sentimento em relação aos preços das ações. Para analisar dados de texto, etapas de pré-processamento comuns incluem converter o texto para minúsculas (veja tolower()) e dividir frases em palavras individuais.
ft_tokenizer() realiza essas duas etapas. Seu uso segue o mesmo padrão das outras transformações que você viu, sem precisar de outros argumentos.
shop_reviews %>%
ft_tokenizer("review_text", "review_words")
Como a saída pode conter um número diferente de palavras em cada linha, output.col é uma coluna de lista, em que cada elemento é uma lista de strings. Para analisar dados de texto, geralmente é preferível ter uma palavra por linha nos dados. O formato lista-de-listas-de-strings pode ser transformado em um único vetor de caracteres usando unnest() do pacote tidyr. No momento, não há método para fazer unnest de dados no Spark, então, por enquanto, você precisa coletá-los para o R antes de transformá-los. O padrão de código para isso é o seguinte.
library(tidyr)
text_data %>%
ft_tokenizer("sentences", "word") %>%
collect() %>%
mutate(word = lapply(word, as.character)) %>%
unnest(word)
Se você quiser aprender mais sobre como usar o pacote tidyr, faça o curso Cleaning Data in R.
Este exercício faz parte do curso
Introdução ao Spark com sparklyr em R
Instruções do exercício
Uma conexão com o Spark foi criada para você como spark_conn. Uma tibble ligada aos metadados das faixas armazenados no Spark foi pré-definida como track_metadata_tbl.
- Crie uma variável chamada
title_texta partir detrack_metadata_tbl.- Selecione os campos
artist_nameetitle. - Use
ft_tokenizer()para criar um novo campo,word, que contém o título dividido em palavras. - Colete o resultado.
- Faça um mutate na coluna
word, achatando-a para uma lista de vetores de caracteres usandolapplyeas.character. - Use
unnest()para achatar a coluna de lista e obter uma palavra por linha.
- Selecione os campos
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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
___