Инструменты
Руководства

Статистика текста

Текст

Подсчитывает символы, байты, слова, строки, предложения и абзацы с поддержкой разных языков.

100 % на клиенте Без бэкенда
Символы
Символы (без пробелов)
Байты (UTF-8)
Слова
Строки
Предложения
Абзацы
Время чтения
На этой странице

Что такое инструмент статистики текста?#

Инструмент статистики читает блок текста и сообщает, что в нём фактически есть: сколько символов, сколько слов, сколько предложений, сколько байт он занимает и примерно сколько времени уйдёт на чтение. Звучит тривиально, пока не упрётесь в кусающий лимит — твит на один символ длиннее допустимого, meta description, молча превышающий 160 байт, поле ввода, чей maxlength измеряется в UTF-8 байтах, а не в видимых символах, или черновик с молча неверным значком «чтение 2 минуты».

Подвох в том, что «слово» — не универсальное понятие. Английские слова разделены пробелами, но китайский, японский и тайский — нет: 你好世界 — это четыре символа и четыре слова без единого пробела. Наивный .split(' ') сообщит об этой строке как об одном «слове». Этот инструмент считает по одному символу для CJK-идеографов, хираганы, катаканы и тайского, а для латиницы, кириллицы, греческого, деванагари и хангыля — по пробельным группам, поэтому счётчик слов честен во всех письменностях. Размер в байтах использует настоящее UTF-8 кодирование (а не string.length), что и важно, когда сервер или колонка базы данных считает байты.

Всё работает в вашем браузере — никакого бэкенда, никакой загрузки.

Как пользоваться#

  1. Введите или вставьте текст в поле Ввод слева. Поле принимает любую письменность и сохраняет переводы строк.
  2. Нажмите Пример, чтобы загрузить готовый отрывок, если хотите просто посмотреть, как меняются числа, или Очистить, чтобы опустошить поле.
  3. Читайте правую панель. Восемь строк обновляются вживую по мере ввода:
    • Символы — общий счёт кодовых единиц, включая пробелы и переводы строк.
    • Символы (без пробелов) — то же минус каждый пробельный символ.
    • Байты (UTF-8) — длина в UTF-8 байтах; то число, которое реально видят VARCHAR(n) базы данных или лимит HTTP-заголовка.
    • Слова — счётчик с учётом письменности (CJK/кана/тайский — посимвольно, остальное — по пробельным группам).
    • Строки — строки, разделённые переводом строки.
    • Предложения — разбиение по терминаторам в разных письменностях (. ! ?, плюс CJK 。!? и арабский ؟۔).
    • Абзацы — блоки, разделённые пустой строкой.
    • Время чтения — слова, делённые на ~200 слов в минуту, с округлением вверх как минимум до одной минуты.

Ключевые возможности#

  • Подсчёт слов с учётом письменности. CJK-идеографы, хирагана, катакана и тайский считаются как одно слово на символ; латиница, кириллица, греческий, деванагари и хангыль — по пробельным группам. Смешанное предложение получает осмысленный итог, а не сломанный.
  • Настоящий размер в UTF-8 байтах. 你好 — это 6 байт, а не 2; счётчик отражает реальную стоимость хранения и передачи.
  • Разбиение на предложения во многих письменностях. Распознаются CJK и арабские терминаторы, поэтому 今天天气很好。明天见。 считается как два предложения, а не одно.
  • Вживую, без нажатия. Числа пересчитываются при каждом нажатии клавиши; не нужно помнить о шаге «Создать».
  • Остаётся на вашей машине. Вставленный текст никогда не покидает страницу — ни запроса, ни лога, ни бэкенда.

Разбор примера#

Вставьте классический панграм:

The quick brown fox jumps over the lazy dog.

Панель сообщит:

  • Символы: 44 (точка и 8 пробелов включены)
  • Символы (без пробелов): 36
  • Байты (UTF-8): 44 (каждый символ — ASCII, поэтому байты равны символам)
  • Слова: 9
  • Строки: 1
  • Предложения: 1
  • Абзацы: 1
  • Время чтения: 1 минута (9 слов сильно меньше 200, но счётчик округляет вверх до минуты, чтобы пустые «0 мин» не появлялись)

Замените строку на китайское предложение 你好世界。, и счётчик слов станет 4 (по одному на символ ханьцзы), а байты прыгнут до 13 — четыре 3-байтовых символа плюс 1-байтовая точка. Этот разрыв между «4 символами» и «13 байтами» — как раз тот сюрприз, который инструмент и должен выявить до того, как его поймает отправка формы.

FAQ#

Почему счётчик байт сильно больше, чем счётчик символов?#

Потому что UTF-8 кодирует не-ASCII символы несколькими байтами: один байт для базового латинского диапазона, два для Latin Extended (à, ñ, ç), три для большинства CJK-идеографов и индийских письменностей и четыре для эмодзи и астральной плоскости. Формы и базы данных, ограничивающие бюджет в байтах, видят большее число, поэтому инструмент сообщает байты так же.

Счётчик слов для моего китайского текста кажется завышенным. Это правильно?#

Скорее всего да. CJK не разделяет слова пробелами, поэтому посимвольный подсчёт — это принятый и воспроизводимый способ их измерить, и он совпадает с тем, как большинство редакторов и текстовых процессоров сообщают длину CJK. Если нужна лингвистическая сегментация слов, а не подсчёт символов, режим CJK инструмента /en/text/word-frequency/ использует сегментатор браузера для разбиения по настоящим границам слов.

Какую скорость чтения предполагает «Время чтения»?#

Около 200 слов в минуту — широко используемое среднее для взрослого молчаливого чтения обычной прозы. Это грубая оценка — технический текст, код или иностранный язык читаются медленнее. Значение всегда округляется вверх как минимум до одной минуты, поэтому короткий фрагмент не показывает бессмысленное «0 минут».

Считает ли слова в фрагменте кода так же, как в прозе?#

Да — идентификаторы вроде getUserById трактуются как один токен, потому что внутри них нет пробелов или знаков препинания. Если вы хотите, чтобы getUserById считался как три слова, сначала прогоните его через делитель регистра инструмента /en/text/transform/.