惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
月光博客
月光博客
腾讯CDC
Engineering at Meta
Engineering at Meta
博客园 - Franky
Vercel News
Vercel News
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
GbyAI
GbyAI
B
Blog
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Тайна Веды Конг
Eco_coder · 2026-05-05 · via Все публикации подряд на Хабре

Тайна Веды Конг

Уровень сложностиПростой

Время на прочтение5 мин

Охват и читатели1.2K

Аналитика

Впечатление от имен персонажей в "космических" произведениях фантаста Ивана Ефремова – одна из сильных эмоций от чтения его романов. Необычными именами героев Ефремов решал свои художественные задачи, показывая мир будущего свободным от догм, стереотипов, социального и расового расслоения. Но есть ли в новаторских номинациях какие-то скрытые языковые коды? Я решил провести эксперимент и проверить математических, можно ли секреты имен в книгах Ефремова раскрыть с помощью Python.

Я скачал в интернете три романа Ефремова – "Туманность Андромеды", "Час быка" и "Сердце Змеи", извлек и разобрал все личные имена, названия и топонимы.

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

def extract_onyms(text, min_len=3):
    doc = nlp(text)
    onyms = set()
    for token in doc:
        if token.pos_ in {"PROPN", "NOUN"} and token.is_title and len(token.text) >= min_len:
            onyms.add(token.text)
    pattern = r'\b[А-ЯЁ][а-яё]{1,}(?:\s+(?:[А-ЯЁ][а-яё]{1,}|И|ИИ))[а-яё]{0,}\b'
    for m in re.finditer(pattern, text):
        cand = m.group().strip()
        if not cand.startswith(('И ', 'А ', 'Но ', 'О ', 'В ', 'К ', 'С ', 'У ',
                                'На ', 'По ', 'Для ', 'Как ', 'Так ', 'Что ', 'Если ')):
            onyms.add(cand)

    return list(onyms)

Из трех романов получилось извлечь более 2000 уникальных имен. Часть из них – технические термины, родовые понятия, артефакты и ошибки. Это неизбежно при первом проходе. Если бы я был академический ученый, следовало бы провести ручную валидацию и дообучить модель, но для моего эксперимента даже такая сырая выборка сгодится.

Самые частые имена персонажей в романах Ефремова

Самые частые имена персонажей в романах Ефремова

Интересно было провести сравнение имен жителей "темной" планеты Торманс, где царит тоталитарный строй и имен жителей Земли будущего. Я провел подсчет долей сонорных согласных и чередований гласных и согласных в именах персонажей. Так как выборка имен мала, а фонетический индекс благозвучия не подчиняется нормальному распределению, я решил применить непараметрические тесты Колмогорова — Смирнова и U-критерий Манна — Уитни.

Критерий Колмогорова-Смирнова  должен показать различие форм двух эмпирических распределений (не только сдвиг, но и дисперсия и асимметрия) и ответить на вопрос различаются ли распределения фонетических характеристик имён двух планет в целом? U-критерий Манна — Уитни должен ответить, являются ли имена Торманса статистически значимо более дисфоничными, чем имена Земли?

 if not df_earth.empty and not df_tormans.empty:
    scores_earth = df_earth['euphony_index']
    scores_tormans = df_tormans['euphony_index']
    u_stat, p_u = stats.mannwhitneyu(scores_tormans, scores_earth, alternative='less')
    ks_stat, p_ks = stats.ks_2samp(scores_tormans, scores_earth)

Что получилось:

Средний индекс благозвучия (Земля):  0.742

Средний индекс благозвучия (Торманс): 0.600

Mann-Whitney U: U=132.50, p=0.0004

Kolmogorov-Smirnov: D=0.681, p=0.0006

Имена персонажей "светлой" цивилизации Земли демонстрируют статистически более высокий уровень фонетического благозвучия. Разница в 0.142 пункта (по шкале 0–1) указывает на систематическое различие в фонетической организации имен двух планет.

Сравнение фонетических характеристик имен

Сравнение фонетических характеристик имен

По U-критерию Манна-Уитни видно, что нулевая гипотеза о равенстве распределений отвергается с высокой степенью достоверности. Значит, различие в индексах благозвучия между планетами статистически значимо и не является случайным.

