Este relatório reune algumas informações e manipulação breves referentes ao conteúdo do dataset de avaliações de produtos da Amazon 2023, fornecido por Hou et al. (2024) e aborda uma introdução breve sobre, com caminhos para estudo de aprendizado de máquina e sistemas de recomendação.
Nesta seção, foi realizado o carregamento e manipulação do conjunto
de dados Magazine_subscriptions.csv fornecido por Hou et al. (2024).
Primeiro, é carregado o conjunto de dados usando a função
read_csv do pacote readr (parte do
tidyverse).
caminho_arquivo <- "magazine_subscriptions.csv"
# Carrega os dados
dados_originais <- read_csv(caminho_arquivo)
# Mostra a estrutura dos dados
glimpse(dados_originais)
## Rows: 71,497
## Columns: 10
## $ rating <dbl> 5, 4, 5, 5, 1, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1…
## $ title <chr> "Great pictures and recipes", "great for kids who lo…
## $ text <chr> "Wonderful recipes in this magazine.", "Great sports…
## $ images <chr> "[]", "[]", "[]", "[]", "[]", "[]", "[]", "[]", "[]"…
## $ asin <chr> "B00HLSSQKK", "B002PXW04Y", "B00HCR5090", "B0000ARXX…
## $ parent_asin <chr> "B00HLSSQKK", "B002PXW04Y", "B00HCR5090", "B0000ARXX…
## $ user_id <chr> "AE7Y5RLYIKHOZB5NKKOEKYG2SPSQ", "AHORTSSMI6ZZFUFWMPT…
## $ timestamp <dbl> 1.608046e+12, 1.470973e+12, 1.396827e+12, 1.181880e+…
## $ helpful_vote <dbl> 0, 1, 4, 4, 13, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 2, 4, …
## $ verified_purchase <lgl> TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TR…
Realiza-se manipulações para limpar e melhorar a visualização das informações do conjunto de dados, o dataset original possui 71497 linhas.
Passos da Manipulação:
timestamp está em milissegundos, é convertido para um
formato de data (review_date).text_length que calcula o número de caracteres na coluna
text da avaliação.verified_purchase == TRUE e que tenham um
rating de 4 ou 5 estrelas.helpful_vote em ordem decrescente,
para ver as avaliações mais úteis primeiro.dados_manipulados <- dados_originais %>%
# Converter timestamp para data
mutate(review_date = as.POSIXct(timestamp / 1000, origin = "1970-01-01")) %>%
# Tamanho do texto da avaliação
mutate(text_length = nchar(as.character(text))) %>%
# Filtrando por compras verificadas e rating alto
filter(verified_purchase == TRUE, rating >= 4) %>%
# Ordena pelas avaliações mais úteis
arrange(desc(helpful_vote)) %>%
# Seleciona as colunas relevantes
select(
user_id,
rating,
title,
text,
text_length,
review_date,
helpful_vote
)
Após a manipulação, o conjunto de dados foi enxugado para 45435 linhas, contendo apenas avaliações positivas e verificadas, ordenadas pela sua utilidade.
Cabeçalho da manipulação realizada:
head(dados_manipulados, 10)
## # A tibble: 10 × 7
## user_id rating title text text_length review_date helpful_vote
## <chr> <dbl> <chr> <chr> <int> <dttm> <dbl>
## 1 AFPY7ERB7DB3… 5 Bewa… I lo… 317 2017-08-07 13:19:45 2005
## 2 AFZOHE4Z4B5J… 5 Inte… My e… 1418 2011-05-08 16:12:07 1421
## 3 AE3MTQULT5KJ… 5 Abso… It's… 2139 2017-11-30 18:54:44 749
## 4 AE3MTQULT5KJ… 5 Grea… I am… 1344 2017-10-18 18:16:49 675
## 5 AGKKR7NHRBD6… 5 I lo… I wa… 1309 2016-10-21 16:51:35 566
## 6 AH7GTWEL2KDH… 4 The … The … 251 2018-05-26 11:07:50 534
## 7 AF7H4JFMZJ6K… 5 My d… I se… 460 2017-05-01 10:07:06 524
## 8 AEAAIMHVYRUT… 5 Don'… In t… 651 2017-03-16 04:24:36 449
## 9 AFSIVZMMUEWX… 5 Phot… We'v… 3408 2017-07-09 17:00:56 401
## 10 AEAAIMHVYRUT… 5 The … Edit… 1311 2016-02-10 18:07:40 324
Abaixo está uma tabela interativa dos dados manipulados anteriormente, é possível usar a caixa de busca, ordenar as colunas clicando nos cabeçalhos e navegar pelas páginas.
datatable(
dados_manipulados,
rownames = FALSE,
filter = 'top',
options = list(
pageLength = 10)
)