Правила силлаботоники и эволюция их нарушения¶
Борис Орехов (ИРЛИ РАН)
Силлабо-тонический стих в нормальном случае основан на ритме, связанном с повтором одинаковых последовательностей сильных и слабых слогов («стоп»): например, строка, начинающаяся ямбической стопой, не должна продолжаться стопой анапеста, и т.п.
Как известно, формальным приемам свойственно со временем «изнашиваться»: утрачивается эффект новизны, и те свойства, которые казались на предыдущем историческом этапе привлекательными и яркими, начинают казаться тривиальными, а их достоинства превращаются в недостатки.
Возникает обычная в подобных ситуациях необходимость преодоления инерции устоявшихся форм.
Как поэты стремятся выйти за рамки:
- Разностопность
- Гетерометрия
Перебои, цезурные эффекты- Нарушение схемы рифмовки
- Выход в другую систему стихосложения
Были использованы данные Национального корпуса русского языка. В метаданных стихотворений размечены дата, характер метрики, рифмы, клаузулы. Дата упрощена до десятилетия.
len(d) #число стихотворений в корпусе
107811
for i in d:
d[i]['decade'] = d[i]['created'][:3] + '0'
d['370'] # данные о стихотворении для исследования
{'created': '1806',
'rhyme': 'вольная',
'clausula': 'вольная : ж, м',
'formula': 'Я3,Я4,Я6ж,м',
'extra': '',
'feet': 'вольная : 3,4,6',
'meter': 'Я',
'decade': '1800'}
list(mtrs)[1:10] # примеры заполнения поля meter
[' тонический : Тк # Х', 'тонический : Дк # тонический : Тк', 'Я # Ан # гетерометрия : Д', 'Д + тонический : логаэд 0*0*0*0*0', ' тонический : Ак # Ан # Д', 'Аф # Ан + Аф', ' тонический : Дк # Я # Х # Аф', ' тонический : Тк # Я # Аф # Аф # Я # Я', ' тонический : Дк # Х # тонический : Дк']
Гетерометрия¶
Гетерометрия – комбинация различных строк, написанных правильными силлабо-тоническими размерами.
Аф2ж Ходѝл Стенька Ра̀зин
Д2ж В А̀страхань го̀род
Х3ж То̀ргова̀ть това̀ром.
Д2ж Ста̀л воево̀да
Х3ж Трѐбова̀ть пода̀рков.
А. С. Пушкин «Ходил Стенька Разин…» (Песни о Стеньке Разине, 2, 1826)
df_het = pd.DataFrame(list(zip(decades_list_d, dec_meters_rel_list)), columns=["decades", "mult_meters"])
fig = px.line(df_het, y='mult_meters', x='decades')
fig.show() # считаем долю гетерометричных
# стихотворений от всех за это десятилетие
Вольная рифма¶
Особенностью второй половины XIX в. является то, что попытки уменьшения монотонности стиха происходят в это время не непосредственно в сфере метрики, а скорее в сфере строфики, нарушения же силлабо-тонического ритма носят очень робкий и единичный характер. По-видимому, более сильные нарушения оказались бы просто несовместимы с господствовавшим тогда представлением о том, что такое стих, и вызвали бы упрек в недостаточном владении профессиональным мастерством.
Я5ж Я нѐ пойду̀ на пѐрвоѐ свида̀нье,
Я5ж Ни в чѐм не ста̀ну по̀дража̀ть Монта̀ну,
Я5ж Не за̀рыда̀ю гу̀лко, ка̀к Шаля̀пин.
Я5ж Сказа̀ть ― скажу̀: я по̀лужѝл и по̀лу ―
Я5ж каза̀лось ― жѝл, и са̀м себя̀ прошля̀пил.
Я5ж Уймѝте, ра̀ди бо̀га, ра̀дио̀лу!
1957―1963
А. А. Тарковский «Я не пойду на первое свиданье…» (1957-1963)
fig = px.line(df1, y='rhyme_libre', x='decades')
fig.show()
Вольная клаузула¶
Я5ж но к э̀тому̀ язы̀к мой нѐприча̀стен,
Я5ж но всѐ это̀ помѝмо мо̀ей во̀ли,
Я5ж но всѐ это̀ ― не го̀воря̀ ни сло̀ва
Я5м и да̀же зву̀ка нѐ проѝзнося̀.
Ю. Д. Левитанский Банальный монолог: «Я б мог сказать: / — Как сорок тысяч братьев!..» (1981)
fig = px.line(df2, y='clausula_libre', x='decades')
fig.show()
Вольная стопность¶
Именно в XIX в. получает наибольшее распространение такой прием, как чередование внутри одного размера строк с разным количеством стоп – регулярное или нерегулярное («вольное»). Регулярные и вольные разностопники (в особенности с контрастирующей клаузулой) были, как представляется, основным и, так сказать, самым «легитимным» средством компенсации силлабо-тонической монотонности в ту эпоху.
Я4ж Како̀е до̀ него̀ мне дѐло?»
Я5м О, э̀того̀ ты нѐ проща̀ешь мнѐ!
Я5ж Ты вся̀ возму̀щена̀ недо̀умѐнно,
Я5ж Ты днѐм недо̀сяга̀емо̀ надмѐнна,
Я6м Но я̀ дышу̀ с тобо̀й в твоѐм горя̀чем снѐ.
И. Л. Сельвинский «Ты — гордая, как все, что расцвело!..» (1958)
fig = px.line(df3, y='feet_libre', x='decades')
fig.show()
Дольник¶
Дк4д Свѐтом быва̀ет тьма̀ разбу̀жена
Д4ж В нѐпрекраща̀ющемся̀ поедѝнке.
Дк4д Ты̀сячелѐтья растѐт жемчу̀жина
Д4ж В мя̀коти ра̀ковины̀ ― от песчѝнки.
Вс. А. Рождественский «Светом бывает тьма разбужена…» (1966)
fig = px.line(df10, y='dolnik', x='decades')
fig.show()
Объединяем данные¶
data = {'decades': decades_list_d, 'multi_meters': dec_meters_rel_list, 'rhyme_libre': dec_rhymes_rel_list, 'clausula_libre': dec_clausulas_rel_list, 'feet_libre': dec_feets_rel_list, 'dolnik': dec_dolnik_rel_list, 'tonic': dec_tonic_rel_list}
df = pd.DataFrame(data)
df.head()
| decades | multi_meters | rhyme_libre | clausula_libre | feet_libre | dolnik | tonic | |
|---|---|---|---|---|---|---|---|
| 0 | 1750 | 0.023810 | 0.142857 | 0.171958 | 0.140212 | 0.010582 | 0.039683 |
| 1 | 1760 | 0.050781 | 0.281250 | 0.294922 | 0.304688 | 0.001953 | 0.033203 |
| 2 | 1770 | 0.047904 | 0.203593 | 0.225549 | 0.199601 | 0.003992 | 0.005988 |
| 3 | 1780 | 0.012048 | 0.389558 | 0.401606 | 0.397590 | 0.002008 | 0.002008 |
| 4 | 1790 | 0.018145 | 0.232863 | 0.260081 | 0.167339 | 0.001008 | 0.003024 |
fig = px.line(df, x='decades', y=['multi_meters', 'rhyme_libre', 'clausula_libre', 'feet_libre', 'dolnik', 'tonic'], title='Объединенный график')
fig.show()
Корреляция¶
correlation
| multi_meters | rhyme_libre | clausula_libre | feet_libre | dolnik | tonic | |
|---|---|---|---|---|---|---|
| multi_meters | 1.000000 | -0.414990 | 0.712346 | 0.627519 | 0.851618 | 0.983223 |
| rhyme_libre | -0.414990 | 1.000000 | 0.172042 | 0.091992 | -0.341354 | -0.410649 |
| clausula_libre | 0.712346 | 0.172042 | 1.000000 | 0.931941 | 0.381543 | 0.779847 |
| feet_libre | 0.627519 | 0.091992 | 0.931941 | 1.000000 | 0.255345 | 0.719506 |
| dolnik | 0.851618 | -0.341354 | 0.381543 | 0.255345 | 1.000000 | 0.758373 |
| tonic | 0.983223 | -0.410649 | 0.779847 | 0.719506 | 0.758373 | 1.000000 |
sns.heatmap(correlation, cmap='viridis')
plt.show()
sns.heatmap(correlation, annot=True, annot_kws={"size": 7})
plt.show()
Вафельная диаграмма¶
df_dc
| 1800 | 1850 | 1880 | 1920 | 1960 | |
|---|---|---|---|---|---|
| tonic | 23 | 74 | 27 | 3565 | 2058 |
| feet | 339 | 143 | 198 | 2261 | 1410 |
| rhymes | 348 | 316 | 358 | 1692 | 1660 |
Интегральный показатель¶
plt.scatter(df['decades'], df['feet_libre'], s=df['tonic']*1000, alpha=0.5)
plt.show()
data = {
'name': ['multi_meters', 'rhyme_libre', 'clausula_libre', 'feet_libre', 'dolnik', 'tonic'],
'value': [0.02037, 0.322222, 0.344444, 0.313889, 0.005556, 0.021296]
}
df_radar1 = pd.DataFrame(data)
fig = px.line_polar(df_radar1, r='value', theta='name', line_close=True)
fig.update_traces(fill='toself')
fig.show()
