diff --git a/05_analiza_morfologiczna.ipynb b/05_analiza_morfologiczna.ipynb new file mode 100644 index 0000000..1d53b26 --- /dev/null +++ b/05_analiza_morfologiczna.ipynb @@ -0,0 +1,135 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Zajęcia 5: Analiza morfologiczna (Morphological Analysis)\n", + "\n", + "Wszystkie zadania ćwiczeniowe należy rozwiązywać w języku Python w kopii Jupyter Notebook'a dla danych zajęć w wyznaczonych miejscach (komórki z komentarzem `# Solution`).\n", + "\n", + "Nie należy usuwać komórek z treścią zadań.\n", + "\n", + "Należy wyświetlać outputy przy pomocy `print`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Zadanie 1 \n", + "\n", + "Zaimplementuj algorytm Portera dla języka angielskiego (dokładne kroki są opisane tutaj https://vijinimallawaarachchi.com/2017/05/09/porter-stemming-algorithm/). Funkcja musi przyjmować słowo i zwracać jego rdzeń (stem). Przetestuj program na podanych przkładowych słowach oraz na minimum własnoręcznie wybranych słowach. Funkcja musi uwzględniać wielkość liter w podanym słowie.\n", + "\n", + "W celu efektywnego rozwiązania zadania wykonaj następujące kroki:\n", + "1. Zdefiniuj pojedyncze zadania znajdujące się w algorytmie Portera.\n", + "2. Przygotuj puste funkcje wykonujące zadania z kroku nr 1.\n", + "3. Napisz kod w funkcjach z kroku nr 2.\n", + "4. Uzupełnij kod w funkcji stem_word, która powinna wywoływać napisane funkcje." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Algorytm Portera składa się z następujących zadań:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(tu wypisz zadania)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Funkcje realizujące zadania:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution 1" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def stem_word(word):\n", + " return word" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Testy (należy dodać minimum 3 własne przypadki)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Słowo: MULTIDIMENSIONAL\n", + "Po wykonaniu algorytmu Portera: MULTIDIMENSIONAL\n", + "\n", + "Słowo: CHARACTERIZATION\n", + "Po wykonaniu algorytmu Portera: CHARACTERIZATION\n", + "\n", + "Słowo: Erroneous\n", + "Po wykonaniu algorytmu Portera: Erroneous\n", + "\n", + "Słowo: oBvIoUsLy\n", + "Po wykonaniu algorytmu Portera: oBvIoUsLy\n", + "\n", + "Słowo: happiness\n", + "Po wykonaniu algorytmu Portera: happiness\n", + "\n" + ] + } + ], + "source": [ + "print(f\"Słowo: MULTIDIMENSIONAL\\nPo wykonaniu algorytmu Portera: {stem_word('MULTIDIMENSIONAL')}\\n\")\n", + "print(f\"Słowo: CHARACTERIZATION\\nPo wykonaniu algorytmu Portera: {stem_word('CHARACTERIZATION')}\\n\")\n", + "print(f\"Słowo: Erroneous\\nPo wykonaniu algorytmu Portera: {stem_word('Erroneous')}\\n\")\n", + "print(f\"Słowo: oBvIoUsLy\\nPo wykonaniu algorytmu Portera: {stem_word('oBvIoUsLy')}\\n\")\n", + "print(f\"Słowo: happiness\\nPo wykonaniu algorytmu Portera: {stem_word('happiness')}\\n\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}