Перейти до змісту

ЛР28. Нормалізація тексту, set, dict і частотний аналіз

Коротко про роботу

Спочатку нормалізуйте сирі текстові мітки за чітким правилом. Потім проаналізуйте нормалізовані лексеми через set і dict: перевірте належність і підрахуйте частоти. Варіант визначає STUDENT_X.

Відкрити робочий зошит Як виконувати лабораторні

1. Умова

Спочатку нормалізуйте сирі текстові мітки за чітким правилом. Потім проаналізуйте нормалізовані лексеми через set і dict: перевірте належність і підрахуйте частоти.

Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.

2. Що треба знати

Робота виконується після Л1–Л12. Потрібні поняття:

  1. str
  2. strip()
  3. lower()
  4. незмінність рядків
  5. set
  6. dict
  7. перевірка належності
  8. частотна таблиця

Межа матеріалу

Використовуйте поняття, вивчені до Л1–Л12. Не додавайте перетворень тексту, яких немає в умові, і не використовуйте set для зберігання кількості повторів.

3. Варіант, вхідні дані та результат

У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.

Вхідні дані

Поле Тип Зміст
texts list список сирих міток
tokens list нормалізовані лексеми
query str лексема для перевірки належності
set_a str перше значення множини
set_b str друге значення множини
set_c str третє значення множини

Поля результату

Поле Зміст
normalized нормалізовані рядки
changed_count кількість змінених рядків
empty_count кількість порожніх після strip
query_present наявність query у контрольній множині
frequencies частоти
query_count частота query у tokens
distinct_count кількість різних лексем у tokens

Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не створює предметні змінні. У кожному завданні самостійно присвойте потрібним вхідним змінним показані значення. Результуючі й проміжні змінні створюйте звичайними присвоєннями. Імена з префіксом alp_ службові.

4. Терміни і правила

Терміни

  • нормалізація — перетворення різних текстових форм до одного узгодженого вигляду.
  • strip() — видалення пробільних символів на початку та в кінці рядка.
  • lower() — перетворення літер до нижнього регістру.
  • множина set — колекція унікальних елементів.
  • словник dict — відображення ключа у значення.
  • перевірка належності — запит, чи присутній елемент у колекції.
  • частота — кількість появ елемента.

Правила

  1. Єдина політика нормалізації: спочатку strip(), потім lower().
  2. Інші символи, зокрема дефіс і цифри, не змінюються.
  3. changed_count рахує рядки, для яких нормалізований текст відрізняється від початкового.
  4. empty_count рахує порожні рядки після нормалізації.
  5. Контрольна множина складається рівно з set_a, set_b і set_c.
  6. query_present показує, чи входить query до цієї множини.
  7. frequencies відображає кожну лексему з tokens на кількість її появ.
  8. query_count читається через get, а distinct_count дорівнює кількості ключів у словнику частот.

5. Завдання

Завдання 1

Застосуйте strip().lower() до кожного рядка. Результати запишіть у normalized у початковому порядку.

Завдання 2

Порахуйте змінені рядки та запишіть кількість у changed_count.

Завдання 3

Порахуйте рядки, що стали порожніми, та запишіть empty_count. Виведіть по одному прикладу зміненого, незміненого та порожнього рядка.

Завдання 4

Створіть множину {set_a, set_b, set_c}. Запишіть у query_present, чи належить їй query.

Завдання 5

Порахуйте кількість появ кожної лексеми з tokens та запишіть результат у frequencies.

Завдання 6

Запишіть query_count через get і кількість ключів у distinct_count. Коротко поясніть роль set і dict.

6. Перевірка і здача

  1. Запустіть самоперевірку та виправте помилки.
  2. Перезапустіть ядро і виконайте роботу ще раз від початку.
  3. Збережіть .ipynb і PDF з кодом та результатами.

Назва PDF: LR28_Прізвище_Група_VNN.pdf.