Skip to content

Latest commit

 

History

History
32 lines (22 loc) · 3.9 KB

Exam.md

File metadata and controls

32 lines (22 loc) · 3.9 KB

Экзаменационная работа

Выполняется работа строго в репозитории python-dh-hw в файле Exam.ipynb, лежащем в корне репозитория. Регистр в названиях важен!

NB! Перед выполнением обязательно посмотрите образец оформления работы.

Скачайте английский текст первой книги о Гарри Поттере. Он должен быть сохранен отдельным файлом.

Задание №1

  • Прочитайте файл и запишите текст в какую-нибудь переменную.
  • Напишите регулярное выражение, которое найдет в этом тексте все слова, начинающиеся на латинскую H, написанные с большой буквы и длиной от 5 символов и больше. Т.е. выражение должно ловить такие слова как Harry, Hermione, Hagrid, Hogwarts и т.д., не захватывая при этом пробелы и знаки пунктуации.
  • Напечатайте количество совпадений (т.е. сколько всего слов в тексте нашло регулярное выражение), предварительно сохранив их в список.
  • Затем сделайте из списка множество, чтобы посмотреть, сколько уникальных слов попало под этот шаблон. Распечатайте содержимое этого множества. Какие слова, кроме имен и названий, туда попали и почему?

Задание №2

  • Очистите текст от пунктуации, приведите его к нижнему регистру, а затем удалите из него стоп-слова.
  • Постройте barplot для 30 самых частотных слов. Эти слова должны быть в виде подписей к делениям по оси Х; подписи должны быть развернуты на 90 градусов против часовой стрелки, чтобы надписи шли как бы снизу вверх. Значениями по оси Х будет ряд чисел от 0 до 30, а по оси Y -- относительная частота (абсолютная частота слова / длину всего текста в словах * 1000). Длину текста нужно посмотреть до удаления стоп-слов! На графике также должен быть заголовок и подписи осей.

Подсказка

Как сократить количество знаков после запятой? Например, до трех:

float("{0:.3f}".format(17.212123445))

Результатом будет число 17.212. Если у вас есть список с числами, и нужно отформатировать каждое число в этом списке, то код будет такой:

numbers = [17.212123445, 0.39990843435, 9.1393923]
new_numbers = [float("{0:.3f}".format(nr)) for nr in numbers]

Список new_numbers будет выглядеть так: [17.212, 0.4, 9.139]

После решения задач необходимо выложить решение в Github и проверить, что вы видите ваше решение по ссылке https://github.com/*ваш username на github*/python-dh-hw/blob/master/Exam.ipynb