Перейти к содержимому

Проверка читаемости текста: 86 языков одной командой

Проверка читаемости текста: 86 языков одной командой

В брифе написано «пишите просто», и никто не измеряет, что вернулось. Редактор читает текст, находит его плотным и просит переписать так, что становится ещё плотнее. Проверка читаемости текста заменяет мнение числом, с которым автор может спорить, и занимает секунду на страницу.

Код: ReadSightJS, лицензия MIT.

@globus.studio/readsight измеряет текст на 86 языках в 19 системах письма. Внутри 17 формул, слоги считаются по шаблонам переносов TeX, зависимостей в рантайме нет.

Что заменяет число

«Слишком сложно читать» это суждение о человеке. «14 класс по Flesch-Kincaid, 23 балла по Flesch Reading Ease» это утверждение о тексте, и автор может за минуту проверить на нём другую версию.

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

Пять формул работают на любом языке

Gunning Fog, SMOG, Coleman-Liau, ARI и LIX считают текст на всех 86 языках, потому что они считают буквы и слоги, а не сверяются со списком слов. Остальные двенадцать несут опубликованные коэффициенты для конкретного языка.

Движок выдаёт каждому языку только те формулы, которые ему подходят: девять для английского, одиннадцать для испанского, восемь для немецкого, пять для тайского. Английская метрика не попадает на тайское предложение, и одно это правило снимает самый частый абсурд в многоязычной работе с контентом.

Слоги это место, где видна честность

Слоги считаются по алгоритму переносов Франка Лянга, тому самому, которым TeX разбивает строки десятки лет. Он точен в том, где слово можно перенести, и приблизителен в том, сколько в нём слогов, потому что перенос и фонетика это разные задачи.

Библиотека пишет это в README, а не прячет. Для славянских языков на кириллице, где один гласный равен одному слогу, включается эвристический счётчик со своим шаблоном гласных, и «дыхание» считается как четыре, а не как получилось бы по шаблонам TeX.

Что получает сборка на Node

Пакет выходит в ESM и CommonJS с типами TypeScript, поэтому уже существующей сборке не нужен новый инструмент. Покрытие держится на 100%, а совпадение с PHP-версией проверяется эталонными векторами по всем 86 языкам с допуском 1e-9.

Для контентной команды это значит, что число в редакторе и число в конвейере приходят из одной арифметики, и переписывание одной реализации не меняет молча другую.

Чего число не говорит

Оно не скажет, ясна ли мысль, идут ли подзаголовки за вопросами читателя и не длинно ли предложение по уважительной причине. Dale-Chall и Spache оценивают трудные слова по слогам, и README признаёт, что это оценка, а не исходные списки слов.

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

Что проверить перед внедрением

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

Потом решите, какой класс сложности считается нормой для вашей аудитории. Без этого числа проверка превращается в отчёт, который никто не читает.

Куда это встроить

Пользу приносят два места: проверка до публикации, которая не пускает текст выше согласованного класса, и линия по разделу сайта, которая показывает, не уезжает ли манера письма.

Оба стоят дешево. Первое это одна команда в CI, второе это таблица баллов по месяцам, и любое из них делает строку «пишите просто» в брифе чем-то значащей.

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