1 Введение

Понятие любви занимает в культуре латинского Средневековья особое место: оно располагается на пересечении богословия, придворной этики и социально-правового порядка. За одной лексемой старофранцузского языка — amor (в графических вариантах amour, amur, amors) — в действительности стоит не единое значение, а пучок различных концептов. Это и amor Dei, любовь к Богу и Богоматери, центральная для религиозной литературы; и fin’amor, облагораживающая куртуазная любовь лирики и романа; и архаический феодальный смысл — amor как связь верности, приязнь вассала к сеньору. Эти значения не были для средневекового читателя отдельными словами: они сосуществовали в одной лексеме, и различение их традиционно оставалось задачей интерпретатора, опирающегося на чтение контекста.

Настоящая работа задаётся вопросом, можно ли подойти к этому различению формально — описав не значение amor как таковое, а её лексико-семантическое окружение, то есть совокупность слов, с которыми лексема систематически соседствует в корпусе. Метод, к которому мы обращаемся, — анализ совстречаемости (co-occurrence), хорошо разработанный в корпусной лингвистике, но сравнительно редко применяемый к старофранцузскому материалу с его орфографической вариативностью и неполной автоматической разметкой. Мы используем Base de Français Médiéval (BFM) — крупнейший аннотированный корпус средневекового французского языка, разрабатываемый в ENS de Lyon, — и ограничиваемся текстами XII–XIII веков.

Работа преследует две связанные цели, и обе для нас равноправны. Первая — содержательная: выявить, какие типы любви старофранцузский язык различает лексически, и показать, как одно и то же сочетание (например, fin amor) наполняется разным смыслом у разных авторов. Вторая — методологическая: продемонстрировать на конкретном кейсе, что́ анализ совстречаемости даёт медиевисту, где он надёжен, а где обманывает, и почему количественный шаг не заменяет, а лишь направляет качественное чтение. Мы намеренно описываем весь путь исследования, включая принятые решения и сделанные отказы, поскольку убеждены, что для цифровой медиевистики прозрачность процедуры есть часть научного результата: ошибки, которые подстерегают исследователя средневекового корпуса, поучительны не менее, чем итоговые таблицы.

Главный тезис, к которому мы придём, можно сформулировать заранее. Co-occurrence обнаруживает устойчивую структуру семантического поля amor и указывает на точки вариативности, которые стоит прочитать внимательно; но окончательную интерпретацию — какой именно тип отношений стоит за данным сочетанием в данном тексте — даёт только возврат к самому тексту. Метод работает как навигатор, а не как оракул.

2 Состояние вопроса

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

Первая — медиевистическая семантика любви. Понятие fin’amor (часто передаваемое как «куртуазная любовь») со времён работ конца XIX — XX века остаётся предметом дискуссий: спорят и о его содержании, и о самой правомерности обобщающего термина. Параллельно богословская традиция — прежде всего цистерцианская, с центральной фигурой Бернарда Клервоского и его комментарием на «Песнь песней» — разрабатывает учение о восхождении от любви плотской (amor carnalis) к любви духовной. Наконец, историки языка и общества указывают на социально-правовой пласт значения amor, связанный с феодальными отношениями. Эти три измерения обычно изучаются по отдельности и преимущественно методом пристального чтения избранных пассажей.

Вторая традиция — количественные методы изучения сочетаемости. Анализ коллокаций и мер ассоциации (log-likelihood, взаимная информация, log-Dice и др.) давно является стандартным инструментом корпусной лингвистики; на нём же основаны дистрибутивные модели значения. Однако применение этих методов к историческим корпусам сопряжено с трудностями: орфографическая нестабильность, отсутствие устойчивой нормы, неполнота и неверифицированность автоматической лемматизации. Именно на этом стыке — между качественной семантикой любви и количественным анализом сочетаемости — располагается наша работа, и именно поэтому методологическая рефлексия для нас неотделима от предметных выводов.

3 Корпус и свойства данных

3.1 Состав среза

