Неисследованные горизонты силлабо-тоники¶

Борис Орехов

(ИРЛИ РАН)

Силлабо-тоника — это хорошо исследованный материал¶

  1. Все знают, что такое силлабо-тоника.
  2. Классик социологии Харви Сакс считал, что бывает «естественная анализируемость» социальных действий.
  3. Силлабо-тоника обладает «естественной» формализуемостью.
  4. Формализуемость поддается квантификации.

схемы силлабо-тоники

«Естественные» формальные параметры силлабо-тоники так подробно обсчитаны, что М. Л. Гаспаров в свое время высказался радикально: наука о стихе разработана настолько хорошо, что революций там не предвидится. «Методика исследования уже выработана, и здесь требуются только время и способные аспиранты».

Таблица Гаспарова

После Гаспарова¶

  1. Появился поэтический корпус в составе НКРЯ.
  2. Стали доступнее количественные методы исследования и обработки данных.

Новые данные и новые (для стиховедения) методы позволяют ставить новые вопросы.

Потенциальная и реальная силлабо-тоника¶

Любая развитая поэтика создает подробную каталогизацию размеров с подробным перечислением возможных вариантов: гликоней, асклепиадов стих и под.

Круг рамала

Шенгели о размерах

Шенгели Г. Техника стиха. М., 1940. С. 23.

Цезурные эффекты¶

Цезура (в применении к русскому классическому стиху) — это регулярный словораздел.

  • Цезурное наращение
  • Цезурное усечение

цезурное наращение

Подсчеты Шенгели и корпусные данные¶

Шенгели

Стопность: от 2 до 7, $5 * 7 = 35$

7 видов клаузул: м, ж, д, г3, г4, г5, г6 :: $35 * 7 = 245$

4 вида цезурных эффектов: цу, цн1, цн2, цн3 :: $120 * 4 = 480$

$480 + 125 = 605$

Корпус

Стопность: от 1 до 20,

диапазон длины гипердактилической клаузулы подтвердился (в абсолютных числах):

  • г3: 4373,
  • г4: 349,
  • г5: 41,
  • г6: 17

Примеры сверхдлинных строк¶

Х12м Ты̀ вида̀л ли до̀ждь осѐнний, ты̀ слыха̀л ли, ка̀к шуршѝт он, ка̀к змеѝтся бѐз конца̀?

К. Д. Бальмонт. «Ты видал ли дождь осенний, ты слыхал ли, как шуршит он, как змеится без конца...» [Пламя мира] (1914)

Д15ж мѝр -- это: нѐт никого̀ уже бо̀льше! -- и то̀лько о жѝзни -- тако̀й уже тру̀дной -- что вѐчности ка̀чество бу̀дто в ней ѐсть: о тако̀й: оконча̀тельной бу̀дто! --

Г. Н. Айги. Снова: ты с конца : «о все ты подрагиваешь…» (1970)

Х18м Ѐсли тѐбя нѐту ѝ на э̀том свѐте -- / зна̀чит, всѐ напра̀сно. Ѝ напра̀сно пла̀чет / за̀ кусто̀м жасмѝна ма̀льчик о̀б отцѐ.

Е. Б. Рейн. Из старого сонника : «Я еще приеду в этот тесный город...» (1955-1982)

Матрица потенциальности силлабо-тоники¶

Колонки: стопность + цезурные эффекты: 1, 2, 2цу, 2цн1, 2цн2, 2цн3, 3, 3цу, 3цн1, 3цн2 … 11, 11цу, 11цн1, 11цн2, 11цн3, 12, 12цу, 12цн1, 2цн2, 12цн3

Строки: метр + клаузула: Хм, Хж, Хд, Хг3, Хг4, Хг5, Хг6, Ям, Яж, Яд, Яг3, Яг4, Яг5, Яг6 …

35 строк × 96 колонок = 3360

Матрица потенциальности силлабо-тоники

Реальные размеры в корпусе¶

Без цезурных эффектов

«Бинарная» тепловая карта: 248 размеров

Тепловая карта размеров русской силлабо-тоники

Настоящая тепловая карта

Тепловая карта размеров русской силлабо-тоники

С цезурными эффектами: $+ 362$

«Бинарная» тепловая карта

Тепловая карта с цезурными эффектами

Корпус и Шенгели¶

  • Уточнение: не может быть цезурных усечений у Я и Ан. $3360 - 266 = 3094$

  • Реальных размеров в корпусе: $248 + 362 = 610$

  • У Шенгели (потенциальных размеров): 605 (!)

  • Удивительно точная оценка при неверных посылках (ошибка в оценке допустимой стопности)!

  • Зполненность ячеек в матрице потенциальности: 18,15 %

Зачем нужны разные размеры?¶

  • Размеры — это информация
  • Ситуация обратная по сравнению с частотным словарем.
  • В частотном словаре наиболее значимо то, что частотно.
  • Наиболее информативны редкие поэтические размеры.
  • Я4 не информативен.

