Преобразуйте местоположения в страницы, а затем вычислите среднее значение на каждой странице. Постройте этот средний балл по странице

#r #text-mining

#r #интеллектуальный анализ текста

Вопрос:

Нужна помощь с 9. Но я включил соответствующий код.

5. Позже мы построим график зависимости настроений от местоположения в книге. Для этого будет полезно добавить в таблицу столбец с номером слова.

 words <- words %>% 
  mutate(word_num = 1:length(word))
head(words)
  

6. Удалите стоп-слова и цифры из объекта words. Подсказка: используйте anti_join .

 data("stop_words")
words_clean <- words %>% 
  anti_join(stop_words) %>% 
  filter(!str_detect(word,"^\d $"))
head(words_clean)
  

7. Теперь используйте словарь AFINN, чтобы присвоить значение тональности каждому слову.

 library(textdata)
afinn <- get_sentiments("afinn")
words_sentiments <- words_clean %>% 
  inner_join(afinn, by = "word")  
head(words_sentiments)
  

8. Составьте график зависимости оценки настроений от местоположения в книге и добавьте сглаживание.

 library(ggplot2)
words_sentiments %>% ggplot(aes(x= word_num, y=value))  
  geom_point() 
  geom_smooth()
  
  
  
  

9. Предположим, что на странице 300 слов. Преобразуйте местоположения в страницы, а затем вычислите среднее значение на каждой странице. Постройте этот средний балл по странице. Добавьте сглаживание, которое, по-видимому, проходит через данные.

 # word_sentiments2 <- words_sentiments %>% 
  cut(words_sentiments$word_num,seq(1,max(words_sentiments$word_num), by=300))
word
  

Ответ №1:

Чтобы получить page_number , мы используем потолок частного, затем мы group_by page_number и суммируем значения

 words_sentiments %>%
  mutate(page_number = ceiling(word_num / 300)) %>%
   group_by(page_number) %>%
    summarise(average=mean(value)) -> summed
summed %>%  ggplot(aes(x=page_number, y=average))   geom_point()   geom_smooth()