Skip to content

Latest commit

 

History

History
76 lines (52 loc) · 3.35 KB

lab_work_1.md

File metadata and controls

76 lines (52 loc) · 3.35 KB

Лабораторная работа №1

Дано

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

Пример: 'Mary was quick to realize that she had won the prize that was a desired thing that everyone wanted'

Что надо сделать

Шаг 0. Подготовка (проделать вместе с преподавателем на практике).

  1. Создать форк репозитория
  2. Установить необходимые инструменты для работы
  3. Изменить файл main.py
  4. Закоммитить изменения и создать pull request

Шаг 1. Получить частотный словарь по заданному тексту.

Ключ - слово, значение - число (частота). Функция должна возвращать объект типа dict.

Интерфейс:

def calculate_frequences(text: str) -> dict:
  pass

Шаг 2. Получить частотный словарь, не содержащий запрещенные слова.

Важно: словарь (результат первого шага) не меняется, формируется новый словарь. Функция должна возвращать объект типа dict.

Интерфейс:

def filter_stop_words(frequencies: dict, stop_words: tuple) -> dict:
  pass

Шаг 3. Получить список первых N по популярности слов.

Первый элемент списка - самое популярное слово. Последний элемент списка - N-ное по популярности слово. Функция должна возвращать объект типа tuple.

Интерфейс:

def get_top_n(frequencies: dict, top_n: int) -> tuple:
  pass

Шаг 4 (Необязательный, выполнение Шагов 1-3 + 4 соответствует 10 баллам). Работа с файлами.

Чтение текста осуществлять из файла. Название файла - data.txt. Лежит в корневой директории. Параметризованное чтение - возможность взять лишь первые N строк. Функция должна возвращать объект типа str.

Интерфейс:

def read_from_file(path_to_file: str, lines_limit: int) -> str:
  pass

Запись результатов в файл. Название файла - report.txt. Лежит в корневой директории. Внутренняя структура: каждая строка содержит слово. Первая строка содержит наиболее популярное слово.

Интерфейс:

def write_to_file(path_to_file: str, content: tuple):
  pass