Хочу поделиться результатами небольшого эксперимента. У меня были две переписи:
1696 год — Алатырский уезд, стольник и воевода Семён Фёдорович Грибоедов (публикация "Переписные книги Алатырского уезда 1688, 1696 и 1710 годов")
1717 год — фрагмент переписи деревни Болдасево (Барановская волость, рукописный документ)
Задача была простой: найти людей, которые присутствуют в обеих переписях. Но ручной поиск по 300+ страницам — дело долгое. Поэтому я решил привлечь на помощь искусственный интеллект.
Как я это делал:
Шаг 1. Очистка и структурирование данных
Первая перепись (1696) была оцифрована, но содержала много шума: номера листов, разрывы слов, смешанные форматы. Я подготовил чёткие правила извлечения:
Убираем женщин, оставляем только мужчин
Извлекаем имя и патроним (отчество/родовое имя)
Нормализуем формы (Данилка → Данила, но патроним оставляем в исходном виде для поиска)
В итоге получил XML-файл с более чем 5000 записей (имя + патроним + деревня).
Шаг 2. Подготовка второй переписи (1717)
Документ по Болдасево был в виде таблицы (id, имя, отчество, пол, год рождения). Я отфильтровал:
Только мужчин
Тех, кто родился в 1696 году или раньше (чтобы к 1717 году им было хотя бы 20 лет)
Получилось 334 человека.
Шаг 3. Поиск совпадений
С помощью DeepSeek я подготовил чистые файлы с парами "имя — патроним" для обеих переписей. Затем в CURSOR (редактор кода с ИИ) разработал скрипт на Python, который сравнивал записи и выдавал процент сходства.
Что получилось:
Явные совпадения (100%) — 4 человека:
Игошка Миронов (Болдасево) → Игошка Миронов (д. Тургакова, 1696)
Кормишка Буянов → Кормишка Буянов (д. Лунга)
Дружинка Семенов → Дружинка Семенов (д. Баева Дюркина)
Васка Федоров → Васка Федоров (д. Новотроицкое)
Высокий процент (90-96%) — ещё 14 человек, где, скорее всего, совпадения (вариации имён типа "Алешка Терешкин" ↔ "Алешка Серешкин").
Для 328 человек из 334 процент совпадений ниже 90% — либо это новые люди, либо имена сильно изменились, либо предков нет в первой переписи.
Выводы и проблемы
Сравнение по буквам — не лучший способ. Например, "Юртайкин" и "Юртаев" — явно один патроним, но по символам они отличаются. А "Юртайкин" и "Дойкин" — совсем разные, хотя могут казаться похожими.
Нужен словарь эрзянских имён и их вариаций. Если бы у нас была база, где прописано, что:
Юртайкин = Юртаев = Юртайкин (одна основа)
Дойкин ≠ Юртайкин (разные основы)
то модель могла бы сравнивать не по буквам, а по семантическим группам.
ИИ отлично справляется с очисткой данных — разметка 5000+ записей заняла бы недели ручной работы, а с нейросетью — несколько часов.
Python-скрипт в CURSOR дал гибкость: я мог настраивать пороги сходства и быстро пересчитывать результаты.
Что можно улучшить в будущем
Создать справочник эрзянских имён и патронимов с группировкой вариаций (например, основа "Юртай" → варианты: Юртайка, Юртаев, Юртайкин, Юртайко). Тогда ИИ будет сравнивать не "строку А со строкой Б", а "принадлежность к группе".
Добавить возрастные ограничения — если в 1696 человеку было 3 года, а в 1717 он глава семьи — это не тот человек.
Учитывать географию — переезды были, но массовое переселение из одной деревни в другую требует подтверждения.
Сделать базу данных (SQLite), где каждая персона — запись с полями: имя (норм), патроним (норм), возраст, деревня, стан, год переписи. Тогда поиск совпадений можно делать на уровне SQL, а не процентным сравнением.
Файлы, которые получились:
Алатырский уезд 1696.xml — 5000+ записей (имя + патроним + деревня)
Болдасево 1717.xml — 334 записи (id, имя, патроним)
matches_report.txt — подробный отчёт о совпадениях (сделан в CURSOR)
Буду рад, если этот опыт окажется полезным для ваших исследований. Если кому-то нужны исходные файлы или код — пишите, поделюсь.
А вы пробовали использовать ИИ в генеалогических поисках? Как решаете проблему вариативности имён и патронимов?
РЕЗУЛЬТАТЫ ПОИСКА СОВПАДЕНИЙ
СОВПАДЕНИЯ ВЫШЕ 90%
ID 50 - Игошка Миронов (д. Болдасево) => Игошка Миронов (д. Тургакова под Сурским лесом) [100.0%]
ID 109 - Кормишка Буянов (д. Болдасево) => Кормишка Буянов (д. Лунга на реке Алатаре) [100.0%]
ID 127 - Дружинка Семенов (д. Болдасево) => Дружинка Семенов (д. Баева Дюркина) [100.0%]
ID 156 - Васка Федоров (д. Болдасево) => Васка Федоров (д. Новотроицкое на реке Алатаре) [100.0%]
ID 95 - Алешка Терешкин (д. Болдасево) => Алешка Серешкин (д. Кирзить) [96.6%]
ID 217 - Юртайка Давыдкин (д. Болдасево) => Юртайка Давыткин (д. Нижная на Саре) [96.6%]
ID 80 - Ивашка Кофкайкин (д. Болдасево) => Ивашка Москайкин (д. Сабончеева) [93.9%]
ID 146 - Москайка Юртайкин (д. Болдасево) => Москайка Аркайкин (д. Большая Кулясова) [93.1%]
ID 146 - Москайка Юртайкин (д. Болдасево) => Москайка Афтайкин (д. Верхние Чюкалы) [93.1%]
ID 146 - Москайка Юртайкин (д. Болдасево) => Москайка Аркайкин (д. Киржеманы) [93.1%]
ID 147 - Панка Юртайкин (д. Болдасево) => Панка Аркайкин (д. Старая Каласева) [93.1%]
ID 298 - Пивцайка Любишкин (д. Болдасево) => Пивцайка Бебишкин (д. Чалпанова) [93.1%]
ID 3 - Родка Ивашкин (д. Болдасево) => Родка Илюшкин (д. Сабончеева) [92.2%]
ID 69 - Молчанка Томилин (д. Болдасево) => Молчанка Шумилин (д. Сыресева на реке Алатаре) [92.2%]
ID 159 - Гришка Федоров (д. Болдасево) => Гришка Сидоров (д. Кученяева) [92.2%]
ID 311 - Ганка Тренкина (д. Болдасево) => Ганка Тренкин (д. Чиндяново) [91.4%]
ID 92 - Молчанка Кемаев (д. Болдасево) => Молчанка Седаев (д. Нижная на Саре) [90.8%]
ID 92 - Молчанка Кемаев (д. Болдасево) => Молчанка Кобаев (д. Породеева на речке Саласлейке) [90.8%]

Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев