diff --git a/02_zadania.ipynb b/02_zadania.ipynb new file mode 100644 index 0000000..51923f5 --- /dev/null +++ b/02_zadania.ipynb @@ -0,0 +1,98 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Rozwiązania do zadań proszę umieszczać w nowych komórkach pomiędzy zadaniami\n", + "Zadania (jeżeli wymagaja napisania programu) piszemy w języku Python\n", + "\n", + "\n", + "Funkcje wspomagające wykonanie zadań znajdują się w materiałach wykładowych:\n", + "\n", + "https://git.wmi.amu.edu.pl/pms/moj-2024/src/branch/main/wyk" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 1 (5 punktów)\n", + "Pobierz plik i wczytaj jego zawartość. Następnie zamienień wielkie litery na małe oraz usuń wszystkie znaki nie będące literami od \"a\" do \"z\" lub spacją." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 2 (50 punktów)\n", + "\n", + "Stwórz model trigramowy (dla słów) na podstawie korpusu z zadania 1. Model musi bazować na słowniku składającego się z 15000 najczęściej występujących słów + token [UNK] reprezentujący wszystkie pozostałe słowa (czyli łącznie 15001 słów/tokenów w słowniku)\n", + "\n", + "Wymagane kroki:\n", + "1. Zliczenie liczby wystąpień słów w korpusie\n", + "2. Stworzenie słownika poprzez wydzielenie 15000 najczęściej występujących słów\n", + "3. Zliczenie bigramów na bazie słownika (czyli zliczamy w taki sposób, aby słowa z poza słownika traktować jako token [UNK])\n", + "4. Zliczenie trigramów na bazie słownika (analogicznie jak w punkcie 3)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 3 (25 punktów)\n", + "Na podstawie modelu trigramowego z zadania 2, wypisz 5 najbardziej prawdopodobnych słów wraz z ich wartościami prawdopodobieństwa po następujących dwóch wcześniejszych słowach (wskazówka - prawdopodobieństwo słowa X3 po słowach X1, X2 można otrzymać poprzez: trigram_count(X1, X2, X3) / bigram_count(X1, X2)):\n", + "1. this year\n", + "2. the mr\n", + "3. they have\n", + "4. the best\n", + "5. a few" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 4 (10 punktów) \n", + "\n", + "Korzystając z modelu trigramowego z zadania 2, oblicz prawdopodobieństwo następujących zdań (czyli iloczyn prawdopodobieństw kolejnych słów pod warunkiem wystąpienia wcześniejszej sekwencji słów):\n", + "1. \"it has been a\"\n", + "2. \"it been has a\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 5 (30 punktów)\n", + "Za pomocą modelu trigramowego z zadania 2, wygeneruj zdania o długości 15 tokenów (słów) zakładając następujące wejście do modelu:\n", + "1. it took\n", + "2. because there\n", + "3. actually it\n", + "4. in my\n", + "5. after a" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "python39", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/challenging_america_50k_texts.zip b/challenging_america_50k_texts.zip new file mode 100644 index 0000000..78a3a36 Binary files /dev/null and b/challenging_america_50k_texts.zip differ