Материалом служит дистрибутив BFM2022. Из полного корпуса (219 текстов) мы отобрали тексты, датируемые в метаданных XII или XIII веком по дате сочинения (date type="compo"), а не по датировке рукописи. Это различение принципиально: нас интересует язык эпохи создания текста, а не его позднейшего списка. Отбор по веку оказался однозначным — в метаданных BFM2022 для нашего среза не встретилось смешанных датировок «XII–XIII», так что предусмотренная нами третья, «рубежная» категория оказалась пустой. Мы сознательно отмечаем, что это свойство источника (BFM приписывает каждому тексту один век по преобладанию), а не доказательство отсутствия пограничных памятников.

n_texts <- length(unique(tk$doc_id))
n_amor  <- sum(tk$is_amor)
n_amor_texts <- length(unique(tk$doc_id[tk$is_amor]))
tibble(
  Показатель = c("Текстов в срезе (произведений)",
                 "Вхождений *amor* (сущ.)",
                 "Текстов, содержащих *amor*"),
  Значение = c(n_texts, n_amor, n_amor_texts)
)

Объект исследования — существительное amor. На этапе его выделения мы столкнулись с первой из методологических трудностей, о которых пойдёт речь ниже: лемма любви представлена в BFM2022 не одним, а несколькими вариантами (amor, amour, amors, amur и их комбинации, порождённые автоматическим лемматизатором). Учёт всех этих вариантов дал около 3700 вхождений в более чем девяноста текстах.

3.2 Неравномерность распределения

Распределение вхождений amor по текстам сильно неравномерно. Несколько крупных памятников дают непропорционально большую долю материала.

amor_by_text <- tk %>% filter(is_amor) %>% count(doc_id, sort = TRUE)

amor_by_text %>% slice_head(n = 25) %>%
  mutate(doc_id = factor(doc_id, levels = rev(doc_id))) %>%
  ggplot(aes(n, doc_id)) +
  geom_col(fill = "#B5651D", width = 0.7) +
  labs(title = "Вхождения *amor* по текстам",
       subtitle = "Топ-25 памятников корпуса XII–XIII вв.",
       x = "Число вхождений", y = NULL) +
  theme_amor
Распределение вхождений *amor* по текстам (топ-25). Несколько памятников дают непропорционально большую долю вхождений.

Распределение вхождений amor по текстам (топ-25). Несколько памятников дают непропорционально большую долю вхождений.

top4 <- amor_by_text %>% slice_head(n = 4)
share <- round(100 * sum(top4$n) / sum(amor_by_text$n), 1)
top4 %>% mutate(`доля корпуса, %` = round(100 * n / sum(amor_by_text$n), 1))

Как видно, на четыре текста приходится около 26.2% всех вхождений amor. Среди них — «Чудеса Богоматери» Готье де Куанси (gcoin), «Роман о Розе» (rosem), «Энеида» (eneas), «Тристан» Тома (thomas). Эта концентрация не является дефектом, который следовало бы «выправлять» искусственным балансированием; она есть свойство самого материала: любовь как тема естественно тяготеет к одним жанрам и избегает других (в хартиях и псалтырях amor встречается редко). Однако концентрация имеет последствия для интерпретации, и далее мы вводим специальную меру — рассеяние (dispersion), — позволяющую отличить общекорпусные коллокаты от особенностей отдельного памятника.

3.3 Слой данных, которым мы не располагаем