Метрические раритеты¶

  • 244 размера употребляются только однажды

Я8г таѝнственно̀ и зо̀рко смо̀трится̀ -- еѐ светѝло врѐменное

Г. Н. Айги. Утро -- при детстве другого : «что облекаешь? что ты оставляешь...» (1966)

Аф1м~Аф2м Держа̀ тако̀й же горшо̀к

Н. М. Минский. In Memoriam. III : «Усталый старик...» <In Memoriam, 3 : In Memoriam> (1907-1922)

  • 53 размера употребляются только дважды

Х1д~Х1д Пла̀чется, мѐчется.

И. Г. Эренбург. «Я в тени своей ногами путался...» (1915)

Х1д~Х1д Мѐчены, мѐчены

А. А. Ахматова. Застольная : «Под узорной скатертью...» <Песенки> (1955)

Теория информации и стих¶

А что нам нравится и не нравится, – это определяется напластованием огромного множества впечатлений от всего прочитанного нами, начиная с первых детских стишков и до последних самых умных книг. Если новое стихотворение целиком похоже на то, что мы уже много раз читали, то оно ощущается как плохая, скучная поэзия; если оно решительно ничем не похоже на то, что мы читали, то оно ощущается как вообще не поэзия; хорошим нам кажется то, что лежит где-то посередине между этими крайностями, а где именно – определяет наш вкус, итог нашего читательского опыта. (М. Л. Гаспаров)

А. Моль

Моль А. Искусство и ЭВМ / А. Моль, В. Фукс, М. Касслер. М.: Мир, 1975.

Метрические раритеты в частотном окружении¶

Да, такие случаи есть: остальные строки не менее 7 раз: 244 текста

В. А. Жуковский «Странствующий жид» (1851-1852)

Я5ж,м Я1ж~Я4ж, Я2ж~Я3ж, Я3ж~Я2ж, Я4ж~Я1ж, Я3,4,6ж,м, Я7ж

Я5м В своѝх дома̀х, и всѐ тяжѐлым сно̀м
Я1ж~Я4ж Засну̀ло. И во̀т над э̀той тѐмной бѐздной
Я5м От ту̀ч, их за̀тмева̀вших, нѐбеса̀,
Я6ж Уж по̀лныѐ звезда̀ми но̀чи, ста̀ли чѝсты...

Соотношение размеров¶

«98 % всей персидской поэзии написано только 28 размерами <остальные 2 %> приходится на 227 размеров» (Азер А. А. Персидское стихосложение и рифма. с. 52)

  • 66 % строк русской силлабо-тоники написано 10 размерами
  • 76 % строк — 15 размеров
  • 85 % — 25 размеров
  • 89 % — 30 размеров
  • 91 % — 35 размеров

50 размеров покрывают больше 95 % силлабо-тонических строк поэтического корпуса

строки и размеры силлабо-тоники

Машинное обучение и силлабо-тоника¶

Машинное обучение — это

  • Концепция, в которой предполагается создание некоторой модели, умеющей принимать решения,
  • но при этом алгоритм сам «обозревает» материал (обучающие данные), «обучается»
  • и статистически выводит закономерности
  • распознавание паттернов посредством статистической индукции

Что нужно, чтобы машина приняла решение об определении размера?¶

То же, что нужно и человеку

  • Ключевое понятие силлабо-тоники — это ударение (ударный слог).
  • Этот тезис выглядит как трюизм.
  • Кажется, никто до сих пор никто не пытался его оспорить.
  • Сама идея отрицания ключевой роли ударения выглядит абсурдно.
In [2]:
from ru_accent_poet import accent_line

accent_line('Мой дядя самых честных правил')
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.14) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Out[2]:
"Мой дя'дя са'мых че'стных пра'вил"

Стихи, порожденные рекуррентной символьной сетью¶

И так же всё теперь слова.
Проснись ль скорей и воздух дал.
Но вот к конце весенних дней
И облачное на челе,
Спешит полутвердил я в небе,
И не сказал бы все врага,
И от меня в нем был лишь славой.

Сеть обучена на метрически гомогенных данных.

Так выглядят обучающие данные:

…
Заснул и я, но тяжек сон
Того, кто горем удручен.
Во сне я видел, что герой
Моей поэмы роковой
С полуобритой головой,
В одежде арестантских рот
Вдоль по Владимирке идет.
…

Вопрос¶

  • Обучающая выборка не содержит данных об ударении (!)
  • Генеративная модель «угадывает» размер без ударения.
  • Нейросети этой архитектуры умеют не только порождать текст, но и классифицировать текст.
  • Нужно попробовать в «обратную» сторону: угадает ли размер в сходных условиях классифицирующая модель?

  • Если нет, то наше представление о размере и ударении было верным.
  • Если да, то ударение не обязательно для определения размера, что мы раньше назвали абсурдным.

