← Все вопросы

Как посчитать, сколько раз каждое слово встречается в тексте?

Задан 8 месяцев назад127 просмотров2 ответа
6

Нужно по тексту получить частоту слов: {'кот': 3, 'дом': 1, ...}. Делаю через словарь и if-ы, но кажется есть готовое решение.

2 ответа

11
✓ Принятый ответ — помог автору

collections.Counter создан ровно для этого:

from collections import Counter
words = text.lower().split()
freq = Counter(words)
print(freq.most_common(3))   # топ-3 слова

Если вручную — freq[w] = freq.get(w, 0) + 1 в цикле, тоже ок.

Данил Киселёв Counter + most_common — спасибо, прям то что нужно · 8 месяцев назад
2

перед подсчётом обычно ещё чистят пунктуацию, иначе «кот,» и «кот» разные

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект