『Совесть — не ослик: и не такое вывезет.』
_(с) Р. Суржиков, Полари_
『Халдер, проверь, что умеет сир Поросёнок.』
_(с) Д. Мартин, ПЛИО_
⋮ [Дисклеймер].
• Беспристрастность. Анализ не претендует на безошибочную точность и не рекламирует труд писателей. Перевод романа: "Игра престолов" книги_1 из цикла "Песнь льда и огня" (далее "ПЛИО") с английского выполнил Ю. Соколов. Именно текст Соколова на русском в статье и будет анализироваться — это корректное исследование (т.е. какой и ощущается "Игра престолов" для русскоязычной аудитории), например, одна из наград в копилке ПЛИО за книгу "Игра престолов" получена не за оригинал, а за перевод романа на испанский.
• Разберу на части парадокс Панова-Пехова, где в ходе эксперимента отразится физический смысл алгоритмов измерения лексического разнообразия текста: "MATTR"; "MTLD"; "HD-D"; и предложенной автором, новой метрики "КУЛ", поймём почему же эти метрики необходимо ставить в три ряда, а не в один (меры измеряют разные аспекты одной характеристики), неточную интерпретацию сущности показателей встречал в некоторой RU-литературе.
• Скрипты для NLP-анализа написаны мной, в основном пользовался ими для анализа и поддержания качества собственных материалов, а также парсил международные лонгриды, прозу для сравнения и оценки авторитетности персон.
• Статья будет особенно интересна филологам, которые знают, что научных материалов в Интернете по оценке лексического разнообразия текста не так много, некоторые платные, а в Рунете единицы и часто поверхностные.
Преамбула
Видел некоторые баталии в комментариях от читателей на профильных ресурсах: частое сравнение между собой двух высокооценённых циклов в жанре эпическое фэнтези/средневековье — "ПЛИО" vs "Полари". Сходства и различия сводились к тематике, эпохе, локациям, чертам действующих лиц, слогу и другим очевидным и/или нетривиальным литературным приёмам и ходам. В этой статье добавлю контраста на художку и с математической точки зрения.
Публикую разбор дебютных книг из вышеупомянутых циклов:
Аннотации (развернуть блок).

"ИП": "При странных обстоятельствах умирает десница владыки Вестероса. Король Роберт со свитой отправляется на север к давнему другу Эддарду Старку, чтобы предложить тому занять место погибшего... Скрывающиеся в вольных городах потомки свергнутой Робертом династии Таргариенов вынашивают планы возвращения Железного Трона, но для этого им нужно заручиться поддержкой самого могущественного кхала великой степи. За спинами героев уже плетутся сети интриг, и никому не известно, какая фигура окажется очередной жертвой в игре престолов. А между тем зима приближается…"
"СМИ": "Полари — мир фантастического Средневековья. Суровые и жестокие нравы здесь соседствуют с диковинными ростками будущего, мечи и арбалеты — с первыми электростанциями и железными дорогами. Император Адриан ведет государство нелёгким путём реформ и прогресса. Могущественные феодалы плетут изощрённые интриги, поднимают мятежи в борьбе за власть. Церковь также пользуется огромным влиянием, ведь в мире Полари никто не сомневается в существовании богов. Боги не стоят в стороне: они шлют людям дары — непостижимые Священные Предметы. Писание гласит: в Предметах таится великая сила, способная исцелять болезни, управлять стихиями, разрушать преграды. Секрет этой силы утерян много веков назад…"
Экспертиза
Год публикации романов и возраст авторов
"ИП" — вышел в 1996г. (48 лет писателю).
"СМИ" — вышел в 2016г. (29 лет писателю).
Награды и Премии
"ИП" — 5.
"СМИ"— 2.
Оценки критиков


Судя по оценкам читателей на разных авторитетных литературных порталах, "ИП" и "СМИ" — это как минимум добротное фэнтези.
Таблица основных метрик
Параметр | "ИП" | "СМИ" | Прим. |
Кол-во страниц | ~933 | ~1089 | форм. |
Время на чтение | 20ч. 4м. | 23ч. 7м. | |
Кол-во предложений | 24_998 | 32_448 | |
Ср. длина предложений | 9.6 слов. | 8.5 слов. | разб. |
Медиана длины предложений | 8 слов. | 7 слов. | |
Самое длинное предложение | 456 зн. | 456 зн. | |
Кол-во слов | 240_796 | 277_389 | разм. |
Доля эмоционального тона | 3.5% | 10.5% | |
КУЛ (глобальный словарь автора) | 13.50%/на 50К слов. | 16.72%/на 50К слов. | |
MATTR (локальное лекс. разнообразие) | 70.58% | 72.16% | |
HD-D (глобальное лекс. разнообразие). | 91.93% | 92.97% | |
Индекс Гапакса | проседание в середине романа | проседание в конце романа | разн. |
ИУФО (индекс удобочитаемости Флеша-Оборневой) | 63.6 | 63.5 | |
Доля диалогов | 37.6% | 35.6% | |
Рефрен-ругательство | "седьмое пекло" | "тьма (сожри)" | |
Самое длинное слово | "хааууууууууууууууууууууу", 24 зн. | "облагодетельствовать", 20 зн. | |
Историческая хронология | нулевая | 155 событ. | граф. |
Тематика на основе n-грамм слов | дворянство | дворянство | |
Палиндромы слов | 63 слов. | 83 слов. | разн. |
Имена ГГ, входящие в ТОП-10 слов (часто встречающиеся) | Джон; Нед; Тирион | Эрвин; Мира; Хармон | |
Закон Ципфа | (a = -1.358), | (a = -1.296), | |
Телесное повествование | сильнее, | слабее | |
Глубина | 3.87 | 3.72 |
Использование алфавита (развернуть блок).
"ИП": буква, кол-во, процент | "СМИ": буква, кол-во, процент |
'о', (139357, '11.11%'), | 'о', (154049, '10.38%'), |
Буква "ё" в обоих книгах практически сведена к нулю.
Убеждаемся, что частота появления исследуемой буквы алфавита в разнообразных, толстенных текстах одного языка ~близка, факт.
Аналогия с подкидыванием монеты: подбрасываем её несколько раз и результаты непредсказуемые, а если подбросить медяк 1 млн. раз, результат будет ~50x50. Напишите пару предложений на русском языке, и не факт, что буква 'о' по частоте будет на первом месте. Напишите крупную прозу на русском, и распределение букв будет ~как в таблице.
Интерпретация результатов
[1] Первое, случайное, но тем не менее общее сходство в романах найдено: самые длинные предложения (СДП) в обоих романах совпали по количеству знаков.
В качестве сравнения: у Ф. Достоевского в "Преступление и наказание" — {СДП 736 зн.}, а у С. Кинга в "Противостояние" — {СДП 1575 зн.}.
"ИП" — {СДП 456 зн.}: «Это крыло было тоже составлено из конницы, но если справа располагался бронированный кулак из рыцарей и тяжеловооруженной кавалерии, то авангард войска западного края составили из отбросов: лучников в кожаных куртках, нестройной массы неприученных к боевому порядку вольных всадников и наемников, сельских работников на пахотных лошадях с косами и ржавыми мечами, полученными от отцов, недоученных ребят из борделей Ланниспорта, ну и Тириона с его горцами.»
"СМИ" — {СДП 456 зн.}: «Почти без помощи со стороны Хармона он вспомнил, что при встрече с графом следует отвесить поясной поклон, а кастеляну и рыцарям достаточно низкого кивка головой; что руку для пожатия протягивать не нужно — это дерзость; что Джоакин, как воин, имеет право звать графа "милорд", но учтивей все-таки говорить "ваша милость"; что место за столом Джоакину укажут, и сесть он должен никак не раньше, чем задница последнего из графских рыцарей коснется скамейки.»
[2] Доля эмоционального тона (ДЭТ) — процент предложений с восклицательными и вопросительно-восклицательными знаками, но не чисто вопросительными, например, "!/!!/!!!/?!!/?!/!?".
У автора "СМИ" Р. Суржикова ДЭТ — довольно внушительная.
Для сравнения: в классике Л. Толстого "Война и мир" — {ДЭТ ~5.2%}, а у Ф. Достоевского в "Преступление и наказание" — {ДЭТ ~18.2%}, на редкость поражающе высокая, истеричные герои и их диалоги.
Спойлер (развернуть блок).

[3] Кумулятивность уникальных лемм (КУЛ) — отношение среднего количества уникальных лемм к общему знаменателю 50К, полученное путём многократной случайной выборки; или — активный словарный запас автора; или попросту — богатая речь, которую писатель способен выдать в своём творчестве; или совсем уж прямо — интеллект автора, его начитанность.
Описание своего алгоритма КУЛ
Преимущества метрики: не зависит от количества страниц, можно парсить тексты любого объёма, например, от 50К словоформ и выше. Точность результата меры ~99.5%. Сглаживается нелинейность лексического разнообразия. КУЛ является идеализированной, истинной, глобальной мерой оценки словарного запаса автора текста и не сильно коррелирует с условно глобальной мерой лексического разнообразия HD-D, которую подробно разберём в данной статье. Простота интерпретации результата: глобальный словарь автора, где смотрим на цифру относительно базы — первого российского словаря (золотой компромисс в русском языке, как в английском 42 у HD-D и 72% в MTLD. Подробнее обо всём этом по тексту ниже).
Шкала метрики для русскоязычной прозы:КУЛ < 10% — низкая лексическая эрудиция: больше похоже на анализ разговорной речи, а не на прозу;КУЛ ∈ [10%...15%] — стандартный диапазон прозы: сбалансированное соотношение уникальных лемм и повторов;КУЛ ∈ [15%...16%] — переходная зона: порог вхожде��ия в область повышенной стилистической сложности;КУЛ ∈ [16%...20%] — высокая лексическая эрудиция: интеллектуальная проза с развитой системой метафор;КУЛ > 20% — феноменальный активный словарный запас автора, всюду по тексту встречаются неологизмы.
""" Упрощеный код для вычисления метрики КУЛ, используя силу параллельных вычислений на UNIX подобных OS. Сохраните его под именем program.py и запустите: python program.py """ import os import sys import statistics import random import re import concurrent.futures from multiprocessing import set_start_method try: import pymorphy3 #сам же автор использует пропатченную либу pymorphy2. except ModuleNotFoundError: print("Установите отсутствующий пакет: pip install pymorphy3") morph = pymorphy3.MorphAnalyzer() #Открываем книгу. FILE = input("\nЛЕММА АНАЛИЗ И ВЫЧИСЛЕНИЕ 'КУЛ'.\nУкажите книгу/путь к файлу в .txt формате: ").strip().strip("'") with open(FILE) as f: text = f.read() print("\nОжидайте, идет анализ...") #Убираем числа, спецсимволы, но оставляя составные слова через дефис. lst = [i.lower().strip('-') for i in re.split(r"\d+|_|-{2,}|[^\w-]+", text) if i not in ("-", "")] #Код для параллельных вычислений для OS GNU/Linux и Android (Termux). #Лемматизируем. def lemma_future(word): return morph.parse(word)[0].normal_form lema_lst = [] if sys.platform != 'win32': set_start_method('fork') with concurrent.futures.ProcessPoolExecutor(max_workers=os.cpu_count() if os.cpu_count() <= 2 else os.cpu_count()-1) as executor: lema_lst = list(executor.map(lemma_future, lst, chunksize=10)) else: lema_lst = list(map(lemma_future, lst)) #Считаем КУЛ. if len(lema_lst) < 50_000: print(f"\nТЕКСТ СЛИШКОМ КОРОТКИЙ ({len(lema_lst)} слов), НУЖНО МИНИМУМ 50К СЛОВ.") sys.exit() uniq_counts = [] for i in range(100): chunk = random.sample(lema_lst, 50_000) uniq_counts.append(len(set(chunk))) КУЛ = f"{((statistics.mean(uniq_counts) * 100) / 50_000):.2f}%/на 50К слов" er_perc = (statistics.stdev(uniq_counts) / statistics.mean(uniq_counts)) * 100 print(f"\nКУЛ (активный словарный запас автора): {КУЛ}\nразброс CV (ошибка в процентах): {er_perc:.1f}%") print("""\n-------------------------------\n\nШкала КУЛ (для русскоязычной прозы): <10%/50К — низкая лексическая эрудиция: больше похоже на анализ разговорной речи, а не на прозу; 10-15%/50К — стандартный диапазон прозы: сбалансированное соотношение уникальных лемм и повторов; 15-16%/50К — переходная зона: порог вхождения в область повышенной стилистической сложности; 16-20%/50К — высокая лексическая эрудиция: интеллектуальная проза с развитой системой метафор; >20%/50К — феноменальный активный словарный запас автора, всюду по тексту встречаются неологизмы.""")
Очищаю текст от спецсимволов, чисел, перевожу его в нижний регистр и с помощью Pymorphy3 (в будущем вернулся к Pymorphy2) лемматизирую, включая союзы и предлоги. Далее начинается самое интересное: из всего текста выбираю абсолютно рандомные 50К слов (лемм), сокращаю дублированные слова, а цифру, полученное количество уникальных слов из 50К лемм, заношу в список. Повторяю алгоритм 100 раз, на практике цикличность затрагивает все слова в тексте (не важно: проза из 60K или из 400К слов, в выборку попадёт каждая лемма, но при этом знаменатель останется общим — 50K). Далее, вычисляю среднее арифметическое из 100 цифр в списке и пропорцией привожу %уник.лемм/50К лемм. На финальном шаге вычисляю стандартное отклонение: каков разброс цифр на списке и вывожу его в процентах, т.е. смотрю ошибку, которая на 100 overkill циклах составляет ~0.1-0.7%. Т.е. алгоритм работает более чем удовлетворительно. Почему итерирую в 100 проходов, �� не в 666? Потому что уже после ста итераций ошибка/разброс всегда менее 1%, а результат ~эквивалентен гипергеометрическому (матем. эталон точности) распределению без накладных расходов (макс. разница 0.01%). Почему общий знаменатель выбран в 50К слов? Потому что метрика позволяет сравнивать, как классику из прошлой эпохи, ограниченную словарём "Академии Российской", где размер корпуса составлял 51к слов, так и современную прозу с неологизмами и англицизмами, 50К слов — крайне насыщенная выборка, которая сглаживает любой тематический шум, разбору подлежит практически любой роман в массе, т.е. минимальная граница романа формально начинается от 45К слов, но в массе своей от 50К слов и выше, а также отсекаются научные труды, где высокая плотность повторений сокращений и аббревиатур. На лонгридах естественно сокращаю объём выборки 50K слов с 1/3 романа до 1/3 статьи, но в таких случаях ценность метрики стремится к 0 (расчёт КУЛ не на прозе/романах бессмыслен, т.к. очевидно, что в статьях/стихах словарный запас автора не измерить).
Шкала метрики КУЛ выведена экспериментальным путём: для установления экстремумов максимальной и минимальной границ в анализ бралась некоторая проза из 12K классифицированных по лингвопризнакам произведений на *Фантлабе: классика (собрание сочинений Пушкина и Гоголя, "Дар" гениального Набокова) и от самых просторечных до самых экстраординарных. В целом при разработке алгоритма КУЛ прогнал 50 романов, включая переводы: от эталонного по разнообразию слов — Г. Олди, "Шутиха", до низкого (вкл. по разнообразным TTR) — боевик В. Лосева, "Защитник демонов"; анализировал две прозы, как одну (копировал <разные по длине> роман "А" в конец романа "А"), в результате КУЛ изменялся (макс. полученная вариативность) от 0-4% в размерной шкале, хотя в таком тесте тавтология вырастает на 100% — вдвое, при идеальном раскладе КУЛ бы не должен меняться (стоит признать: при таком прогоне КУЛ все же уступает метрике текста HD-D по стабильности, где меняется погрешность/цифра лишь в десятой %, но и HD-D — это лишь условно глобальная мера текста); смешивал две разные прозы разных авторов, и КУЛ менялся на единицы (отличный результат); перемешивал слова в прозе и КУЛ был устойчивым, неизменным (отличный результат). Метрика КУЛ чувствительна: добавление к любого размера прозе трёх уникальных слов с высокой вероятностью увеличит младший разряд меры (сотую), тогда как другие типы TTR не отразят разницу у себя в сотой и сгладят результат (отличный результат).
Не проще ли рассчитать коэффициент ЛР, например, для 10000 слов, помножить на 5 и вычислить пропорцию, получив КУЛ? Нет, лексическое разнообразие текста — нелинейная характеристика, поэтому и существуют разносторонние подходы, которые пытаются измерить кривую ЛР вдоль и поперёк.
Алгоритм КУЛ работает безупречно, его точность подтверждается перекрёстной проверкой: теоретическим расчётом гипергеометрического распределения на выборке 50К слов, т.е. HD-D с порогом в 50К слов. Дополнительная информация по метрике КУЛ встретится по тексту ниже, продолжайте читать статью.
Расчёты произведены после приведения всех слов к базовой форме, насколько позволили open source пропатченный Pymorphy2 с корпусом русского языка OpenCorpora. Кстати, официальный сайт корпуса — достояние под свободной лицензией, где каждый пользователь может внеси вклад в развитие российской лингвистики, где огромный вклад внесли известные и уважаемые отечественные филологи, сегодня под табу: в РФ недоступен, что отражает в т.ч. прямое отношение чиновников к защите русского языка.

