From f527158c9133adb125147370ce710ee9a47a0ab8 Mon Sep 17 00:00:00 2001 From: Ryszard Staruch Date: Thu, 4 Apr 2024 15:09:47 +0200 Subject: [PATCH] Add notebooks --- 01_zadania.ipynb | 85 ++++++++++++++++++++++++++++++++++ sprawy_organizacyjne.ipynb | 95 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 01_zadania.ipynb create mode 100644 sprawy_organizacyjne.ipynb diff --git a/01_zadania.ipynb b/01_zadania.ipynb new file mode 100644 index 0000000..6abe326 --- /dev/null +++ b/01_zadania.ipynb @@ -0,0 +1,85 @@ +{ + "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 (10 punktów)\n", + "Napisz w 3-5 zdaniach czym różni się system kodowania ASCII od systemu UTF-8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 2 (40 punktów)\n", + "\n", + "Znajdź i wczytaj tekst (lub połączony zbiór tekstów) w języku polskim zawierający ponad 50 000 słów (np. książka z wolnelektury.pl lub zbiór danych z HuggingFace - najlepiej coś ciekawego/nietypowego), a następnie:\n", + "1. usuń z tekstu wszystkie symbole, które nie są spacją lub literami polskiego alfabetu (czyli tekst powinien składać się jedynie ze spacji oraz polskich liter)\n", + "2. zamień wszystkie wielkie litery na małe\n", + "3. wypisz 10 słów, które według Ciebie powinny znajdować się wśród 10 najczęściej występujących słów\n", + "4. wypisz 10 najczęściej występujących słów (wraz z ich liczbą wystąpień oraz proporcją względem liczby wszystkich słów w tekście)\n", + "5. napisz jak dużo słów udało Ci się poprawnie przewidzieć\n", + "6. jeśli 10 najczęściej występujących słów ma jakieś cechy wspólne, to je wypisz\n", + "7. wypisz 10 najrzadziej występujących słów\n", + "8. jeśli 10 najrzadziej występujących słów ma jakieś cechy wspólne, to je wypisz\n", + "9. napisz czym różni się zbiór 10 najczęściej występujących słów od 10 najrzadziej występujących słów\n", + "10. stwórz wykres przedstawiający na osi X długość słowa (czyli liczbę liter w słowie), a na osi Y liczbę słów w tekście o tej długości" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 3 (25 punktów)\n", + "\n", + "Wykonaj poniższe zadania na podstawie tekstu z zadania 2:\n", + "1. wypisz ile jest różnych unigramów/bigramów/trigramów\n", + "2. wypisz 10 najczęściej występujących bigramów/trigramów\n", + "3. ile różnych słów spośród 10 najczęściej występujących słow znajduje się wśród 10 najczęściej występujących bigramach/trigramach?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Zadanie 4 (5 punktów)\n", + "Napisz poprawne gramatycznie zdanie, które najprawdopodobniej nigdy nie zostało wypowiedziane lub zapisane." + ] + } + ], + "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/sprawy_organizacyjne.ipynb b/sprawy_organizacyjne.ipynb new file mode 100644 index 0000000..7152dd2 --- /dev/null +++ b/sprawy_organizacyjne.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Informacje ogólne" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prowadzący\n", + "\n", + "mgr Ryszard Staruch\n", + "\n", + "Kontakt: mail (ryssta@amu.edu.pl) lub przez Teamsy\n", + "\n", + "\n", + "## Literatura\n", + "Polecana literatura do przedmiotu:\n", + "\n", + "- Koehn, P. (2009). Statistical Machine Translation. Cambridge: Cambridge University Press. doi:10.1017/CBO9780511815829\n", + "- Philipp Koehn. \"Neural Machine Translation\". 2020.\n", + "- https://web.stanford.edu/~jurafsky/slp3/3.pdf\n", + "- Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. North American Association for Computational Linguistics (NAACL).\n", + "- Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu. 2020. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research vol 21, number 140, pages 1-67.\n", + "- Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya. 2019. Language Models are Unsupervised Multitask Learners\n", + "- https://jalammar.github.io/illustrated-transformer/\n", + "- https://www.youtube.com/watch?v=-9evrZnBorM&ab_channel=YannicKilcher\n", + "- https://www.youtube.com/watch?v=u1_qMdb0kYU&ab_channel=YannicKilcher\n", + "\n", + "\n", + "## Gorąco polecane materiały uzupełniające (praktyczna strona przedstawiona w zrozumiały sposób)\n", + "\n", + "https://www.coursera.org/learn/nlp-sequence-models?specialization=deep-learning#modules - kurs prowadzony przez prof. Andrewa Ng ze Stanfordu\n", + "https://www.youtube.com/watch?v=kCc8FmEb1nY - 2 godzinny szczegółowy kurs zbudowania modelu języka opartego na architekturze transformer - prowadzony przez byłego pracownika OpenAI\n", + "\n", + "\n", + "## Artykuły naukowe\n", + "* (2003) A Neural Probabilistic Language Model https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf\n", + "* (2013) Efficient Estimation of Word Representations in Vector Space https://arxiv.org/pdf/1301.3781.pdf\n", + "* (2017) Attention Is All You Need https://arxiv.org/pdf/1706.03762.pdf\n", + "\n", + "\n", + "## Podział materiału\n", + "\n", + "Materiał — zarówno na wykładzie, jak i na laboratoriach — podzielony jest\n", + "na trzy, mniej więcej równe objętością, działy:\n", + "\n", + "1. Podstawy modelowania języka.\n", + "2. Neuronowe modele języka (bez sieci Transformer).\n", + "3. Sieci Transformer.\n", + "\n", + "\n", + "## Zasady zaliczenia laboratoriów\n", + "\n", + "Zaliczenia z laboratoriów uzyskujemy przez zdobywanie punktów za zadania (oraz ewentualny projekt). \n", + "Punkty zdobywamy poprzez wykonywanie zadań na bieżąco na ćwiczeniach lub najpóźniej 6 dni od dnia przeprowadzonych zajęć (czyli jeżeli zajęcia były przeprowadzone dnia 05.04.2024 to rozwiązanie należy przesłać najpóźniej do 11.04.2024 do godziny 23:59) \n", + "\n", + "\n", + "Przelicznik punktów na ocenę:\n", + "* 0-299 — 2\n", + "* 300-349 — 3\n", + "* 350-399 — 3+\n", + "* 400-449 — 4\n", + "* 450-499 — 4+\n", + "* 500- — 5\n", + "\n", + "Technicznie rozwiązania zadań zgłaszamy na platformie Teams.\n", + "\n", + "W celu zdobycia dodatkowych punktów (maksymalnie 250 punktów) będzie można wykonać projekt w formie zgłoszenia rozwiązania w wyzwaniu https://gonito.net/challenge/challenging-america-word-gap-prediction Swoje rozwiązanie należy zaprezentować na ostatnich zajęciach przed grupą (około 5 minut - co się zrobiło, jaki wynik się uzyskało, co pomogło/przeszkodziło w uzyskaniu najlepszego wyniku). Ilość punktów będzie zależała od:\n", + "* uzyskanego wyniku\n", + "* wykorzystanych narzędzi\n", + "* prezentacji\n", + "\n", + "\n", + "Łącznie (za zadania oraz projekt) do zdobycia będzie co najmniej 600 punktów.\n", + "\n", + "\n", + "## Obecność na zajęciach\n", + "\n", + "Obecność na zajęciach jest **obowiązkowa**. Nieobecność może być usprawiedliwiona w przypadku choroby potwierdzonej zwolnieniem lekarskim. Dopuszczalne są maksymalnie 2 nieusprawiedliwione nieobecności. Jeżeli kogoś nie było na zajęciach to tak jak było wspomiane wyżej - jest 6 dni na wykonanie zadań od dnia, w którym odbywały się dane zajęcia." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}