Как провести семантический анализ текста: различия между версиями

Материал из Поле цифровой дидактики
Новая страница: «{{Scripting Tutorials |Description=Анализ тональности - анализ эмоциональной окраски текста (позитивная, негативная, нейтральная). |Field_of_knowledge=Лингвистика, Статистика |FieldActivity=Global Collaborator |Возрастная категория=16 |Environment=R }} == Анализ тональности === * Анализ эмоциональной о...»
 
Строка 6: Строка 6:
|Environment=R
|Environment=R
}}
}}
== Анализ тональности ===
== Анализ тональности ==
* Анализ эмоциональной окраски текста (позитивная, негативная, нейтральная).
* Анализ эмоциональной окраски текста (позитивная, негативная, нейтральная).


Строка 27: Строка 27:
     .groups = "drop"
     .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")
</syntaxhighlight>

Версия от 17:44, 10 декабря 2025

Описание Анализ тональности - анализ эмоциональной окраски текста (позитивная, негативная, нейтральная).
Область знаний Лингвистика, Статистика
Область использования (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")