Default" — анализируемый текст. "AOT" — русские NLP-пионеры из 2000-х, свой словарь (устаревший). "Pymorphy3/2" — использует достойного качества RU-корпус OpenCorpora, чья морфология изначально была основана на словаре AOT. "Spacy" — использует несколько на выбор предобученных RU-моделей и тянет pymorphy3. "Natasha" — могла бы быть самым идеальным вариантом, увы. "СМИ" написано красноречивее чем "ИП", сильно выше средних показателей, но обоим произведениям сокрушить незыблемые высоты не удалось.
КУЛ — важная характеристика, в отличие от метрики ЧБ, она не так предсказуема. Да, можно написать несколько предложений на русском языке и получить {КУЛ 100%}. Но когда объём литературного творчества будет стремиться к объёму прозы, то слова, синонимы неизбежно начнут повторяться, а уж служебные части речи и подавно. Если у фантаста низкий и ограниченный словарный запас и отсутствует способность к созиданию, то и язык его будет скудным, а КУЛ↓.
[4] MATTR(Mean Type-Token Ratio, метод предложен в 2010 году) — прогрессивная локальная метрика из области определения лексического разнообразия текста, которая отображает усреднённый ~% уникальных слов на X словоформ в любом заданном отрывке повествования, т.е. в моменте, скользящее ср. TTR с выбираемым размером рамки.
Физический смысл метрики: выбираем текст, задаём размер рамки, например, 3 слова, результат расчёта MATTR покажет 100%. Проверяем: тыкаем пальцем в любой отрывок из трёх слов в анализируемом тексте и все три слова должны быть не повторяющимися, т.е. получаем 100%.
Проще говоря: MATTR сильный индикатор лексического разнообразия сцен текста (если верить редким статьям из научных журналов, то метрика в достаточной степени, если не полностью, независима от "кривых эффектов" длины повествования). MATTR оценивает качество письма отрывками, т.е. порядок слов, их комбинация очень важны.
В моих примерах рамка метрики задана в 200 слов, несколько длиннее рамки для анализа текстов на английском языке. Алгоритм скользящего анализа усредняет TTR по каждой словоформе за шаг: размер рамки со смещением в одно слово, итерации идут до конца повествования. Описание алгоритма простыми словами: берём текст от самого начала с 1-го по 200-е слово, записываем полученный TTR (уникальные слова делим на общие, т.е. на 200), сдвигаем окно, извлекаем текст со 2-го по 201-е слово, записываем полученный TTR и так итерируемся до конца текста, а потом считаем среднее арифметическое из полученных TTR — это и есть MATTR лексического разнообразия в момент времени.
В "СМИ" MATTR выше, чем в "ИП"; в теории текст читается легче без спотыкания о тавтологию.(см. в статье разбор парадокса)
Если рот — это окно в разум, то язык — проводник (развернуть блок).
Для расчёта MATTR на Python существуют библиотеки, например, "LexicalRichness" и "Lexical_diversity", данные расчётов бьются между собой, за исключением MTLD, где разница ±2%, значит вычисления корректные, кроме того, исходники кода и алгоритма простые, проверил.
Для использования либ на русскоязычных текстах необходимо подавать готовый список слов, а не строку, иначе получим разные показатели лексического разнообразия одного исследуемого изложения и это плохо. О причинах такого святотатства: "LexicalRichness" по умолчанию ожидает на входе строку и разбивает её на слова, ориентируясь на английский язык. А "Lexical_diversity" ожидает на входе список, который мы благополучно создаём из строки и лемматизируем.
LST = [i.lower() for i in re.split(r"\b\d+\b|_|[^\w-]+", text) if i not in ("-", "")] #убираем цифры, спецсимволы, за исключением знака "-", в ниж. регистр, убираем пустые элементы из списка и тире, но не дефисы составных слов.
Пример нескольких исходных слов из текста "СМИ" и то, как они будут обработаны в разных либах: text = "по-лягушачьи, вторую-то, что-то, малец-бесеныш, золотых… _Смолден".
Различия по умолчанию.
"LexicalRichness" (не использовать на RU-языке строку) — в матанализ пойдут такие слова: ["полягушачьи", "вторуюто", "чтото", "малецбесеныш", "золотых…", "смолден"].
"Lexical_diversity" — ["по-лягушачьи", "вторую-то", "что-то", "малец-бесеныш", "золотой", "смолден"] — что нам и требуется.
Библиотеки, заточенные исключительно на английский язык, включая TextBlob, не считают символ многоточия за знак препинания (именно символ "…", а не три символа подряд "."), кроме того, опираются на свои исследования о составных словах через дефис.
Преимущества библиотеки "LexicalRichness": для некоторых метрик (MTLD/HD-D) можно задавать пороги, тогда как в "Lexical_diversity" пороги жёстко привязаны к коду.
lex = LexicalRichness(LST, preprocessor=None, tokenizer=None)#подаём список вместо строки.
К сожалению, обе библиотеки не вычисляют современную метрику MTLD-W, алгоритм которой был предложен в 2020 году; и обе не оптимизированы (одна тянет тяжелые зависимости и медленно стартует, а другая работает небыстро и ориентирована на EN), поэтому переписал метрики, которые не требуют внешних зависимостей и работают ~в 10 раз быстрее.
[5] HD-D (Hypergeometric Distribution Diversity, метод предложен в 2010 году) — метрика призвана сравнивать разные по длине тексты на лексическое разнообразие, но в отличие от MATTR не локально, а глобально с некоторым золотым стандартом. Измеряется от 0 - 1 в у. е. 0 — автор повторяется, 1— максимум лексического разнообразия. Число всегда дробное и малое. Поэтому, для удобства, домножаю результат на 100 и получаю размах от 0 до 100%. Физический смысл метрики: если в КУЛ вместо 50К слов взять выборку в 42 слова, то КУЛ на различных текстах будет выдавать результат ~эквивалентный алгоритму HD-D. Вывод: под золотым стандартом подразумевается рандомная выборка 42-ух слов из текста и расчёт математического ожидания числа уникальных лексем в случайной выборке на основе частот всех лексем в тексте. Повторюсь: в отличие от локальной метрики MATTR, описывающей лексическое разнообразие сцен действий по тексту, т.е. последовательные расчёты,HD-D описывает лексическое разнообразие общей картины повествования, т.е. через рандомную, но неслучайную выборку. Интерпретация результата: чем выше параметр, тем более разнообразен текст, пример HDD=90% (из любой горсти 42 лексем слов по всему тексту 37.8 — уникальные, а 4.2 — повторы). Результат получен через расчёт математической вероятности ожидания, которая ~близка к алгоритму многократной выборке и усреднению. Проблема с HD-D в том, что результаты расчётов сложнее интерпретировать, чем различные варианты TTR. Метод пытается решить одну из главных проблем лингвистики: как сравнить "словарный запас" короткого сообщения и разной длинны прозу.
Обычно, метрика HD-D близка в сторону единицы, т.е. к 100% (из-за сложности/богатства русского языка 42 слова не очень интересная выборка, она исходит исключительно из аспектов английского языка и на русскоязычных текстах работает на пределе: диапазон показателя на разнообразной лит-ре < 10%, но раз уж тексты 15 лет сравниваются с таким порогом, оставляем её по дефолту в 42 лексемы). Некоторые наблюдения: коэф. "42" в самой формуле HD-D отсутствует, переменная задается такой, какую требует исследователь; в "Полари" один из выживших героев носит прозвище "Кайр 42".
В "СМИ" HD-D высоченная, выше чем в "ИП". Суржиков отлично гармонизировал текст: где-то подавлял тавтологию, переставлял слова (учитывая неплохой его MATTR), подбирал синонимы, созидал новые словоформы для мира Полари, т.е писатель, как и все профессионалы, включая Мартина, усердно ковал, гравировал и полировал своё художество, факт. Автор обладает богатым словарным запасом(высокий КУЛ), и кажется, тягой к созиданию новых лексем? Возможно, но в оркестре редко используемых слов в его прозе, как и в "ИП" в общем-то, единичные слова — общеупотребительные, например, "святоша", "сандалии", "гусиное", "шевелюру". HD-D росла в массе не за счёт редких словоформ, а скорее из-за подавления ТОП-слов.(см. в статье закон Ципфа) Также лемматизация из-за несовершенства ПО(см. изображение N5) неизбежно привносит погрешность, увеличивая вклад в HD-D, но эта беда общая и уравнивает все тексты.
[6] ИУФО (Индекс Удобочитаемости Флеша-Оборневой, стоковый метод предложен в 1975 году в США и адаптирован для русского языка в 2006 году). Метрика читабельности Флеша — это тест, предназначенный для определения лёгкости/сложности чтения текста на английском языке. Разработка началась по контракту с ВМС США для оценки сложности технических руководств, а позже стала военным стандартом США и очень популярным школьным тестом. Суть: чем длиннее предложения и слова, тем ниже индекс, т.е. текст сложнее.
Англоязычная формула:FLESH = 206,835 - (1,3 x ASL) - (60,1 x ASW)
ASL (Average Sentence Length): средняя длина предложения в словах.
ASW (Average Syllables per Word): среднее количество слогов в слове.
В 2006г. педагог по информатике одной столичной гимназии: Оборнева защитила диссертацию на соискание учёной степени кандидата пед. наук под чутким наставничеством профессоров. Её цель была адаптировать популярную англоязычную метрику под русский язык, где морфология сложнее. Автор сравнила два орф. словаря: английский vs русский, получив общую разницу длины слов; подогнала коэффициенты; а для расчётов написала простенький алгоритм/макрос на VB для MS Word и прогнала 300 русскоязычных текстов через программу.
Примечательно, что в формуле Оборневой присутствует незначительная ошибка в тысячной коэффициента (см. диссертацию: стр.10 и стр.13).
Русскоязычная формула:FLESH-OBORN = 206,836 - (1,015 x ASL) - (84,6 x ASW)
Как для меня, так и для, вероятно, многих исследователей, точность предложенного алгоритма является абстрактной. Если предположить, что обе метрики считают с отклонением, а так оно и есть, то совокупная непроверенная погрешность FLESH-OBORN должна вырасти и, вероятно, будет ~√(FLESH^2 + FLESH-OBORN^2).
Диапазон ИУФО | Краткая характеристика | Целевая аудитория |
90–100 | Сверх лёгкий | Тексты для маленьких детей, рекламные слоганы |
80–90 | Очень лёгкий | Публичная информация, инструкции для широкой аудитории, сказки |
70–80 | Лёгкий | Журналистика, блоги, просторечная проза, сказки |
60–70 | Нормальный | Простой и понятный язык, легко воспринимается старшеклассниками, проза |
50–60 | Умеренный | Деловые тексты, проза |
30–50 | Сложный | Академ. статьи, узкоспециальные материалы |
10-30 | Экстремальный | Профессиональные исследования |
0-10 | Непроходимый | Сильно перегруженные терминами материалы требующие высокой квалификации |
Индекс удобочитаемости Флеша-Оборневой (ИУФО) в "ИП": 63.6, в "СМИ": 63.5. Для сравнения ИУФО хардкорной статьи из научной БД в переводе на русский про акупунктуру/иглоукалывание: 7.6, а у сказки Пушкина о золотом петушке ИУФО: 89, т.е. алгоритм явно работает, но его точность/погрешность никому неизвестна.
Сравнение КУЛ, MATTR, HD-D и ИУФО на художественных литературных произведениях.
Г. Олди, "Шутиха":
· {MATTR~80.26% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~26.64%/50K слов};
· {HD-D~94.55%};
· {ИУФО~52.9}.
Сумасшедшие показатели.В. Панов, "Московский клуб":
· {MATTR~72.92% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~15.28%/50K слов};
· {HD-D~92.82%};
· {ИУФО~53.2}.У А. Пехова и его подруг в дебютном "Летос":
· {MATTR~73.75% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~14.14%/50K слов};
· {HD-D~91.54%};
· {ИУФО~62.5}.У столетнего романа Г. Хаггарда, "Дочь Монтесумы":
· {MATTR~67.71% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~12.41%/50K слов};
· {HD-D~89.57%};
· {ИУФО~62.7}.У столетней классики Ф. Достоевского, "Преступление и наказание":
· {MATTR~63.75% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~13.64%/50K слов};
· {HD-D~88.88%};
· {ИУФО~64.7}.В древней Библии, Новый Завет, книга 1-я:
· {MATTR~56.46% уникальных слов от 200 словоформ в любом отрывке повествования};
· {КУЛ~9.16%/50K слов};
· {HD-D~86.16%};
· {ИУФО~64.1}."ИП" и "СМИ" см. таблицу основных метрик.
Сравнение MATTR, HD-D и ИУФО на статьях в жанре мемуары.
@ne555, Хабр, "Продолжаю экспериментировать над своим организмом, на этот раз сотка пешком":
· {MATTR~77.46% уникальных лемм от 200 слов в любом отрывке повествования};
· {HD-D~93.56%};
· {ИУФО~49.1}.Студентка Эллисон, журнал Science (перевод), "Чтобы написать успешные заявки на научные гранты, мне пришлось научиться рисковать":
· {MATTR~65.68% уникальных лемм от 200 слов в любом отрывке повествования};
· {HD-D~84.51%};
· {ИУФО~37.6}.
[!] Такое мега колоссальное лексическое разнообразие между статьями обусловлено и тем, что препринт из научного журнала экстремально замусорен личными местоимениями — "я"; "мой"; "свой".
"Тошнотворность" (развернуть блок).

присутствует в каждом предложении, заметно невооружённым глазом. Рассказ "ne555" из-за короткой выборки также не подчиняется закону Ципфа (наклон: -0.553). Смежные темы: тавтология, яканье (в плане высокого и неконтролируемого употребления личных местоимений), слова-паразиты, заимствования.
[!] Следующее предположение: размер рамки при расчёте MATTR для различных литературных форм (стихи, статьи, проза) необходимо подбирать, а закон Ципфа работает на больших текстах, на прозе.
[!] Важное наблюдение на основе анализа произведений: метрики отражают богатство и сложность текста. Сильное отклонение показателей в меньшую сторону сообщает о бедности языка; или о том, что в руках литература из прошлой эпохи, ограниченная словарём Академии Российской; или того проще — сказки, проза для крестьян. Сильное смещение показателей в большую сторону — это тяжёлый нарратив, например, упомянутая "Шутиха"; или какое-либо научное исследование, где без словаря терминов и понятий невозможно будет постигнуть смысл; или текст на русском, но с каким-нибудь нередким, пафосным вкраплением цитат на латыни; или что даже нередкость — низкое качество текста в плане орфографических ошибок, где слова становятся уникальными по причине безграмотности.
[!] MATTR не всегда коррелирует с КУЛ/HD-D в унисон, показывая насколько сложна в усреднении и нелинейна метрика измерения лексического разнообразия. HD-D всегда довольно высок у настоящих писателей. Лично я первым делом при анализе текста смотрю на показатели в такой весомой последовательности: КУЛ, MATTR, HD-D, ИУФО...
[!] С помощью метрик удобно сравнивать не только тексты разных авторов, но и переводы одного произведения между разными изданиями, например, цензурированные и не очень.
[!] Парадокс Панова-Пехова.
Одна метрика сообщает, что лексическое разнообразие выше у Панова, а другая говорит, что наоборот у Пехова. Как такое возможно?!
Проанализированные "Московский клуб" и "Летос" — обе прозы русскоязычные в жанре фэнтези. Структура художки единообразная: количество слов совпадает ~99K (лемм: 10390 / 9663); предложения имеют ~одинаковую ср. длину ~8.6 слов и даже ~близкую долю диалогов около 35%. Парадокс из-за близких показателей текстов лишь усиливается, но зато сразу отметаются теории про "Тарантиновские диалоги".
1. Проверим HD-D, что метрика действительно глобальная и не подвирает. Для этого рассчитываем КУЛ, но с привязкой не к 50К, а к 42 словам. Результаты КУЛ/HD-D ~идентичны между собой для обоих романов, ошибка разброса у КУЛ относительно своего усреднения ~5%. Вывод: HD-D корректный алгоритм и рассчитывается честно.
2. Есть вероятность, что тогда плавает MATTR, проверяем в сравнении: для этого подтягиваем ещё одну математическую модель, описывающую лекс. разнообразие: MTLD (Measure of Textual Lexical Diversity, метод предложен в 2010 году).
Принцип расчёта MTLD: алгоритм начинает чтение текста с первого слова/леммы и читает, пока коэффициент разнообразия TTR не упадет ниже порога 72% (золотой стандарт, но опят же — это для английского языка), как только разнообразие падает ↓72% из-за дублирования предлогов/союзов и т.д., счётчик сбрасывается (записывается размер окна слов), начинается новая итерация и так далее, пока не достигнется конец повествования. По окончанию сканирования полученные данные о размерах окон усредняются.
Вольная интерпретация результата MTLD — это количество слов в усреднённом любом отрывке текста на уровне не ниже 72% лекс. разнообразия, т.е. показатель того, как долго в основном автор может не выдыхаясь удерживать "уникальный" темп изложения.
Для "Московского клуба" MTLD = 203, а для "Летоса" MTLD = 219. Разбор полученной цифры у показателя: если MTLD = 219, то это означает, что в среднем последовательном потоке 157 уникальных слов и 61 повторов при TTR 72% (219 - (219×0,72)). Подставим MTLD (219) в качестве размера рамки MATTR, получаем {MATTR ~72% уникальных лемм на 219 слов в любом отрывке повествования}. Отсюда важный вывод, что MTLD — это тоже локальная, фрагментарная, потоковая метрика, как и MATTR (статическая vs динамическая рамка) и практически напрямую с ней связана: MTLD показатель — это оптимальное, выбираемое окно рамки в MATTR. Как видим 219 > 200 слов, которые я брал в качестве рамки MATTR для распарсивания романов, хотя в английском языке принято брать меньший размер окна, т.к.существует языковая разница в морфологии, средней длине слова.
Парадокс лексического разнообразия сохраняется, непонятно по итогу, где разнообразие точнее: у "Летоса" на основе локальных MATTR/MTLD — выше, но на основе HD-D/КУЛ — ниже, и всё с точностью наоборот в "Московском клубе". На ум приходит мысль, что Пехов написал роман в соавторстве с женщиной и сломал систему.
3. Подтягиваем тяжёлую артиллерию: обращаемся к закону Ципфа. Оба произведения подчиняются природе закона: наклон a — (1.168 / 1.179).
Распределение слов по закону Ципфа.
"Московский клуб":
1-10-ТОП-слов (в 4.72 раза МЕНЬШЕ);
11-100-ТОП-слов (в 2.08 раза МЕНЬШЕ);
101-1000-ТОП-слов (в 1.01 раза МЕНЬШЕ).
"Летос":
1-10-ТОП-слов (в 4.02 раза МЕНЬШЕ);
11-100-ТОП-слов (в 1.85 раза МЕНЬШЕ);
101-1000-ТОП-слов (в 1.01 раза БОЛЬШЕ).
Первая секция частота слов в романах совпадает — это служебные части речи, местоимения, и в ней же кроется разгадка.
Местоимения | МК | Летос |
он | 1017 | 1747 (+) |
она | 587 | 1873 (+) |
они | 652 | 1019 (+) |
тот | 285 | 885 (+) |
я | 1205 | 1098 (-) |
Из таблицы видно, что стиль повествования в "Летос" идёт преимущественно от третьего лица, а в "МК" — наоборот.
Структура "Московского клуба".
Цитата, предложение:
"""
Любой Анклав мира находится на территории какого-либо государства, и каждое правительство, на территории которого расположен Анклав, сознательно или подсознательно считает его «своим».
"""
Слова в предложении повторяются, локальная динамика MATTR падает. Автор описывает локацию и называет сущности своими именами: "Анклав/территория", фантаст повторяет ключевые слова в каждом подобном абзаце/отрывке. Панов не размывает в динамике лемму "Анклав" и п.д. на ТОП-слова: "он/они" или "тот/те", возможно, для того чтобы не запутать читателя и заодно блеснуть своим активным словарным запасом(высокий КУЛ). Условно, через каждую 0.01% повествования автор подробно расписывает редкие в массе словечки: "мутабор; генавры; раллер; психопривод; суперсобака; нейкист; синдин; анклав" уникальными словами, которые далее по тексту редко встречаются.
Например, одно из уникальных описаний Анклавов (пять слов из восьми более не повторяются в романе), цитата:
"""
«Баварский район» во Франкфурте, «Площадь Мао» в Гонконге…
"""
Описав одну территорию, автор переходит к следующей локации "Анклава" с совершенно новым набором словоформ. Глобальный словарь растёт, КУЛ/HD-D↑, а в динамике "Анклав" и ему п.д. слова повторяются, MTLD/MATTR↓.
Структура "Летоса".
Цитата, отрывок:
"""
— Больно? — Она осторожно коснулась израненной кожи подушечками теплых пальцев.
— Немного, — неохотно признал тот. — Лавиани остановила это на время, но {опущение местоимения, чтобы не повторяться} сказала, что указывающие справятся лучше. Именно поэтому я приехал в ваше герцогство.
Ее левая рука загорелась светом, Шерон ощупывала каждый дюйм рисунка.
"""
Все слова в динамике уникальные, поэтому и локальные MTLD/MATTR↑ растут, но глобальные КУЛ/HD-D↓ падают, т.к. по всему роману "она; тот; лавиани; я; её; шерон" — это ТОП-слова, т.е. часто употребляемые, а в сцене комбинированные, разные.
5. Парадокс разрешён, по факту его и вовсе не было.
"Московский клуб" — это глубокое разнообразие (термины и придуманные словечки, которые то и дело локально повторяются, но их много), текст чаще от первого лица с богатой лексикой, но с частыми повторами слов-сущностей внутри сцен (техничность выше и спотыкания тоже).
В "Летос" глагольные сцены размыты однообразными ТОП-словами в моменте, но глобально используется один и тот же набор слов местоимений в связке с действием: <он/она/они/тот... сказал/остановил/был...>, содержание от третьего лица с простой лексикой и условным разнообразием внутри абзацев (более продолжительное в моменте изложение без спотыканий о тавтологию).
Если изменить размер рамки MATTR с 200 до 650 слов, то для обоих романов результат сравняется, дальнейшее увеличение рамки окна начнёт считать перевес локального лекс. разнообразия уже в пользу "МК". То есть короткие абзацы (отрывки) в 100-300 слов Пехов чеканит с лёгкой руки: упрощённые по сравнению с лексикой Панова.
MATTR/MTLD vs HD-D/КУЛ (локальный vs глобальный показатель) не обязаны идти в унисон на одном тексте, т.е. обоим ползти вверх или вниз, доказательство получено на практике. Более того, глобальные HD-D и КУЛ не обязаны идти в едином ритме! Проэкспериментируем это утверждение на ладони: если проанализировать текст литературного произведения О. Славниковой, "Стрекоза, увеличенная до размеров собаки", то получим:
· {HD-D ~92.16%};
· {КУЛ ~19.57%/50K слов}.
Для сравнения смотрим на "СМИ", где:
· {HD-D ~92.97%};
· {КУЛ ~16.72%/50K слов}.
— Ещё один парадокс?!!
— Да.
— Ой, всё!
Хорошо, мы подобрались к физическому смыслу всех метрик.
MATTR/MTLD — отражают расчёты последовательного потока (фрагментарно): насколько разнообразен язык прямо сейчас в сцене, локальные метрики текста. Меры показывают то, как автор комбинирует слова в отрывках, порядок слов очень важен — поэтому меры и локальные. Оценка структуры текста.HD-D — показывает словарное разнообразие автора в целом через всевозможные комбинации выборок в 42 слова. Условно глобальная метрика текста. Мера отображает то, как как автор пользуется своим словарём на протяжении всего изложения: гармонично или "тавтологично". Порядок слов абсолютно не важен, но важны пропорции слов. Оценка глобального лексического разнообразия.КУЛ — отображает истинное богатство словарного запаса автора на прозе, а не лексическое разнообразие на уровнях. Порядок слов абсолютно не важен и не важны пропорции слов. Глобальная метрика текста, не зависящая от длины изложения, и с точностью ~99.5%, с условием, что в тексте не менее 50000 слов, т.е. практически любой роман в массе. Чт��бы измерить истинную богатую речь автора в произведении (его словарь), не обязательно брать алгоритм метрики КУЛ, достаточно в качестве порога изменить 42 на 50К в HD-D, но из-за того, что HD-D предсказывает (идеальная точность), а КУЛ симулирует, у HD-D/50K может быть чуть иной результат, но очень близкий к КУЛ (~макс. разница — одна сотая), и большие накладные расходы на вычисления.
Упрощённое различие между КУЛ и классическим HD-D/42. Пример: Алиса - 1 слово и Боб - 9 слов; или Алиса - 5 слово и Боб - 5 слов, для КУЛ не важна частотность, при любом раскладе будет 2 уникальных слова из 10 (словарь автора). Для (классического) HD-D комбинации слов также не важны, но очень важны их пропорции (вес слов/частотность).
Аналогия с шахматами (развернуть блок).
Стратегия (+вскрыть ферзевой фланг и +ворваться на 7-ю горизонталь ладьёй, +разорвать пешечную цепь, +поскорее разменять лёгкие фигуры) — это КУЛ++++. Тактика — реализация плана для достижения вышеуказанной стратегии — это MATTR/MTLD/HD-D (+зафорпостить коня, +сделать связку, +сдвоить ладьи по вертикали, +разменять фланговые пешки), порядок тактических приёмов не важен, но важны повторы — это HD-D++++, а MATTR/MTLD — это те же комбинации и повторы приёмов (плюсов, порядок важен) в разной или строгой последовательности из тактики для реализации общей стратегии, только фокус здесь сосредоточен на тактике, а не на стратегии. Сколько плюсов и в каких комбинациях они реализованы — всё это в совокупности и говорит о силе и стиле шахматиста.
Даже для базового сравнительного анализа лексического разнообразия у изложений недостаточно брать на выбор всего лишь одну современную метрику текста, например, MATTR или HD-D, как это иногда делали некоторые филологи в исследованиях, а потом интерпретировали неоднозначные полученные результаты.
[7] Прямая речь: доля диалогов (ДД) рассчитана относительно кол-ва всех слов, а не относительно всех символов или предложений и без ремарок автора. Довольно сложная операция при разработке алгоритма. Нелёгкая и при оформлении на письме: иногда встречались ошибки построения прямой речи у автора текста "Стрела...".
Разнообразные примеры предложений из "СМИ" с построением и выделением прямой речи.
«— И ты, как я понял, путешествуешь. Скитаешься по миру, ищешь приключений — верно?»«— Это как ты понял? —переспросил Джоакин.»«"Барон тебя выгнал, —решил Хармон.— Еще и не заплатил. Интересно знать, почему?.."»«Эрвину захотелось крикнуть во весь голос: "Остановитесь! Снимите проклятые гобелены, прекратите репетицию!»
У обоих авторов ДД близка к стандартной, к 1/3 повествования: в "ИП" больше прямой речи, чем в "СМИ", а в "СМИ" её оформление разнообразнее. Для сравнения: в классике Ф. Достоевского "Преступление и наказание" — {ДД ~45%}, {социум↑↑}.
[8] Даже не читая романы, на основе частот: ТОП биграмм и триграмм можно выделить основную тематику изложения, и это — дворянство.
ТОП-10 биграмм в "ИП" | ТОП-10 биграмм в "СМИ" |
"лорд Тайвин"/129; | "леди Сибил"/187; |
ТОП-5 триграмм в "ИП" | ТОП-5 триграмм в "СМИ" |
"Мирри Маз Дуур"/52; | "Хармон Паула Роджер"/41; |
Для сравнения в многократно упомянутом произведении "Московский клуб", ТОП-10 биграмм: "Анклав Москва"/100; "Москва территория"/68; "молодой человек"/47; "должно быть"/40; "территория Болото"/32; "Фадеев Групп"/30; "пожать плечами"/28; "доктор Кауфман"/28; "менеджер Ассоциации"/28; "могло быть"/27. В этом романе тематика повествования явно не продворянская.
[9] О трёх главных героях, попавших в ТОП-10 слов, и о локациях.