Машинное (глубокое) обучение здесь не прикладной, а исследовательский инструмент¶

  • Это не прикладной, а исследовательский вопрос.
  • Машинное обучение позволяет доказать наличие системы там, где мы не знаем, есть ли система.
  • Машинное обучение не позволяет опровергнуть наличие системы.

Бинарная классификация¶

  • Многовариантная классификация — это заведомо тяжелая задача.
  • Если не получится, то это ничего не будет значить.
  • Поэтому начнем с бинарной классификации.

Отбор материала¶

  • Сеть может «понять», что на размер работает количество гласных.
  • Поэтому проверим, умеет ли сеть различать размеры с одинаковым числом слогов.
  • Сеть может понять, что ударение — это «слово» (группа графем между пробелами).
  • Поэтому проверим, умеет ли сеть различать размеры с одинаковым числом иктов.

8 слогов¶

  • Я4м
  • Х4ж
  • Д3ж
  • Аф3м
  • Ан2д

Обучающие данные:¶

  • 100 000 строк Я4м
  • 100 000 строк Х4ж

Пример

"Я4м": "А сердцем больше щедр и благ", "Поверхность вод позолотит", "К ее пленительным устам"…
"Х4ж": "«Ничего... Жену спровадил", "Нам лишь чудо путь укажет", "О бананах долгоплодых"…

  • Каждой строке соответствует метка размера.
  • Модель обучается тому, что такая последовательность букв соответствует такому размеру.
  • Нет данных об ударении! Только буквы.
In [ ]:
# Бинарная классификация Я4м и Х4ж

n_categories_2 = 2
n_hidden = 1024
rnn_bin = RNN(n_letters, n_hidden, n_categories_2)

for iter in range(1, n_iters + 1):
    category, line, category_tensor, line_tensor = randomTrainingExampleBin()
    output, loss = train(category_tensor, line_tensor)
    current_loss += loss

    # Print iter number, loss, name and guess
    if iter % print_every == 0:
        guess, guess_i = categoryFromOutputBin(output)
        correct = '✓' if guess == category else '✗ (%s)' % category
        print('%d %d%% (%s) %.4f %s / %s %s' % (iter, iter / n_iters * 100, timeSince(start), loss, line, guess, correct))

    # Add current loss avg to list of losses
    if iter % plot_every == 0:
        all_losses.append(current_loss / plot_every)
        current_loss = 0

Оценка модели¶

Обучили модель. Теперь протестируем ее.

Данные для оценивания:

30 000 строк, которые сеть не видела в процессе обучения.

Confusion matrix

In [11]:
df
Out[11]:
точность полнота f1-мера всего
Я4м 0.6961 0.8827 0.7783 14947
Х4ж 0.8412 0.6174 0.7121 15053
In [12]:
accuracy
Out[12]:
0.7495
  • Это значит, что в 75 % случаев размер определяется правильно.
  • Если бы речь шла о случайности, то значение было бы 50 %.
  • В предельной формулировке это значит, что ударения не нужны для определения силлабо-тонического размера.
  • Разумеется, это предельная формулировка.
  • Конечно, ударения нужны — для точного определения размера.
  • Но эксперимент показывает, что размер «звучит» и на других уровнях текста, кроме просодического.
  • Это удивительный факт.
  • До эксперимента он выглядел абсурдно.

Ошибки модели¶

  • «Виноват, прости мне, Зоя / Я4м ✗ (Х4ж)
  • Я спешу склонить колена / Я4м ✗ (Х4ж)
  • Вручим пакет, тогда -- гвозди / Х4ж ✗ (Я4м)
  • Стакан доступен всем живым / Х4ж ✗ (Я4м)

Почему так вышло?¶

  • Модель ориентируется только на распределения букв (не слов!).
  • Самыми частотными сочетаниями букв в тексте наряду со служебными словами являются морфологические форманты (суффикс+окончание).
  • Форманты различают части речи.
  • Благодаря лингвистике стиха мы знаем, что распределение частей речи в строке не случайны.

Прилагательные предпочитают вторую половину строки, особенно третью стопу (...) Что касается наречий, то они предпочитают первую половину строки (Лингвистика стиха, с. 67)

  • По всей видимости, сеть выучивает тенденции в распределении морфологических форм в строке, характерном для конкретного размера.
  • Это только тенденции, а не строгие законы,
  • поэтому точность определения размера не слишком высока (но и не случайна)
  • Схожие наблюдения уже были сделаны на материале стилеметрического анализа:

Sapkota, U., Bethard, S., Montes, M., & Solorio, T. (2015). Not all character n-grams are created equal: A study in authorship attribution. In Proceedings of the 2015 conference of the North American chapter of the association for computational linguistics: Human language technologies (pp. 93-102).

Models based only on affix and punct n-grams performed as well as models with all n-grams regardless of whether it was a single-domain or cross-domain authorship attribution task.