Как провести семантический анализ текста
Материал из Поле цифровой дидактики
| Описание |
|
|---|---|
| Область знаний | Лингвистика, Статистика |
| Область использования (ISTE) | Global Collaborator |
| Возрастная категория | 16
|
| Поясняющее видео | |
| Близкие рецепту понятия | |
| Среды и средства для приготовления рецепта: | R |
Анализ тональности
- Анализ эмоциональной окраски текста (позитивная, негативная, нейтральная).
# Пример с простым русским словарем
sentiment_dict <- tibble(
word = c("хороший", "отличный", "великолепный", "позитивный", "успех",
"плохой", "ужасный", "негативный", "проблема", "ошибка", "конфликт"),
sentiment = c(1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1)
)
text_sentiment <- tokens_clean %>%
left_join(sentiment_dict, by = "word") %>%
group_by(title, category) %>%
summarise(
positive_words = sum(sentiment == 1, na.rm = TRUE),
negative_words = sum(sentiment == -1, na.rm = TRUE),
neutral_words = sum(is.na(sentiment), na.rm = TRUE),
sentiment_score = (positive_words - negative_words) / n(),
.groups = "drop"
)
# Визуализация
ggplot(text_sentiment, aes(x = category, y = sentiment_score, fill = category)) +
geom_boxplot(alpha = 0.6) +
geom_jitter(width = 0.2, alpha = 0.3) +
geom_hline(yintercept = 0, linetype = "dashed", color = "gray") +
labs(
title = "Анализ тональности текстов",
x = "Категория",
y = "Sentiment Score",
subtitle = "Положительные значения = позитивная тональность"
) +
theme_minimal() +
theme(legend.position = "none")
