From cbc8da00ec743579a7a514fa464c656ffefa22fd Mon Sep 17 00:00:00 2001 From: Ryszard Staruch Date: Wed, 20 Nov 2024 13:35:28 +0100 Subject: [PATCH] Add files --- 06_nlp_toolkits.ipynb | 127 ++++++++++++++++++++++++++++++++++++++++++ examples.ipynb | 30 ++++++++++ 2 files changed, 157 insertions(+) create mode 100644 06_nlp_toolkits.ipynb diff --git a/06_nlp_toolkits.ipynb b/06_nlp_toolkits.ipynb new file mode 100644 index 0000000..f072661 --- /dev/null +++ b/06_nlp_toolkits.ipynb @@ -0,0 +1,127 @@ +{ + "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 +} diff --git a/examples.ipynb b/examples.ipynb index 871f1e8..ebe43aa 100644 --- a/examples.ipynb +++ b/examples.ipynb @@ -437,6 +437,36 @@ "source": [ "dictinary_of_pairs_occurance = {}" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Uproszczenie funkcji" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def has_vowel(word):\n", + " check = False\n", + " for i in range(0,len(word)):\n", + " if is_vowel(word, i) == True:\n", + " check = True\n", + " break\n", + " return check\n", + "\n", + "\n", + "def has_vowel(word):\n", + " for x in range(len(word)):\n", + " if is_vowel(word, x) is True:\n", + " return True\n", + " \n", + " return False" + ] } ], "metadata": {