Читаемость текста: 17 формул для 86 языков
Переведённая страница может быть корректной, полной и вдвое тяжелее для чтения, чем оригинал. На вычитке этого не видно: рецензент свободно читает исходный язык и вежливо читает целевой.
Код: ReadSight, лицензия MIT.
Это самый тихий дефект контента из тех, что мы находим на аудитах. Английская страница держится на комфортном балле, украинская уходит на три класса выше, и отказы на переведённой странице не объясняются ничем в аналитике.
Что измеряет балл читаемости
Каждая формула считает две вещи: слова в предложении и слоги в слове. Длинные предложения и длинные слова поднимают класс, короткие опускают. О правдивости, структуре и полезности текста балл не говорит ничего.
Flesch Reading Ease измеряется по шкале в сто баллов, где выше значит проще. Gunning Fog и класс Flesch-Kincaid показывают школьный год, где ниже значит проще. Смешать их на одном дашборде значит получить график, который читается как шум.
Это различие важно, когда клиент спрашивает, почему немецкая страница «хуже» английской. Она не хуже. Её измеряют другой формулой с другими коэффициентами, и честное сравнение возможно только между двумя немецкими страницами.
Почему перевод уходит вверх
К росту класса ведут три привычки.
Первая это калька: сохранить синтаксис исходника и заменить слова. Английский терпит предложение на четырнадцать слов с двумя придаточными, украинский и русский читаются лучше, когда оно становится двумя.
Вторая это номинализация. Переводчику в спешке проще взять существительное, и «реализация оптимизации» заменяет «мы оптимизировали».
Третья это постоянство терминов. Название продукта латиницей посреди кириллицы считается одним длинным словом в каждой формуле, и страница из названий API выглядит сложнее, чем читается. Это артефакт измерения, и лечится он не переименованием продукта.
Одна библиотека вместо девяти реализаций
ReadSight считает текст на 86 языках по 17 формулам без зависимостей в рантайме, кроме mbstring и json. Интересна здесь развязка между двумя видами формул.
Пять формул работают на любом языке: Gunning Fog, SMOG, Coleman-Liau, Automated Readability Index и LIX. Они считают символы, слова и предложения, а это есть в любом языке.
Остальные двенадцать зависят от языка и несут опубликованные коэффициенты. Flesch Reading Ease и Flesch-Kincaid покрывают двенадцать языков. Wiener Sachtextformel отвечает за немецкий, Gulpease за итальянский, OSMAN за арабский, семейство Fernández-Huerta за испанский.
Поэтому английская страница получает девять формул, испанская одиннадцать, немецкая восемь, а тайское предложение никогда не оценивается метрикой только для английского. Одно это правило убирает самый частый способ сделать числа читаемости бессмысленными.
Слоги это место, где всё ломается
Счёт слогов недооценивают все. Эвристика «посчитай гласные и вычти одну» работает, пока не встречает «queue», «fire» или имя собственное, и ошибка накапливается на тысяче слов.
Библиотека берёт алгоритм переносов TeX по Frank M. Liang с наборами шаблонов на каждый язык. Тот же подход стоит за переносами в TeX и LibreOffice, и он даёт границы слогов, которые держатся на живом тексте, а не на словарных словах.
Как этим пользоваться
Балл читаемости полезен как коридор, а не как цель. Документация для разработчиков держится около десятого-двенадцатого класса. Маркетинговые страницы для широкой аудитории ниже. Юридический текст выше и должен там оставаться.
Погоня за «восьмым классом» везде вырезает нужную точность из справочной страницы и добавляет воду в короткую. Коридор это флаг: текст, вышедший за него, читают второй раз, и человек решает, нужна ли правка.
Для переведённых сайтов полезнее сравнение исходника и перевода внутри одной языковой семьи. Прыжок на три класса между английской страницей и её украинской версией значит, что нужен проход по длине предложений, а не переписывание.
Библиотека работает на PHP 8.2 и выше, распространяется по MIT, показывает 257 проходящих тестов и PHPStan максимального уровня. Она запускается в шаге сборки или командой WP-CLI, поэтому проверка может блокировать выкладку без сетевого вызова.
Рядом: SEO о том, что происходит после того, как текст стал читаемым, и веб-разработка о том, где проверка встаёт в релиз. Ещё один проход перед публикацией: 20 когнитивных искажений в копирайтинге, потому что читаемый текст всё равно может просить читателя о неверном решении.
Что почитать: Readability в Википедии и рекомендации WCAG по уровню чтения.
