pjn-2024-cw/06_nlp_toolkits.ipynb
Ryszard Staruch cbc8da00ec Add files
2024-11-20 13:35:28 +01:00

3.6 KiB

Zajęcia 6: NLP Toolkits

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).

Nie należy usuwać komórek z treścią zadań.

Należy wyświetlać outputy przy pomocy print

Dla chętnych - może się przydać do projektu końcowego

Gorąco zachęcam do sprawdzenia zasosób dla języka polskiego: https://github.com/sdadas/polish-nlp-resources

UWAGA

Każde zadanie należy przetestować na własnych tekstach.

Zadanie 1

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:

  • liczba znaków w tekście
  • liczba słów (tokenów według tokenizera NLTK) w tekście
  • liczba zdań (według sentence tokenizera NLTK) w tekście
# Solution 1

Zadanie 2

Przy pomocy toolkitu SpaCy napisz funkcję, która na wejściu przyjmuje tekst w języku angielskim oraz jeden z trzech argumentów:

  • rzeczownik
  • czasownik
  • przymiotnik

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).

# Solution 2

Zadanie 3

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):

  • ORGANIZATION (e.g., company names)
  • DATE (e.g., contract start/end dates)
  • MONEY (e.g., payment amounts)

Program musi wypisać znalezione jednostki i ich wartości.

# Solution 3

# Sample text
text = """
The agreement between Google and Microsoft was signed on January 15, 2023.
The payment of $100,000,000 is due on March 1, 2024. Another payment of $300,000,000 is scheduled for June 15, 2024.
"""