Чередование упоминаний главных героев, которые видим на графиках, связано с тем, что действующие лица не идут на дело вместе и не ведут между собой бесед, т.е. наблюдаем классический литературный нарратив: множественную сюжетную линию. Обобщая: в каждом романе по три главных героя из множества персон вошли в ТОП-10 слов (служебные части речи и местоимения не брались в расчёт), и у всех наблюдается параллелизм. К родственности произведений можно отнеси и факт о том, что самые главные герои в обоих романах (№1 по частоте упоминаний) — это северяне ~одного возраста: в "ИП" — Джон, в "СМИ" — Эрвин.
Спойлер (развернуть блок).
А если проанализировать фэнтезийную сагу "Полари" за пределами дебютной книги "СМИ", т.е. распарсить цикл, все 6 книг, то ключевой персонаж Эрвин — единственный из всех действующих лиц, кто закрепился в ТОП-10-15 часто употребляемых слов каждой книги.
Цикл "Полари" — завершён, а цикл "ПЛИО" — нет, поэтому железный факт предоставлен только про Эрвина.
О локациях (развернуть блок).


К условным сходствам в обоих романах можно отнести такой геофакт: обе главные столицы находятся в средних широтах, а региональные, главные, зимние резиденции расположены в северных широтах и в условной близости к малоизученным землям; в "ИП" — эта населённая территория "за стеной", а в "СМИ" безлюдная локация называется "Запределье".
В "ИП" баланс упоминания ключевого северного замка относительно столицы выше ~в 2.5 раза, а в "СМИ" это соотношение ~равное.
[10] Закон Ципфа.
Закон Ципфа («ранг — частотность») — эмпирическая закономерность распределения частотности слов естественного языка: если все слова языка (или просто достаточно длинного текста) упорядочить по убыванию частотности их использования, то частотность n-го слова в таком списке окажется приблизительно обратно пропорциональной его порядковому номеру n, так называемому рангу этого слова.
__(Wikipedia)__
Текст подчиняется закону, если наклон "a" в диапазоне логарифмических шкал: -0.8..-1.2.
Сгруппировал и рассортировал леммы, включая служебные части речи. Оба произведения отклоняются от закона Ципфа, причина в голове графика. В "ИП" резкое отклонение за счёт недостатка ТОП-10 слов (предлоги союзы). В "СМИ" отклонение тоже в голове графика за счёт недостатка тех же ТОП-слов, но не такое интенсивное. Оригинал "ИП" на английском также не подчиняется закону Ципфа. А, например, дебютный фэнтези-роман "Летос" из цикла "Синее пламя" А. Пехова подчиняется природе закона (a=-1.179), как и данная статья (a=-0.860).
К различиям в повествовании можно отнести и такой статистический тезис: в "СМИ" господствует обращение на "вы", более по-дворянски что ли, тогда как в "ИП" акцентируется обращение в большей степени по имени. У обоих нарратив от первого лица ~одинаковый, но в "ИП" наблюдение от третьего лица выше ~на 65%.
Из-за разной длины текстов глобальную плотность доли телесного повествования (ДТП) не имеет смысла сравнивать, ввожу понятие — локальное восприятие ДТП. В лингвистике есть метод MSTTR, суть которого резать текст на одинаковые отрезки и для каждого окна/отрезка делить уникальные слова на общие, этот подход более стабилен, чем обычный TTR на разных по длине текстах. Воспользуюсь его идеей, только делить буду не уникальные слова, а слова из анатомического словаря, включая повторы, а в качестве рамки возьму окно в 200 лемм (средняя скорость чтения ~200 слов в минуту).
Результат: в "ИП" на треть сильнее преобладает доля телесного нарратива, по сравнению со "СМИ" {локальное восприятие: 4.8 телесных сигнала в минуту чтения, разброс CV=78%} — феноменальный показатель; в "СМИ" {локальное восприятие: 3.5 телесных сигнала в минуту чтения, разброс CV=90%}.
"рука:852/626"; "глаз:582/420"; "голова:460/391"; "лицо:457/303"; "нога:373/222"; "кровь:318/128"; "палец:216/135"; "волос:202/103"; "плечо:204/191"; "колено:135/52"; "рот:81/77"; "сердце:113/108"; "грудь:126/169"; "тело:114/166"; "спина:107/153"; "душа:32/165"; "губа:0/111" — из секции ТОП-300 слов. Ещё одно подтверждение того, что для Мартина, по сравнению с Суржиковым, работать над персонажами важнее, чем плести паутину мира. Даже на обложках книг (приложены в самом начале статьи) визуальная биологическая составляющая в "Игре престолов" в объёме больше, чем у "Стрелы, монеты, искры". А создавали их осознанно настоящие художники, в отличие от бездушных моделей, хотя по поводу второй у меня имеется некоторый скепсис.

