Меня — видишь кудри беспутные эти? -
Земною не сделаешь солью.
Дробясь о гранитные ваши колена,
Я с каждой волной — воскресаю!
Да здравствует пена — веселая пена —
Высокая пена морская!
Стихотворение «Кто создан из камня, кто создан из глины…» Марина Цветаева написала в 1920 году. Она сравнивает себя с морской пеной, подчёркивая своё непостоянство, стремление к движению, неподвластность внешним силам. Стихотворение начинается жизнеутверждающими словами про веселье, воскрешение и плеск волны. Вместе с тем далее стихотворение содержит и упоминания гроба и надгробных плит — тема всего произведения это противопоставление земного и небесного начал в человеческой природе. Стихотворение раскрывает одну из ключевых тем творчества Цветаевой — конфликт личности с окружающим миром, невозможность подчинить свою природу земным законам. Через образ непокорных кудрей поэтесса передаёт идею внутренней свободы и независимости от внешних условностей. Стихотворение, таким образом, оглашает две эмоции и построено на антитезе: земное противопоставляется неземному, что создаёт драматическое напряжение.
Мне показалось интересным провести анализ эмоциональной динамики в этом стихотворении с помощью Python и сделать в коде классификацию по конкретным эмоциям с использованием модели BERT от Сбербанка. BERT (Bidirectional Encoder Representations from Transformers) — модель глубокого обучения, которая обрабатывает и понимает естественный язык. Разработана компанией Google в 2018 году.
RuBERT — это языковая модель, предназначенная для работы с русским языком. Она является русской версией модели BERT. Модель Обучена на большом наборе данных, состоящем из более чем 1,5 миллиарда слов, извлечённых из различных русскоязычных текстов, включая новостные статьи, литературные произведения, научные статьи и другие. Эта модель позволяет решать различные задачи, связанные с обработкой естественного языка, включая классификацию текстов, семантическую сегментацию, вопросно-ответную систему. RuBERT была представлена компаниями SberDevices и DeepPavlov в июле 2021 года.
В основе BERT лежит многослойная двунаправленная трансформерная архитектура. В отличие от других моделей, читающих текст только в одном направлении, BERT смотрит на каждое слово с двух сторон сразу, что делает модель более «осведомленной» и улучшает понимание связи между словами.
В моем случае для анализа больше подошла трансформенная модель rubert-base-cased-sentiment разработки волгоградского специалиста Игоря Шаталина. Я использовал ее для классификация текста по тональности (sentiment analysis). Модель распознаёт три класса:
POSITIVE Положительная эмоциональная окраска
NEGATIVE Отрицательная эмоциональная окраска
NEUTRAL Нейтральная или смешанная окраска
Нейтрально в контексте этой модели не значит "безэмоционально", а скорее неоднозначно, противоречиво, сложно классифицируемо.
Модель учитывает порядок слов, грамматику, семантику. Понимает, что "пена морская"- это метафора, а не просто пена. И расставляет метки по эмоциям. При этом модель еще и вводит понятие "полярность (P-N)" — это разница между положительной и отрицательной оценкой.
for i, sentence in enumerate(sentences):
result = emotion_classifier(sentence)
label = result[0]['label']
score = result[0]['score']
tokens_total = analyzer.tokenize(poem)
total_score = analyzer.get_score(tokens_total)
result_total = emotion_classifier(poem)
Как работает этот алгоритм. Он классифицирует каждое предложение. Затем проверяет, есть ли метка в словаре и если нет — ставит neutral. После этого модель назначает числовую полярность (P-N) и сохраняет результат.
В чем оказалась главная проблема такого анализа. Модель не умеет распознавать поэтический стиль Цветаевой или какого-либо поэта вообще. Модель обучалась на разговорных или социальных текстах, где эмоции выражаются прямо. А Цветаева говорит метафорами, "Я — бренная пена морская" — не факт, а образ самоосознания, хрупкая, но вечная, разрушаемая, но возрождающаяся. Поэтому модель видит "факт" и ставит эмоциональную оценку neutral - неоднозначно, противоречиво, сложно классифицируемо.
В моем эксперименте модель поставила оценку NEUTRAL всем строкам стихотворения, кроме последней
"Да здравствует пена — веселая пена —
Высокая пена морская"
Эмоция: РАДОСТЬ (joy)
Уверенность: 0.89
Полярность (P-N): +1.000
Все стихотворение Цветаевой оказалось для этой модели неоднозначно, противоречиво, сложно классифицируемо. Даже хорошо настроенным моделям еще предстоит обучаться, со сложными текстами они пока не справляются, а с поэтическими текстами могут не справится вообще.
Подробные разборы других текстов можно посмотреть на видео https://dzen.ru/codslov
Demanih
Старенький анекдот:
Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, бл*...» — сказали лесорубы.
Подсунули ей деревце потолще.
«Вж-ж-жик!» — сказала пила.
«Ух, бл*!» — сказали лесорубы.
Подсунули ей толстенный кедр.
«ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, бл*!!» — сказали лесорубы.
Подсунули ей железный лом.
«КРЯК!» — сказала пила.
«Ага, бл*!!!» — удовлетворенно сказали суровые сибирские лесорубы!