{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Zajęcia 6: NLP Toolkits\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": [ "## Dla chętnych - może się przydać do projektu końcowego\n", "Gorąco zachęcam do sprawdzenia zasosób dla języka polskiego: https://github.com/sdadas/polish-nlp-resources " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# UWAGA\n", "Każde zadanie należy przetestować na własnych tekstach." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zadanie 1 \n", "\n", "Przy pomocy toolkitu NLTK napisz funkcję, która na wejściu przyjmuje tekst w języku angielskim, dokonuje tokenizacji na poziomie słów oraz zdań i wypisuje następujące informacje:\n", "* liczba znaków w tekście\n", "* liczba słów (tokenów według tokenizera NLTK) w tekście\n", "* liczba zdań (według sentence tokenizera NLTK) w tekście" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# Solution 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zadanie 2 \n", "\n", "Przy pomocy toolkitu SpaCy napisz funkcję, która na wejściu przyjmuje tekst w języku angielskim oraz jeden z trzech argumentów:\n", "* rzeczownik\n", "* czasownik\n", "* przymiotnik\n", "\n", "a następnie tokenizuje tekst na słowa i zwraca słowa spełniajace kryterium części mowy określone poprzez drugi argument (czyli np dla argumentu rzeczownik zwraca listę rzeczowników). Należy skorzystać z modułu PoS (part of speech)." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "# Solution 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Zadanie 3\n", "\n", "Korzystając z toolkitu SpaCy oraz modelu en_core_web_sm napisz program dokonujący analizy dokumentu tekstowego w języku angielskim o wydarzeniach ekonomicznych w języku angielskim. Zadaniem programu jest ekstrakcja następujących jednostek nazwanych (korzystając z modułu NER - Named Entity Recognition):\n", "* ORGANIZATION (e.g., company names)\n", "* DATE (e.g., contract start/end dates)\n", "* MONEY (e.g., payment amounts)\n", "\n", "Program musi wypisać znalezione jednostki i ich wartości." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Solution 3\n", "\n", "# Sample text\n", "text = \"\"\"\n", "The agreement between Google and Microsoft was signed on January 15, 2023.\n", "The payment of $100,000,000 is due on March 1, 2024. Another payment of $300,000,000 is scheduled for June 15, 2024.\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 }