Word Frequency: топ-K самых частых слов в большом тексте

Middle Python data

Условие задания

**Контекст:** задача на обработку текста, спрашивают в data engineering командах: Яндекс Дзен, Mail.ru Cloud, Тинькофф. Проверяет знание `collections`, `heapq`, умение думать о производительности.

## Условие

Дан большой текст (строка или файл). Верни **K самых частых слов** и их количество, отсортированных по убыванию частоты. При равной частоте — **лексикографический порядок** (a-z).

## Требования

1. Нормализация слов: lowercase, убрать пунктуацию, разделить по whitespace
2. Обработать пустую строку → []
3. K может быть больше чем количество уникальных слов → вернуть все
4. Предусмотреть **стоп-слова** (параметр, опционально)
5. **Производительность:** text может быть 100 МБ+ (1М слов)

## API

[см. код в задании]

## Примеры

[см. код в задании]

## Constraints

- text: до 100 МБ
- k: 1 ≤ k ≤ 10⁶
- Unicode support требуется (русские слова, emoji игнорируются)

## Что ценится на собесе

- **Правильная нормализация** (regex для пунктуации, lowercase)
- **Использование `collections.Counter`** (идиоматично)
- **Понимание сложности** sort (n log n) vs heap (n log k) — когда k << n разница в разы
- **Stream processing** для больших файлов (чтение построчно)

Темы

algorithms hash-map sorting heap collections

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Word Frequency: топ-K самых частых слов в большом тексте"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: algorithms, hash-map, sorting, heap, collections.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Python»?

На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.

← Все задания