ЛР28. Нормалізація тексту, set, dict і частотний аналіз
Коротко про роботу
Спочатку нормалізуйте сирі текстові мітки за чітким правилом. Потім проаналізуйте нормалізовані лексеми через set і
dict: перевірте належність і підрахуйте частоти. Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Спочатку нормалізуйте сирі текстові мітки за чітким правилом. Потім проаналізуйте нормалізовані лексеми через set і
dict: перевірте належність і підрахуйте частоти.
Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні
змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.
2. Що треба знати
Робота виконується після Л1–Л12. Потрібні поняття:
strstrip()lower()- незмінність рядків
setdict- перевірка належності
- частотна таблиця
Межа матеріалу
Використовуйте поняття, вивчені до Л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— відображення ключа у значення. - перевірка належності — запит, чи присутній елемент у колекції.
- частота — кількість появ елемента.
Правила
- Єдина політика нормалізації: спочатку
strip(), потімlower(). - Інші символи, зокрема дефіс і цифри, не змінюються.
changed_countрахує рядки, для яких нормалізований текст відрізняється від початкового.empty_countрахує порожні рядки після нормалізації.- Контрольна множина складається рівно з
set_a,set_bіset_c. query_presentпоказує, чи входитьqueryдо цієї множини.frequenciesвідображає кожну лексему зtokensна кількість її появ.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. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR28_Прізвище_Група_VNN.pdf.