Счётчик частоты слов

Анализируйте текст и считайте, как часто встречается каждое слово, с ранжированием.

Счётчик частоты слов анализирует текст и показывает, как часто встречается каждое слово, от наиболее к наименее частому. Это мощный инструмент для писателей, редакторов, студентов и аналитиков данных, которым нужно понять распределение словарного запаса документа или выявить чрезмерно используемые слова.

Вставьте текст — инструмент разбивает его на отдельные слова, нормализует регистр («The», «the» и «THE» считаются одним словом) и отображает таблицу частот, отсортированную по количеству. Стоп-слова можно отфильтровать, чтобы сосредоточиться на значимых словах.

Анализ частоты слов имеет применение и за пределами письма: в лингвистике он лежит в основе показателей читаемости, в маркетинге раскрывает, какие термины чаще всего используют клиенты, а в SEO помогает определить естественную плотность ключевых слов в контенте.

Часто задаваемые вопросы

Реализация кода

from collections import Counter
import re

STOP_WORDS = {
    "a", "an", "the", "and", "or", "but", "in", "on", "at", "to",
    "for", "of", "with", "by", "from", "is", "are", "was", "were",
    "it", "this", "that", "be", "as", "not", "i", "you", "he", "she",
}

def word_frequency(text: str, stop_words: bool = True, top_n: int = 10) -> list[tuple[str, int]]:
    # Lowercase and extract words
    words = re.findall(r"[a-z']+", text.lower())
    if stop_words:
        words = [w for w in words if w not in STOP_WORDS]
    counter = Counter(words)
    return counter.most_common(top_n)

text = """To be or not to be, that is the question.
Whether tis nobler in the mind to suffer
the slings and arrows of outrageous fortune."""

for word, count in word_frequency(text):
    print(f"{word:<20} {count}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.