Синтаксическая дактилоскопия
Посмотрим на отпечатки романов. Отпечаток — это графический слепок глубины текста. Глубина ≠ длине предложения: она показывает вложенность смыслов. И чем больше эта вложенность, тем труднее мозгу дешифровать смысл текста на лету — это лингвистический факт. Из-за многоуровневой сложности, бывает, и сам автор может запутаться: например, пропускает слово, которое напрашивается, или окончания в словах становятся несогласованными. Разная глубина текстов — это не хорошо и не плохо, это авторский стиль, который заставляет читателя напрягаться, распарсивая суть идеи (глубина↑↑↑) или наоборот не задумываться над происходящим (глубина↑)." Считать вложенность/глубину учат в школе на уроке русского языка: разбивают текст на предложения; в предложении ищут главное слово, обычно — это глагол;
(вспоминается ГГ Самохина из титулованной прозы "Vita nostra", где она была расфуфыренным глаголом в повелительном наклонении и дел наворотила)
считают слова, которые подчиняются глаголу; если слово не подчиняется глаголу, а подчиняется подчинённому, то добавляют +1 ко вложенности...
Пример для сравнения из мира программирования: JSON — простой словарь, читается легко, вложенный уже напрягает мозг, а 5-й уровень вложенности невероятно труден для понимания даже с форматированием. Глубина — это и есть вложенные словари в данном примере.
Средняя глубина текста в обоих романах практически одинакова, небольшое различие можно списать на погрешность метода измерения. О погрешностях: использовалась самая сильная модель spacy/lg, которая по размеру в 10 раз больше средней модели spacy/md (общая разница по средней глубине текста между моделями ничтожная ~2 сотых, но тепловые карты различаются и в пользу spacy/lg, т.е. прогонял отдельные тесты на сравнение моделей md/lg, модель md упрощает/ошибается в сложных предложениях).



Облако лемм
Облако слов/лемм — это визуализация лексического ландшафта текста, превращающая статистику в интуитивно понятную иерархию образов. Реализация: вычищены местоимения, союзы, предлоги, междометия и глагол-лемма "быть", т.к. "быть" практически всегда врывается в ТОП-5 слов любой прозы. Баланс масштабирования слов намеренно максимально смещён в пользу красоты заполнения пространства, нежели реального масштабирования слов на основе их частотности.
Habr агрессивно пережимает изображения до среднего качества, посмотреть исходные визуализации в высоком разрешении -> ("ИП" / "СМИ", см. функцию: "открыть оригинал").


В качестве заключения
В дебютной книге "Игра престолов" обустройство мира представлено по большей части через социальную составляющую: из суховатых диалогов, а дебютная книга "Стрела, монета, искра" в объёме потолще, с меньшим количеством диалогов, но гораздо более эмоциональными, а также, несмотря на юный возраст писателя, с более могучей богатой речью — и в динамике, и глобально, при этом удобочитаемость в романах одинаково высока. В "Игре престолов" присутствует феноменальная доля телесного повествования — это говорит о том, что для автора работать над персонажами интереснее, чем плести паутину мира. Фантаст Суржиков был увлечён описанием событий с хронологической точностью и не особо любил студёную пору, Мартин же, напротив, вообще не придерживался дат. Родственные факты: на основе n-грамм увидели общую тематику — дворянство, даже тематические палиндромы слов пересеклись — оба про сиров, "СМИ/не Бен", "ИП/сир Арис"; в анализируемых эпических фэнтези множество главных героев, и у каждого из романов в ТОП-10 часто употребляемых слов смогли войти сразу по три персоны, чьи сюжетные истории развиваются параллельно; а самые популярные персонажи — это северяне.
В статье распарсены замысловатые показатели текста: на математику и естественный физический смысл, чего автор не находил в удовлетворительном объёме в научной литературе. Для анализа русскоязычной прозы автором предложена и описана интересная метрика:
КУЛ, возможно, в 2026 году опубликую/продублирую материал по ней и в научном журнале, поставив меру на рельсы (массовое использование). Предварительные рецензии об алгоритме можно прочитать вот здесь.Прелесть экономичного NLP анализа в том, что от начала и до конца, включая всю статистику, облако слов, графики и закон Ципфа, он локальный и доступен технарям на ладони (офлайн/смартфон).
Практическое применение: мои ранние публикации страдали от низкого лексического разнообразия и "яканья", спустя годы вышеописанные в статье алгоритмы подтвердили повышение навыка письма, где результат выражается в цифрах; интересно сравнивать литературу как между собой, так и со своими публикациями, ведь алгоритмы современных метрик считаются избавленными от "кривых эффектов" длины изложения.

𝕋𝕙𝕖 𝕖𝕟𝕕

Издание | 1984г. | 1967г. |
Кол-во предложений | 9_531 | 9_497 |
Кол-во слов | 112_699 | 112_438 |
Средняя длина предложений | 11.8 слов | 11.8 слов |
Доля эмоционального тона | 14.4% | 11.5% |
Доля диалогов | 29.1% | 28.2% |
КУЛ | 15.50%/на 50_000 слов | 15.55%/на 50_000 слов |
MATTR | 67.44%/200 слов | 67.50%/200 слов |
HD-D | 90.86% | 90.86% |
Индекс Гапакса | проседание в конце романа | аналогично |
ИУФО | 57.0 | 56.9 |
Закон Ципфа | (a = -1.150), | (a = -1.147), |
Биграммы | ТОП-10 | аналогично |
Самое длинное предложение | 586 зн. | 580 зн. |
Самое длинное слово | 23 зн. | аналогично |
Палиндромы слов | 25 слов | 26 слов |
Дорогие читатели, вывод по "МиМ" попробуйте сформулировать сами на основе полученной информации. Также приветствуются ваши мнения о материале в комментариях к статье.
💎 Опробовать поисковую систему, разработанную автором статьи.
* Аннотации, оценки читателей взяты из источника свободной информации — fantlab.ru.