Определите границы слов и правила регистра, затем посчитайте частоты через Counter. Для обычного текста можно выделять последовательности букв.
Подсчёт количества вхождений уникальных слов в тексте
Определите границы слов и правила регистра, затем посчитайте частоты через Counter. Для обычного текста можно выделять последовательности букв.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Вам предоставлен блок текста. Необходимо определить, как часто каждое уникальное слово встречается в данном тексте.
Ответ
Определите границы слов и правила регистра, затем посчитайте частоты через Counter. Для обычного текста можно выделять последовательности букв.
import re
from collections import Counter
def word_counts(text):
words = re.findall(r'[^\W\d_]+', text.casefold())
return dict(Counter(words))
В этом варианте регистр игнорируется, цифры и пунктуация разделяют слова. Например, Кот, кот и дом даст {'кот': 2, 'и': 1, 'дом': 1}. Словоформы вроде кот и кота считаются разными: лемматизация не входит в простой подсчёт.
Ожидаемое время линейно относительно размера текста, память зависит от числа уникальных слов. Для больших файлов применяйте те же правила последовательно к строкам или блокам, сохраняя границы токенов.