1. Главная
  2. Библиотека
  3. Программирование
  4. По заданному тексту найдите n самых распространённых сл...
Разбор задачи

По заданному тексту найдите n самых распространённых слов и выведите их в качестве списка кортежей из двух элементов, первый из которых - само слово, второй - количество вхождений слова в текст. Решение оформите в виде функции findmostcommon_words(text,

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
По заданному тексту найдите n самых распространённых слов и выведите их в качестве списка кортежей из двух элементов, первый из которых - само слово, второй - количество вхождений слова в текст. Решение оформите в виде функции findmostcommon_words(text,

Условие:

По заданному тексту найдите n самых распространённых слов и выведите их в качестве списка кортежей из двух элементов, первый из которых - само слово, второй - количество вхождений слова в текст. Решение оформите в виде функции `find_most_common_words(text, num)`, текст следует обрабатывать при помощи `collections.Counter()`.

Также в тексте могут встречаться числа и иные символы, не относящиеся к словам (например, знаки препинания). Учесть это вам помогут старые добрые регулярные выражения (модуль `re`). Словом считается последовательность букв, состоящая из латиницы и кириллицы

Формат ввода
В функцию передаются аргумент-строка - текст, который необходимо обработать; число - количество самых популярных слов, которые надо найти.

Формат вывода
Функция должна вернуть список кортежей (формат описан в легенде).

Решение:

  1. Импортируем необходимые модули – collections для использования Counter и re для работы с регулярными выражениями.

  2. Определяем функцию find_most_common_words с параметрами text (строка с текстом) и num (число, обозначающее сколько самых распространённых слов нужно найти).

  3. Приводим текст к нижнему регистру, чтобы не учитывать различия между большими и маленькими буквами. Это позволит правильно сгруппировать одинаковые слова.

  4. С помощью метода re.findall с регулярным выражением, которое ищет последовательности символов, соответствующие латинским и кириллическим буквам, находим все слова из текста. Регулярное выражение "[A-Za-zА-Яа-яЁё]+" отыщет слова, состоящие из букв.

  5. Создаем объект Counter, который подсчитывает вхождения каждого слова в список найденных слов.

  6. Используем метод most_...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой метод модуля `collections` используется для подсчета вхождений элементов в последовательности и последующего получения наиболее частых элементов?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет