Разработать класс с методами анализа текста

Сначала определите правила: считаем словами последовательности букв без учёта регистра, спецсимволами — Unicode-пунктуацию, палиндромами — уникальные слова длиной больше одного. Затем выделите четыре метода.

Короткий ответ

Что ответить на собеседовании

Сначала определите правила: считаем словами последовательности букв без учёта регистра, спецсимволами — Unicode-пунктуацию, палиндромами — уникальные слова длиной больше одного. Затем выделите четыре метода.

Подробный разбор

Ответ с пояснениями

Условие

Создайте класс, который принимает строку с произвольным текстом. Первый метод класса выводит в консоль самое длинное слово из переданного текста. Второй метод печатает слово, которое встречается в тексте наиболее часто. Третий метод считает и выводит количество специальных символов (например, точек, запятых и т.п.) в тексте. Четвёртый метод выводит все найденные палиндромы, разделяя их запятыми.

Ответ

Сначала определите правила: считаем словами последовательности букв без учёта регистра, спецсимволами — Unicode-пунктуацию, палиндромами — уникальные слова длиной больше одного. Затем выделите четыре метода.

Пример с указанными правилами и выбором первого слова при равенстве:

import re
import unicodedata

class TextAnalyzer:
    def __init__(self, text):
        self.text = text
        self.words = re.findall(r'[^\W\d_]+', text.casefold())

    def longest(self):
        print(max(self.words, key=len, default=''))

    def most_frequent(self):
        counts = {}
        for word in self.words:
            counts[word] = counts.get(word, 0) + 1
        print(max(counts, key=counts.get, default=''))

    def special_count(self):
        print(sum(unicodedata.category(char).startswith('P')
                  for char in self.text))

    def palindromes(self):
        result = dict.fromkeys(word for word in self.words
                               if len(word) > 1 and word == word[::-1])
        print(', '.join(result))

Пустой текст даёт пустые слова/палиндромы и счётчик 0. Цифры, пробелы и математические символы не считаются пунктуацией в этом контракте.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее