Определите правила слов, регистра и стоп-слов, затем прочитайте файл, подсчитайте частоты и выберите первые 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 можно выбирать кучей вместо полной сортировки.