belun.app Блог
EN

Как сделать облако слов, которое реально что-то показывает

Зачем нужны облака слов, как устроено масштабирование и какие ошибки превращают облако слов в бессмысленный шум.

Разноцветный коллаж из пересекающихся слов — визуализация облака слов на основе текста

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

Облако слов — это просто частота, показанная визуально: чем чаще слово встречается в тексте, тем крупнее его рисуют. Вставьте речь, пачку отзывов, открытые ответы из опроса или главу книги — и Генератор облака слов сам подберёт размер и расположение каждого слова прямо в браузере.

Когда это действительно полезно

Облако слов хорошо работает как первый взгляд на текст, а не как окончательный вывод. Вот случаи, где оно себя оправдывает:

  • Расшифровки речей и интервью. Прогоните через облако предвыборную речь политика — и его основные тезисы видны сразу, без чтения четырёх тысяч слов.
  • Открытые ответы в опросах. Если 200 человек ответили на вопрос «что нам стоит улучшить», облако выявляет повторяющиеся жалобы быстрее, чем таблица.
  • Отзывы и обратная связь. Загрузите отзывы из App Store за год и посмотрите, что задаёт тон — «зависает», «медленно» или «отлично».
  • Обучение и словарный запас. Вставьте текст для чтения — и сразу видно, какие слова несут смысловую нагрузку.

Где облако бессильно — это оценка тона. Оно не скажет, почему «возврат» встречается так часто: потому что людям нравится политика возврата или потому что она их бесит. В момент, когда слово считают в изоляции от контекста, сам контекст пропадает. Считайте облако указателем, что стоит прочитать внимательнее, а не готовым выводом.

Как на самом деле работает масштабирование

Внутри инструмент убирает пунктуацию, переводит всё в нижний регистр (если не включён учёт регистра) и считает, сколько раз встречается каждое слово. Слово с максимальным количеством становится опорной точкой — все остальные получают размер относительно него.

Вот момент, который объясняет, почему одно слово не «съедает» всю картинку: масштаб растёт не линейно, а по квадратному корню. Если «клиент» встречается 100 раз, а «поддержка» — 25, линейная шкала сделала бы «клиент» в четыре раза крупнее. С корневым масштабом разница — примерно в два раза, что ближе к тому, как читатель на самом деле воспринимает картинку. Без этой поправки одно слово-выброс превращает всё облако в один большой ком с остальными словами, зажатыми по углам.

Расположение ищется по спирали. Самое частое слово первым забирает центр. Каждое следующее начинает поиск от центра и раскручивается наружу, пока не найдёт свободное место без пересечения с уже размещёнными словами. Если холст заполнился раньше, чем слово нашло себе место, — это слово (к тому моменту почти всегда одно из самых редких) просто не попадает в облако, вместо того чтобы налезать на другое.

Стоп-слова: фильтровать почти всегда

«И», «в», «на», «это» — такие слова встречаются в любом тексте и без фильтра забьют собой весь подсчёт, ничего не сказав о теме. По умолчанию инструмент отфильтровывает около 170 таких служебных слов (список ориентирован на английский текст).

Отключайте фильтр только для нестандартных задач — например, если проверяете, не злоупотребляет ли автор словом «очень», или сравниваете плотность слов-паразитов между двумя черновиками. Для всего остального фильтр стоит держать включённым.

Как получить облако, а не кашу

Несколько вещей, которые определяют, будет облако читаемым или превратится в мешанину:

  • Ограничьте число слов. Больше 60–80 слов — и самые мелкие превращаются в нечитаемые пятнышки. Значение по умолчанию (60) — разумный потолок для большинства текстов.
  • Дайте достаточно текста. Десяти предложений не хватит для осмысленного распределения — нужны реальные повторы, чтобы разница в размере что-то значила. Пара сотен слов — приемлемый минимум.
  • Следите за похожими формами слов. «Продукт» и «продукты» считаются раздельно, из-за чего одно доминирующее слово может распасться на два средних. Если это искажает результат, быстрая замена перед вставкой текста решает проблему.
  • Выбирайте палитру под задачу. Zinc выглядит нейтрально и по-деловому для отчёта; sunset или ocean лучше подходят для чего-то менее формального, например слайда для ретроспективы команды.

Как сохранить результат

Скачивайте в PNG, если нужно просто вставить картинку в слайд или пост — рендер идёт в высоком разрешении, так что при увеличении на экране размытия не будет. Скачивайте в SVG, если облако пойдёт в документ, который будете печатать или часто масштабировать: векторный текст остаётся чётким при любом размере, и отдельные слова потом можно редактировать, например, в Illustrator или Inkscape.

При повторной генерации с тем же текстом раскладка каждый раз немного меняется, потому что поиск позиции для первого слова начинается со случайного угла. Если раскладка понравилась — скачайте её сразу, вернуться к конкретному варианту после повторной генерации не получится.


Вставьте свой текст в Генератор облака слов и посмотрите, что окажется на поверхности. Иногда это именно то, что вы и ожидали увидеть. А иногда — как в случае с моим «возвратом» — это то, на что вы избегали смотреть прямо.

Попробуйте инструмент

Генератор облака слов →