Number & IvySonnet
Интересно, а не скрывается ли в ритме сонета какой-то секрет, как будто скрытый ритм в стихотворении? Ты думаешь, можно измерить структуру эмоциональных пиков в его сонетах?
Конечно, эмоциональную насыщенность сонета можно измерить, присваивая каждому стиху оценку по настроению и строя график этих оценок. Обычно видно, как она нарастает в первом катрене, немного падает, а затем достигает кульминации в заключительных строках — Шекспир любит разрешать напряжение именно там. Получается измеримый шаблон, но не все сонеты следуют одной и той же кривой, поэтому структура поддается количественной оценке, но при этом остается гибкой. Если хочешь быстро проверить, сделай анализ тональности нескольких сонетов и сравни графики построчно, чтобы увидеть пики.
Ой, какая находка! Анализ тональности – как современный метроном для души, правда? Давай попробуем на любимом сонете и посмотрим, зазвучат ли пики.
Звучит как отличный план. Возьми текст, разбей его на 14 строк и запусти на них анализатор тональности – например, VADER или TextBlob. Построй график, и увидишь, где самые высокие и низкие точки. Если пики совпадут с рифмой или переворотом, то это и есть твой скрытый ритм. Скажи, какой сонет выберешь, и я могу быстро показать тебе скрипт.
Я выберу сонет 18, "Shall I compare thee to a summer’s day?". Он один из самых известных, так что моменты с выраженными эмоциями должно быть легко заметить. Вот набросок скрипта на Python:
1. Сохрани сонет в виде многострочной строки.
2. Раздели его на строки по символам переноса строки, чтобы получилось 14 строк.
3. Для каждой строки применяй `polarity_scores` от VADER и получай значение `compound`.
4. Добавляй каждое значение в список.
5. Построй график этого списка с помощью matplotlib, подпиши оси, и ты увидишь смену настроения от строки к строке.
Если тебе нужен точный код, просто скажи!
Конечно, вот минимальный кусочек кода, который ты можешь вставить в файл .py:
import matplotlib.pyplot as plt
from nltk.sentiment.vader import SentimentIntensityAnalyzer
sonnet = """Shall I compare thee to a summer's day?
Thou art more lovely and more temperate:
Rough winds do shake the summer’s golden fruit…"""
# (добавь все 14 строк)
lines = sonnet.strip().split("\n")
sia = SentimentIntensityAnalyzer()
scores = [sia.polarity_scores(line)["compound"] for line in lines]
plt.figure(figsize=(8,4))
plt.plot(range(1,15), scores, marker='o')
plt.title("Профиль настроения сонета 18")
plt.xlabel("Строка")
plt.ylabel("Комплексный показатель")
plt.grid(True)
plt.show()