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

Материал из Поле цифровой дидактики
Нет описания правки
 
Строка 1: Строка 1:
{{Scripting Tutorials
{{Scripting Tutorials
|Description=Анализ тональности - анализ эмоциональной окраски текста (позитивная, негативная, нейтральная).
|Description=
* Анализ тональности - анализ эмоциональной окраски текста (позитивная, негативная, нейтральная)
* Анализ личностных маркеров (LIWC-подход) Психолингвистический анализ, основанный на выявлении определённых категорий слов, отражающих психологические процессы
|Field_of_knowledge=Лингвистика, Статистика
|Field_of_knowledge=Лингвистика, Статистика
|FieldActivity=Global Collaborator
|FieldActivity=Global Collaborator
Строка 42: Строка 44:
   theme(legend.position = "none")
   theme(legend.position = "none")
</syntaxhighlight>
</syntaxhighlight>
== Анализ личностных маркеров (LIWC-подход) ==

Текущая версия от 17:45, 10 декабря 2025

Описание
  • Анализ тональности - анализ эмоциональной окраски текста (позитивная, негативная, нейтральная)
  • Анализ личностных маркеров (LIWC-подход) Психолингвистический анализ, основанный на выявлении определённых категорий слов, отражающих психологические процессы
Область знаний Лингвистика, Статистика
Область использования (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")

Анализ личностных маркеров (LIWC-подход)