Индекс фонетического благозвучия

Индекс фонетического благозвучия

Результаты эмпирически подтверждают гипотезу о том, что Ефремов использует звуковой состав имён как художественное средство характеристики цивилизаций.

Эксперимент фиксирует важное различие. Имена жителей "заблудшей" планеты содержат больше шумных согласных (ч, г, ш), чем имена землян. Это создаёт подсознательный контраст агрессии и благозвучия. Имена землян (Веда Конг, Чара Нанди, Эвда Наль) структурированы проще, содержат открытые гласные и плавные сонорные. Тормансианские имена (Чойо Чагас, Хонтээло Толло Фраэль) визуально и акустически "тяжелее", сложнее. Фонетический контраст у Ивана Ефремова здесь не только декоративный приём, а способ маркировать цивилизационную оппозицию.

Один из главных героев романов "Туманность Андромеды" и "Час быка" Дар Ветер напрямую объясняет читателю значение своего имени. В отличие от многих других героев, этническая принадлежность Дара Ветра определена.  

– Ваше имя, если я не ошибаюсь, из корней русского языка?

– Совершенно верно. Даже не корни, а целые слова. Одно – подарок, второе – ветер, вихрь…

Я решил провести анализ, выявить скрытые группы персонажей, проверить, влияет ли число основ в имени на статус, и показать, как институты в романах связаны с локациями и героями.  Я решил превратить линейное повествование в граф, где узлы это имена и названия, а ребра их совместное появление в одном контексте. Я применил "скользящее" окно в 60 токенов. Такое окно захватывает локальный смысловой контекст, но не "склеивает" несвязанные сюжетные линии.

deg = nx.degree_centrality(G)
bet = nx.betweenness_centrality(G, weight='weight')
for n in G.nodes():
    G.nodes[n]['degree'] = deg[n]
    G.nodes[n]['betweenness'] = bet[n]
top_hubs = sorted(deg.items(), key=lambda x: x[1], reverse=True)[:8]
print("🔝 Топ-8 хабов сюжета (степень центральности):")
for node, val in top_hubs:
    print(f"  • {node}: {val:.3f} | тип: {G.nodes[node]['type']} | основ: {G.nodes[node]['bases']}")

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

Здесь я применил алгоритм Лувена, метод обнаружения сообществ в больших сетях, основанный на жадной оптимизации модулярности. Он позволяет выявлять группы узлов с плотными внутренними связями и редкими связями с узлами из других групп. Алгоритм устойчив к шуму и не требует задания числа кластеров заранее.

Кластеризация сообществ автоматически выявляет скрытые группировки, например экипажи звездолётов, научные институты Земли, мифологические объекты. Это позволяет перейти от простого чтения к объективной картографии сюжета.

partition = community_louvain.best_partition(G, weight='weight')
for n, comm in partition.items():
    G.nodes[n]['community'] = comm

Что получилось.

Алгоритм честно ранжирует узлы по степени связанности. Вместо ожидаемых имён главных героев в топ попадают родовые существительные (Врач, Биолог), что математически подтверждает тезис о подчинении личности функции в утопии Ефремова. В антиутопических главах хабом становится Торманс и титулы, что отражает иерархию на той планете.

Кластеризация Лувена автоматически разделила граф на сообщества, совпадающие с планетарными и сюжетными линиями. Оппозиция Земля - Торманс проявляется не только в именах, но и в топологии связей. Земляне связаны через корабли, экспедиции и диалоги, а жители "темной" планеты в созвездии Рыси через приказы, контроль и пространственные ограничения.

Граф планетарных и сюжетных линий

Граф планетарных и сюжетных линий

В случае с Ефремовым код подтверждает интуитивное предположение, что имена у писателя  работают как инженерная система. Люди, институты и локации связаны не случайно, а подчинены авторской модели цивилизации.

Такая цивилизация Ефремова нравится не всем его поклонникам. Одни приветствуют объявленную в романах свободу отношений полов, другим претит слишком прогрессивная позиция Ефремова в области воспитания детей. Однозначно можно говорить о другом - предсказания писателя об устройстве мира будущего в одном из самых некрасивых его сценариев похожи на правду. Может быть сила предвидения фантаста позволит сбыться и его прекрасным предсказаниям.