Задание
- В алфавите из 26 букв имеется 26 в степени 10, или 26^10, десятибуквенных строк. Сколько может быть стобуквенных строк?
- Операцию умножения Python можно применять к спискам. Что произойдет, если вы введете ['Monty', 'Python'] * 20 или 3 * sent1?
- Сколько слов содержится в text2? Сколько различных слов?
- Создайте дисперсионный сюжет четырех главных героев «Sense and Sensibility»: Elinor, Marianne, Edward и Willoughby. Что вы можете сказать о ролях мужчин и женщин в этом романе? Можете идентифицировать пары?
- Найдите словосочетания в text5.
- len(set(text4)). Каково назначение этого выражения. Опишите два этапа выполнения этого вычисления.
- Посмотрите еще раз пункт 2 по спискам и строкам. Определите строку и присвойте ее переменной, например, my_string = 'My String'. Распечатайте содержимое переменной двумя способами: сначала просто введите имя переменной, а затем с помощью оператора print. Попробуйте сложить строку саму с собой, используя my_string + my_string или умножив ее на число, например, my_string * 3. Обратите внимание, что строки соединяются без пробелов. Как можно это исправить?
- Определите переменную my_sent как список слов. Используйте ' '.join(my_sent), чтобы преобразовать список в строку. Используйте split(), чтобы разделить строку на изначальный список слов.
- Определите несколько переменных, содержащих списки слов. Соедините их вместе в различных комбинациях (используя оператор «плюс»), чтобы сформировать целое предложения. Какая связь между len(phrase1+phrase2) и len(phrase1)+len(phrase2)?
- Рассмотрим следующие два выражения, которые имеют одинаковое значение. Которое из них более актуально в NLP? Почему? a. "Monty Python"[6:12] b. ["Monty", "Python"]
- Что сделает send1[2][2]? Почему? Поэкспериментируйте с другими значениями индекса.
- Первое предложение text3 предоставляется в переменной send3. Индекс слова 'the' в sent3 равен 1, потому что send3[1] дает нам 'the'. Каковы индексы двух других вхождений этого слова в sent3?
- Найдите все слова в Chat Corpus (text5), начинающиеся с буквы b. Выведите их в алфавитном порядке.
- Введите list(range(10)) в строке интерпретатора. Теперь попробуйте list(range(10, 20)), list(range(10, 20, 2)), and list(range(20, 10, -2)).
- Используйте text9.index(), чтобы найти индекс слова «sunset». Методом проб и ошибок найдите фрагмент полного предложения, содержащего это слово.
- Используйте сложение списков, операцию set и sorted, чтобы вычислить словарный запас предложений send1 ... send8.
- В чем разница между следующими двумя строками? Какая из них даст большее значение? Будет ли это характерно для других текстов? sorted(set(w.lower() для w в text1)) и sorted(w.lower() для w в set(text1))
- В чем разница между следующими двумя тестами: w.isupper() и not w.islower()?
- Напишите выражение среза (slice), которое извлекает два последних слова text2.
- Найдите все четырехбуквенные слова в Chat Corpus (text5). С помощью частотного распределения (FreqDist) покажите эти слова в порядке убывания частотности.
- Просмотрите обсуждение цикла с условием (пункт 4). Используйте комбинацию for и if, чтобы перебрать слова сценария фильма «Monty Python and the Holy Grail» (text6) и вывести все слова в верхнем регистре, по одному в строке.
- Напишите выражения для поиска всех слов в text5, удовлетворяющих одному из перечисленных ниже условиям. Результат должен быть в виде списка слов: ['слово1', 'слово2', ...]. a) Окончание на ise b) Содержит букву z. c) Содержит последовательность букв pt. d) Наличие всех строчных букв, кроме начальной заглавной (т.е. titlecase)
- Определить sent, как список слов ['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']. Теперь напишите код для выполнения следующих задач: a) Выведите все слова, начинающиеся с sh. b) Вывести все слова длиннее четырех символов
- Что делает следующий код Python? sum(len(w) for w in text1) Можно ли использовать его для расчета средней длины текста в слове?
- Определите функцию vocab_size(text), которая имеет один параметр для текста и возвращает словарный запас текста.
- Определите функцию percent(word, text), которая вычисляет, как часто данное слово встречается в тексте, и выражает результат в процентах.
- Мы использовали set`ы для хранения словарей. Попробуйте следующее выражение: set(sent3) < set(text1). Поэкспериментируйте с этим, используя разные аргументы для set(). Что оно делает? Можете ли вы придумать практическое применение для этого выражения?
Архив содержит выполненные задания и результаты в формате ipynb и py (подходит для любой среды: Google Colab, Jupyter Notebook, PyCharm и т.д.), а также отчет по работе в формате Word
Если вам нужны подобные работы, то можете написать мне)