#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()