Особого внимания требует вопрос об орфографии — он будет важен при обсуждении персонификации amor. Тексты BFM передаются по критическим печатным изданиям (для исследуемых памятников — изданиям Кунстманна, Валленскёльда и др.), а не по цифровым факсимиле рукописей. В структуре разметки предусмотрено поле для оригинального написания (#orig), однако для наших текстов оно не заполнено: форма слова в корпусе отражает орфографию издателя, включая расстановку прописных букв. Это означает, что распределение написаний Amor / amor (с прописной и строчной) нельзя использовать как свидетельство о графике источника и, тем более, как основание для выводов о персонификации лексемы. Мы вернёмся к этому ограничению в соответствующем разделе; здесь же фиксируем его как фундаментальное свойство данных.

Наконец, лемматизация и частеречная разметка в BFM2022 выполнены автоматически (TreeTagger, модели fro/fro2) и в подавляющем большинстве случаев помечены как непроверенные (non vérifiée). Это не лишает их аналитической ценности, но обязывает к осторожности и к проверке существенных результатов обращением к самим строкам текста.

4 Метод

Наш аналитический конвейер состоит из трёх шагов: построение общего профиля совстречаемости amor; извлечение синтаксически мотивированных определений amor; и качественное чтение контекстов (KWIC). Ниже мы описываем каждый шаг вместе с теми решениями и отказами, которые он потребовал.

4.1 Единица контекста и окно

«Контекстом» вхождения amor мы считаем окно в пять словоформ слева и справа (±5), не выходящее за границу синтаксической единицы. Здесь важно одно техническое, но содержательно мотивированное решение. Корпус на две трети состоит из стихотворных текстов (по нашему срезу — 77 стихотворных против 45 прозаических произведений), и наивное окно фиксированной ширины «перешагивало» бы границы предложений и стихов, захватывая слова из соседних, не связанных с amor фраз. Поэтому окно ограничено пределами контекстной единицы: предложения <s> там, где оно размечено, и стиховой строки <lb> там, где членение на предложения отсутствует. Из окна исключаются знаки препинания и сама лексема amor.

4.2 Меры ассоциации и их противоположные слабости

Для оценки силы связи между amor и словами её окружения мы используем не одну, а две меры — и это центральный методологический пункт. Log-likelihood (LL, G², Dunning 1993) измеряет, насколько наблюдаемая совстречаемость отклоняется от ожидаемой при случайном распределении; высокие значения означают сильную, не случайную связь, отрицательные — отталкивание. Log-Dice (Rychlý 2008) измеряет тесноту «склейки» двух слов и, в отличие от LL, не зависит от размера корпуса.

Ключевое наблюдение состоит в том, что эти меры ошибаются в противоположные стороны. LL завышает редкие слова, локально сконцентрированные в одном пассаже: слово, встретившееся в корпусе несколько раз и все эти разы — рядом с amor в одном фрагменте, получит высокий LL, не будучи общеязыковым коллокатом. Log-Dice, напротив, вознаграждает абсолютную частоту совместного появления и потому поднимает наверх служебные слова (estre, avoir, отрицание), которые соседствуют с amor просто потому, что соседствуют со всем. Надёжным коллокатом мы считаем слово, получающее высокую оценку по обеим мерам одновременно; именно их пересечение, а не каждая мера по отдельности, очерчивает семантическое ядро amor.

4.3 Рассеяние как контроль доминирования

К двум мерам мы добавляем третью характеристику — рассеяние (dispersion): число различных текстов, в которых данное слово встречается в окне amor. Эта величина прямо отвечает на проблему неравномерного распределения корпуса. Коллокат, встречающийся рядом с amor в одном-единственном тексте, отражает идиостиль или даже единственный пассаж; коллокат с высоким рассеянием — общее свойство языка. Мы не удаляем доминирующие тексты из корпуса (это исказило бы материал), но делаем их влияние измеримым и видимым.

4.4 Стоп-лист

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

5 Четыре трудности и почему мы приняли именно эти решения

Прежде чем перейти к результатам, мы считаем необходимым подробно описать четыре методологические трудности, с которыми столкнулись. Они типичны для работы со средневековым корпусом, и способ обращения с ними определяет достоверность всего последующего анализа. Мы излагаем их не как отчёт о неудачах, а как часть метода: каждая из них могла бы — будучи незамеченной — исказить результат.

Первая трудность: вариативность леммы. Первоначальный отбор вхождений amor, основанный на двух наиболее очевидных вариантах леммы (amour, amur), привёл к систематической потере части материала. В частности, из выборки полностью выпали романы Кретьена де Труа, в которых amor — одно из ключевых слов: у Кретьена лексема оказалась размечена иными вариантами леммы (amors, amor). Обнаружить пропуск удалось лишь потому, что отсутствие столь важного автора противоречило предметному знанию. Решение — расширить фильтр до всех засвидетельствованных вариантов леммы (amor, amour, amors, amur), отделив их при этом от однокоренных, но иных слов (ami «друг», amitié «дружба», глагол amer). После исправления число вхождений возросло почти вдвое. Этот эпизод показывает, что в работе со средневековым корпусом фильтр по лемме не может быть задан априорно — он требует эмпирической проверки полноты.

Вторая трудность: членение на предложения. Часть текстов (включая романы Кретьена) в BFM2022 не размечена на предложения <s>. Процедура сбора токенов, изначально опиравшаяся на проход по предложениям, для таких текстов молча возвращала пустой результат — и тексты выпадали из корпуса целиком, без сообщения об ошибке. Решение — переписать сбор токенов так, чтобы он не зависел от наличия <s>, определяя контекстную единицу гибко (по предложению там, где оно есть, иначе по стиховой строке <lb>). Урок состоит в том, что разнородность разметки внутри одного корпуса требует процедур, устойчивых к отсутствию любого отдельного слоя.

Третья трудность: многотомные тексты и дублирование. Ряд произведений представлен в корпусе несколькими файлами-томами под одним именем (так, «Чудеса Богоматери» Готье де Куанси — четырьмя). При сопоставлении токенов с метаданными по имени текста это породило кратное дублирование строк: метаданные содержали по одной записи на том, и операция соединения размножала каждый токен. Дефект проявился не в основных таблицах, а лишь в одном из промежуточных представлений, где слова оказались учетверены; проверка показала, что в исходных токенах дублирования нет, а искажение возникало на соединении. Решение — сводить метаданные к одной записи на произведение перед соединением. Эпизод подчёркивает, сколь внимательной должна быть работа со структурой корпуса, где «один текст» и «один файл» не совпадают.

Четвёртая трудность: локальный шум против общекорпусного сигнала. При ранжировании коллокатов по log-likelihood в верхней части списка обнаружились редкие слова с идентичными частотными показателями — признак того, что все они происходят из одного плотного пассажа (перечисления пороков и занятий) в одном тексте. Именно для отделения такого локального шума от подлинных коллокатов и служит введённая нами мера рассеяния: слова из единственного пассажа получают рассеяние, равное единице, и легко опознаются. Мы не удаляем их произвольно, но фильтруем по порогу рассеяния, который декларируем явно.

Все четыре решения объединяет общий принцип, который мы кладём в основу метода: проверять, прежде чем утверждать. Количественный результат на средневековом корпусе следует подвергать сомнению и сверять с предметным знанием и с самим текстом, поскольку источники искажения многочисленны и не всегда заметны.

6 Результаты I: структура семантического поля amor

Применив описанный конвейер, мы получаем профиль лексико-семантического окружения amor — ранжированный по силе связи список коллокатов с указанием рассеяния. Ниже приведено его ядро (коллокаты, встречающиеся в окне amor не менее чем в трёх различных текстах).

prof_core <- prof %>% filter(dispersion >= 3) %>%
  select(item, O11, dispersion, LL, logDice) %>%
  slice_head(n = 40)
prof_core

Существенно, что ни одна из семантических групп, которые мы выделяем ниже, не была задана заранее: они проступают из самого распределения коллокатов. Профиль amor естественно расслаивается на несколько связных зон.

# Экспертная разметка ядра коллокатов по семантическим зонам.
# (Разметка выполнена вручную на основе значений старофранцузских лемм;
#  она интерпретативна и приводится как аналитический инструмент.)
zones <- tribble(
  ~item,        ~zone,
  "aimer",      "аффект",      "amer",       "аффект",
  "éprendre",   "аффект",      "straindre",  "аффект",
  "destreindre","аффект",      "sousprendre","аффект",
  "épreindre",  "аффект",      "emprendre",  "аффект",
  "désir",      "аффект",      "courage",    "аффект",
  "fin",        "куртуазный",  "fou",        "куртуазный",
  "loyal",      "куртуазный",  "doux",       "куртуазный",
  "joie",       "куртуазный",  "jouir",      "куртуазный",
  "druerie",    "куртуазный",  "déduit",     "куртуазный",
  "vrai",       "куртуазный",  "dame",       "куртуазный",
  "ami",        "куртуазный",
  "dieu",       "религиозный", "choeur",     "религиозный",
  "prier",      "религиозный", "servir",     "религиозный",
  "desservir",  "религиозный", "grâce",      "религиозный",
  "charité",    "религиозный", "charnel",    "религиозный",
  "mère",       "религиозный",
  "honneur",    "феодальный",  "seigneur",   "феодальный",
  "octroyer",   "феодальный",  "donner",     "феодальный",
  "amender",    "феодальный",  "requérir",   "феодальный",
  "fei",        "феодальный",  "acquérir",   "феодальный",
  "conquérir",  "феодальный",
  "haine",      "антонимия",   "haür",       "антонимия",
  "douleur",    "антонимия",   "perdre",     "антонимия",
  "faux",       "антонимия"
)

prof_zoned <- prof %>% inner_join(zones, by = "item") %>%
  filter(dispersion >= 3)
prof_zoned %>%
  mutate(item = reorder_within(item, LL, zone)) %>%
  ggplot(aes(LL, item, fill = zone)) +
  geom_col(width = 0.7) +
  facet_wrap(~ zone, scales = "free_y", ncol = 2) +
  scale_fill_manual(values = pal_zone, guide = "none") +
  tidytext::scale_y_reordered() +
  labs(title = "Семантические зоны окружения *amor*",
       subtitle = "Коллокаты с рассеянием ≥ 3, сила связи по log-likelihood",
       x = "log-likelihood", y = NULL) +
  theme_amor
Ядро коллокатов *amor*, сгруппированное по семантическим зонам. Размер связи — log-likelihood; цвет — зона. Зоны выделены экспертно по значениям лемм.

Ядро коллокатов amor, сгруппированное по семантическим зонам. Размер связи — log-likelihood; цвет — зона. Зоны выделены экспертно по значениям лемм.

Первая зона — аффект и захваченность чувством. Её образует группа глаголов, чьё общее значение — «охватывать», «теснить», «застигать»: éprendre, straindre, destreindre, sousprendre, épreindre, emprendre, а также désir и courage (в старофранцузском — «сердце, расположение духа»). Это телесная, почти физиологическая метафорика любовного аффекта: amor предстаёт силой, которая прихватывает и сжимает человека.

Вторая зона — куртуазная доктрина: fin (fin’amor), fou (fol amor), loyal, doux, joie, jouir, druerie, déduit, vrai, при именах куртуазных ролей dame и ami. Это терминологическое ядро придворной любви.

Третья зона — религиозная любовь: dieu, choeur (клир, хор), prier, servir, desservir, grâce, charité (прямое соответствие богословскому caritas) и её антипод charnel, а также mère — Богоматерь. Здесь amor встроена в богослужебный и богословский словарь.

Четвёртая зона, которую мы считаем особенно важной, поскольку она нередко выпадает из внимания исследователей, — феодально-социальная связь: honneur, seigneur, octroyer (жаловать), donner, amender, requérir, acquérir, conquérir и, что показательно, fei (вера, верность). В этом слое amor — не чувство, а отношение лояльности, дара и службы, отсылающее к феодальному порядку.

Наконец, пятая зона — антонимия: любовь определяется через свои противочлены — haine и haür (ненависть), douleur, perdre, faux.

Уже этот первый результат имеет двоякое значение. Содержательно он показывает, что множественность amor, известная медиевистике из качественного чтения, проявляется и формально, в распределении соседних слов. Методологически он демонстрирует, что co-occurrence способна выделить осмысленную семантическую структуру без предварительного задания категорий — при условии, что приняты меры против характерных искажений (служебная лексика, локальный шум, доминирование текстов).

7 Результаты II: типология определений amor

Профиль окружения отвечает на вопрос, с чем соседствует amor. Но наша вторая, более тонкая задача — установить, как язык определяет саму любовь, приписывая ей прилагательные и зависимые имена. Поэтому мы отдельно извлекаем все определения amor, разделяя их на три синтаксических типа: прилагательное, примыкающее непосредственно к лексеме (fine amor, fol amor); именное определение в генитиве примыканием, характерном для старофранцузского (amor Deu «любовь Бога»); и предложную группу (amor de la dame, amor de la char). Важно, что мы ловим именно синтаксически связанные определения, а не любые прилагательные в окне, — иначе в выборку попал бы шум.

# Таблицы определений (mods) строятся функцией all_modifiers(tk).
# Объект уже в памяти (см. setup); если нет — пересобирается там же.
if (!exists("mods")) mods <- all_modifiers(tk)
adj_tab <- mods %>% filter(type == "ADJ") %>%
  count(modifier, name = "n") %>%
  left_join(mods %>% filter(type=="ADJ") %>% distinct(modifier, doc_id) %>%
              count(modifier, name = "texts"), by = "modifier") %>%
  arrange(desc(n)) %>% slice_head(n = 15)
adj_tab %>%
  mutate(modifier = reorder(modifier, n)) %>%
  ggplot(aes(n, modifier)) +
  geom_col(fill = "#7B3F61", width = 0.7) +
  geom_text(aes(label = paste0(texts, " текст.")), hjust = -0.1, size = 3, color = "grey35") +
  scale_x_continuous(expand = expansion(mult = c(0, 0.18))) +
  labs(title = "Прилагательные при *amor*",
       subtitle = "Частота сочетания и число текстов, в которых оно встречается",
       x = "Число вхождений", y = NULL) +
  theme_amor
Прилагательные-определения *amor* (топ по частоте, с числом текстов).

Прилагательные-определения amor (топ по частоте, с числом текстов).

Палитра прилагательных образует лексическую типологию любви. Наиболее частотны градуальные, оценочные определения — grant amor «великая любовь» и bon amor «добрая любовь». За ними следует терминологическое ядро: fin amor (засвидетельствовано в семнадцати текстах — широчайшая база для сопоставления), fol amor «безумная любовь», loyal, charnel «плотская», vrai «истинная», faus «ложная», vilain «низкая». Каждое из этих прилагательных задаёт особый тип отношения, и именно их вариативность по текстам мы рассматриваем далее.

Генитив примыканием (amor Deu) почти исключительно сакрален: он образуется с именами Бога и Христа (Deu, Dieu, Crist) — характерная для старофранцузского конструкция «любовь Бога» без предлога. Предложные же группы дают самую богатую семантику: наряду с сакральным de Dieu, de vierge они включают социально-родственное (de mère, de seigneur, de dame, de ami) и — существенно для дальнейшего — оппозицию мира и духа (de la char «плоти», del siecle «мира сего», de cest monde).

8 Результаты III: один термин — разные смыслы (fin amor)

Центральный для нашей второй задачи случай — fin amor. Это сочетание встречается в семнадцати текстах, и чтение его контекстов (KWIC) показывает, что за единым термином стоят заметно различные типы отношений. Здесь количественный метод исчерпывает себя и уступает место качественному чтению: сама по себе сочетаемость говорит лишь, что fin amor частотна и устойчива, но чем она является у того или иного автора, можно установить только по строкам.

В лирике труверов fin amor предстаёт силой, которой поэт служит и которая им повелевает: у Тибо Шампанского (tdechamp) она «призывает» (semont), «просит» (prie), «теснит и порабощает» (destraint et mestroie) поэта, который ей «вверяет себя» (m’otroi). С грамматической точки зрения здесь существенно, что fin amor систематически занимает позицию субъекта глаголов, обозначающих действия лица — призыва, повеления, принуждения. Это наблюдение измеримо и не зависит от орфографии; мы намеренно воздерживаемся от вывода о «персонификации» amor на основании прописной буквы в написании, поскольку, как показано выше, расстановка прописных в нашем корпусе принадлежит издателю, а не источнику.

У Готье из Арраса (eracle) то же сочетание сопряжено со страданием и гибелью: «пусть с позором умрёт тот, кто умирает за истинную fine amor». В романном тристановском регистре у Тома (thomas) fine amur — это верность, скрепляющая любящих: «к вам питаю столь fine amur, друг». А в религиозном контексте — у Готье де Куанси (gcoin) и в дидактическом «Образе мира» (ImMondePr) — куртуазный термин переносится на сакральный или интеллектуальный объект: fine amor к Богоматери или даже «fine amor мудрости» (de sapience).

Таким образом, fin amor — не единое понятие, а форма, наполняемая разным содержанием в зависимости от текста: облагораживающее служение у труверов, смертельное испытание у Готье из Арраса, верность у Тома, духовная любовь у Готье де Куанси. Это и есть искомое «различение контекстов»: метод указал на сочетание, достойное внимания, а чтение раскрыло его многозначность.

Контраст с антонимическим сочетанием fol amor («безумная любовь») подтверждает картину и делает её измеримой. Если fin amor окружена глаголами призыва, служения и дара, то fol amor — глаголами избегания, проклятия и гибели: от неё «остерегаются» (se garder), её «проклинают» (maudire); тот, «кто берётся за fol amor, всегда грешит» (adés peche), она «убивает тело и душу». Один и тот же грамматический тип (прилагательное при amor) помещён в противоположную оценочную и акциональную среду. Это различие выводится непосредственно из сочетаемости, без каких-либо допущений.

9 Результаты IV: оппозиция сакрального и плотского как авторская стратегия

Наиболее тонкий результат касается оппозиции amor сакральной и amor плотской/мирской. Сопоставив определения двух полюсов — с одной стороны de Dieu, de Crist, de vierge, saint; с другой de la char, del siecle, charnel, fol — по текстам, мы обнаруживаем, что эта оппозиция работает не только между текстами, но и внутри отдельных произведений, причём у разных авторов — по-разному.

sacre_lemmas <- c("de Dieu","de Deu","de Crist","de vierge","de choeur","saint",
                  "Deu","Dieu","Diu","Dé","de mère")
charnel_lemmas <- c("de chair","de+le siècle","de monde","charnel","de folie",
                    "vilain","fou","de la char","de cest monde","de+le cors")

opp <- mods %>%
  mutate(pole = case_when(modifier %in% sacre_lemmas ~ "сакральное",
                          modifier %in% charnel_lemmas ~ "плотское",
                          TRUE ~ NA_character_)) %>%
  filter(!is.na(pole)) %>%
  count(doc_id, pole)

both <- opp %>% count(doc_id) %>% filter(n == 2) %>% pull(doc_id)

opp %>% filter(doc_id %in% both) %>%
  ggplot(aes(n, reorder(doc_id, n), fill = pole)) +
  geom_col(position = "dodge", width = 0.7) +
  scale_fill_manual(values = c("сакральное" = "#2E5E4E", "плотское" = "#B5651D"),
                    name = NULL) +
  labs(title = "Сакральное и плотское в определениях *amor*",
       subtitle = "Тексты, где представлены оба полюса",
       x = "Число определений", y = NULL) +
  theme_amor + theme(legend.position = "top")
Распределение определений *amor* по двум полюсам (сакральное / плотское) в текстах, где представлены оба. Видно, что оппозиция реализуется внутри отдельных произведений.

Распределение определений amor по двум полюсам (сакральное / плотское) в текстах, где представлены оба. Видно, что оппозиция реализуется внутри отдельных произведений.

Два текста особенно показательны. У Бернарда Клервоского (в старофранцузском переводе проповедей на «Песнь песней», SBernCant) оппозиция отрефлексирована и снята: плотская любовь прямо называется «доброй» (ceste charnéz amors est bone), а сам автор аналитически «именует эту любовь плотской» (si apele je ceste amor charnel), рассуждая о восхождении от «любви плоти» (amor de la char) к «святейшей любви» Христа. Здесь amor charnel — не отвергаемый полюс, а ступень богословского пути, что соответствует известной цистерцианской диалектике любви.

У Готье де Куанси (gcoin) та же оппозиция, напротив, непримирима и морализована. Сакральная amor de Dieu описывается языком рыцарского завоевания — её нужно «завоевать» (повторяющаяся формула por l’amor de Dieu conquerre), она «воспламеняет» и «зажигает» душу (esprendre, empraindre, atiser); тогда как amor del siecle объявляется «фальшью» (boulengeïce), а amor de cest monde — тем, что должно «ненавидеть» (haïr). Между двумя amor у Готье нет перехода: есть моральный выбор.

Этот результат — наиболее ценный методологически, поскольку он показывает, что одна и та же формальная процедура (сопоставление определений по полюсам) способна выявить не просто различие словоупотребления, но различие авторских стратегий обращения с общим концептуальным аппаратом. При этом мы отмечаем необходимую осторожность: повторяемость формулы por l’amor de Dieu conquerre у Готье требует проверки на то, не является ли она рефреном единственной песни (что завысило бы её вес); такую проверку следует проводить по номерам стихов, прежде чем придавать частоте значение.

10 Обсуждение: что co-occurrence дала и чего не смогла

Подведём методологический итог. Анализ совстречаемости на материале amor оказался продуктивен в нескольких отношениях. Он выделил семантическую структуру поля без априорного задания категорий; он позволил построить типологию определений любви; он указал на сочетания, заслуживающие пристального чтения, и сделал измеримым то, что прежде описывалось лишь качественно (контраст fin / fol, двуполюсность amor у отдельных авторов).

Вместе с тем метод обнаружил и свои границы, и они столь же поучительны. Главное ограничение состоит в том, что совстречаемость устанавливает связь, но не её смысл. Показательный пример — определение époux при amor. Формально это сильный коллокат; но чтение контекстов показывает, что за ним стоят два противоположных значения: в религиозных текстах (Бернард) — мистический Жених, Христос «Песни песней»; в куртуазных (Тома, «Энеида») — земной супруг, ревнивый муж, помеха любви. Одна и та же статистическая связь скрывает семантическую омонимию, неразличимую без обращения к тексту. Именно поэтому мы настаиваем, что качественное чтение (KWIC) — не вспомогательная иллюстрация, а обязательный замыкающий шаг процедуры.

Из этого следует и наш общий взгляд на роль количественных методов в медиевистике. Co-occurrence наиболее ценна не как способ получить окончательный ответ, а как навигатор: она обозревает большой корпус, недоступный сплошному чтению, и указывает, куда направить внимание исследователя. Решение же о значении остаётся за медиевистом и за текстом.

11 Ограничения и воспроизводимость

Мы суммируем ограничения, существенные для оценки результатов. Лемматизация и частеречная разметка BFM2022 автоматические и непроверенные; мы сознательно не объединяли орфографические и лемматизационные варианты (amer и aimer, fin и finer и т. п.), предпочитая работать с разметкой как она есть и оговаривая варианты как принадлежащие одному концепту, — это решение в пользу воспроизводимости в ущерб гладкости. Орфография корпуса редакторская, и слой оригинальной графики недоступен, что исключает выводы о написании и персонификации. Распределение материала неравномерно; мы контролируем это мерой рассеяния, но не устранением доминирующих текстов. Пороги (размер окна ±5, минимальная частота, порог рассеяния ≥ 3) и состав стоп-листа суть принятые нами решения, и мы приводим их явно, чтобы результат можно было воспроизвести или пересмотреть.

Весь конвейер реализован на языке R; код и производные данные (таблицы токенов, профили коллокатов, таблицы определений) предполагается опубликовать в открытом репозитории с присвоением DOI, что отвечает требованиям воспроизводимости, принятым в цифровой гуманитаристике.

12 Заключение

Мы рассмотрели лексико-семантическое окружение лексемы amor в корпусе BFM на материале XII–XIII веков, преследуя одновременно содержательную и методологическую цели. Содержательно мы показали, что множественность значений amor — религиозного, куртуazного, феодально-социального — проявляется не только в качественном чтении, но и формально, в распределении соседних слов; что язык эпохи различает типы любви лексически, через систему определений; что одно и то же сочетание, прежде всего fin amor, наполняется различным смыслом у разных авторов; и что оппозиция сакральной и плотской любви реализуется как сознательная авторская стратегия, по-разному устроенная у Бернарда Клервоского и у Готье де Куанси.

Методологически мы стремились показать внутреннюю механику такого исследования — включая трудности, которые подстерегают работу со средневековым корпусом (вариативность леммы, разнородность разметки, многотомность текстов, локальный шум), и решения, которыми мы на них отвечали. Общий принцип этих решений — проверять, прежде чем утверждать, — мы считаем главным методологическим уроком работы. Анализ совстречаемости предстаёт в ней не самодостаточным методом, а инструментом, который обретает ценность в связке с качественным чтением: количественный шаг обозревает корпус и направляет внимание, качественный — устанавливает значение. Именно в этом союзе, на наш взгляд, и состоит перспектива применения co-occurrence в цифровой медиевистике.


Документ подготовлен в R Markdown. Исходный код анализа и производные данные доступны в репозитории проекта.