Поиск самых часто встречающихся слов в текстовом файле

Определите правила слов, регистра и стоп-слов, затем прочитайте файл, подсчитайте частоты и выберите первые 3 или 5. Для файла около 1 МБ обычно достаточно стандартных средств Python.

Короткий ответ

Что ответить на собеседовании

Определите правила слов, регистра и стоп-слов, затем прочитайте файл, подсчитайте частоты и выберите первые 3 или 5. Для файла около 1 МБ обычно достаточно стандартных средств Python.

Подробный разбор

Ответ с пояснениями

Условие

Имеется файл размером около 1 МБ, содержащий русский текст. Цель бизнес‑задачи – определить топ‑3 или топ‑5 слов с наибольшей частотой появления. Какие шаги и инструменты потребуются разработчику для создания такой функциональности?

Входные данные: текстовый файл (~1 МБ) с обычным русским текстом. Требуемый результат: список наиболее часто встречающихся слов (топ‑3 / топ‑5).

Ответ

Определите правила слов, регистра и стоп-слов, затем прочитайте файл, подсчитайте частоты и выберите первые 3 или 5. Для файла около 1 МБ обычно достаточно стандартных средств Python.

Пример: слова — последовательности русских букв, регистр игнорируется:

import re

def top_words(path, limit=5):
    counts = {}
    with open(path, encoding='utf-8') as file:
        for line in file:
            for word in re.findall(r'[а-яё]+', line.casefold()):
                counts[word] = counts.get(word, 0) + 1
    return sorted(counts.items(), key=lambda item: (-item[1], item[0]))[:limit]

При равной частоте выбран алфавитный порядок. Лемматизация, объединение е/ё и удаление служебных слов меняют смысл статистики и требуют отдельного согласования. Для огромного словаря top-N можно выбирать кучей вместо полной сортировки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее