Перейти до вмісту

Перевірка читабельності тексту: 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 про інший випадок, коли нативний інструмент без залежностей кращий за важкий.