Basics of programming (Python) - first-year students of linguistics and information management

  1. 2024-10-03: Introduction to Python

    Instrukcja instalacji narzędzi

    1. Ściągnij Python, wersja 3.10.10 dla systemu 32-bit lub 64-bit.
    2. Zainstaluj python-3.10.10.exe (32-bit) lub python-3.10.10-amd64.exe (64-bit).
    3. Otwórz IDLE (Python) z menu programów.
    4. Przywitaj się ze światem komendą: print ('Hello world!')
    5. W oknie Python Shell idź do File -> Save As i skopiuj ścieżkę, w której jest plik python.exe.
    Np. C:\Users\jbach\AppData\Local\Programs\Python\Python310-64
    6. W polu z lupą na pasku narzędzi w Windows 10 wyszukaj "Uruchom" i wpisz "cmd". Otworzy się okno z wierszem poleceń.
    7. W oknie wpisz "cd", a po spacji wklej ścieżkę, którą skopiowałeś w punkcie 4. Np. cała komenda będzie wyglądała tak:

    cd C:\Users\jbach\AppData\Local\Programs\Python\Python310-64

    Zatwierdź komendę, klikając ENTER.
    Polecenie powyżej przenosi do katalogu, w którym jest plik python.exe. Możesz go zobaczyć, wpisując dir i zatwierdzając przez kliknięcie na ENTER.
    8. Zainstaluj pip komendą: python -m pip install --upgrade pip. Jeżeli masz problemy z instalacją 'pip', spróbuj rozwiązać je, korzystając z TEJ strony.
    9. Zainstaluj nltk komendą: python -m pip install nltk
    10. Zainstaluj matplotlib komendą: python -m pip install -U matplotlib
    11. Zainstaluj numpy komendą: python -m pip install -U numpy
    12. Otwórz ponownie IDLE (Python) z menu programów.
    13. Zaimportuj nltk komendą: import nltk
    14. Ściągnij korpusy i narzędzia do NLTK komendą: nltk.download()
    Pojawi się okno, z którego wybierz "Everything used in the NLTK Book" i kliknij "Download".
    15. Jeżeli nie pojawiły się błędy podczas pobierania danych, to możesz przetestować, czy wszystko jest w porządku komendą:

    from nltk.book import *

    Powinien pojawić się niebieski tekst:

    *** Introductory Examples for the NLTK Book ***
    Loading text1, ..., text9 and sent1, ..., sent9
    Type the name of the text or sentence to view it.
    Type: 'texts()' or 'sents()' to list the materials.
    text1: Moby Dick by Herman Melville 1851
    text2: Sense and Sensibility by Jane Austen 1811
    text3: The Book of Genesis
    text4: Inaugural Address Corpus
    text5: Chat Corpus
    text6: Monty Python and the Holy Grail
    text7: Wall Street Journal
    text8: Personals Corpus
    text9: The Man Who Was Thursday by G . K . Chesterton 1908

    16. Przetestuj, czy masz pakiety Matplotlib i NumPy komendą:

    text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])

    Jeżeli pojawił się wykres rozproszenia, to Python i NLTK są poprawnie zainstalowane. Gratulacje!

  2. 2024-10-10: Introduction to Python
  3. 2024-10-17: Introduction to Python
  4. 2024-10-24: Introduction to Python
  5. 2024-11-07: Introduction to Python
    1. Napisz funkcję, która zapyta użytkownika o liczby x i y, a następnie obliczy działanie:

    2. Napisz funkcję, w której zdefiniujesz jakieś hasło, a kiedy hasło zostanie wpisane, program wydrukuje 'Doskonale!' (Skorzystaj z pętli 'while'.)
      Przykładowe działanie programu:

      Podaj hasło: jajko
      Podaj hasło: 123abc
      Podaj hasło: Kasia
      Podaj hasło: Angelina
      Doskonale!

    Proszę grupę 2, aby przyszła wcześniej na zajęcia dnia 14 listopada.
    8:00 – 9:15 – grupa 1
    9:15-10:30 – grupa 2

  6. 2024-11-14: NLTK book, Chapter 1, Section 1: Computing with Language: Texts and Words
    1. Napisz funkcję, która zapyta użytkownika w pętli 'for' trzy razy o podanie liczby, a następnie wydrukuje pierwiastki tych liczb z dokładnością do trzech miejsc po przecinku.
      Przykładowe działanie programu:

      pierwiastki_liczb()
      Podaj liczbę: 
      Pierwiastek liczby 4 wynosi 2.000.
      Podaj liczbę: 10
      Pierwiastek liczby 10 wynosi 3.162.
      Podaj liczbę: 16
      Pierwiastek liczby 16 wynosi 4.000.
      

    2. Stwórz funkcję, która zapyta użytkownika o to, jaki jest dzisiaj dzień. Następnie zapyta, która jest godzina. Na koniec wydrukuje stosowny komunikat, np. Dzisiaj jest czwartek, godzina 10:30. Skorzystaj z formatu drukowania %s.
    3. Stwórz tablicę z imionami, a następnie wydrukuj elementy tablicy w tym formacie:
      0 => Basia
      1 => Maciej
      2 => Andżela
      3 => Piotr

      Skorzystaj z funkcji 'enumerate'.

    4. Napisz funkcję, w której zapytasz użytkownika o tekst oraz liczbę. Następnie sprawdź czy litera 'a' wystąpiła w podanym tekście przynajmiej tyle razy, ile podał użytkownik. Jeśli tak, wydrukuj komunikat: 'Tekst spełnia wymagania.' Jeśli nie, to wydrukuj: 'Ale pech. Spróbuj jeszcze raz.'
      >>> sprawdzaj()
      Podaj tekst: salamandra
      Podaj liczbę: 3
      Tekst spełnia wymagania.

    Homework: Do again at home the tasks from section 1 which were presented in class and check if your Python and nltk settings are working on your computer at home.

  7. 2024-11-21: NLTK book, Chapter 1, Section 2: A Closer Look at Python: Texts as Lists of Words
  8. 2024-11-19: NLTK book, Chapter 1, Section 2: A Closer Look at Python: Texts as Lists of Words
  9. 2024-12-19: NLTK book, Chapter 2

    http://bachan.speechlabs.pl/files/New_York_Times.zip

    Zadanie 1: Załaduj korpus New_York_Times.
    Zadanie 2: Wydrukuj nazwy plików w tym korpusie.
    Zadanie 3: Zbuduj konkordans dla wyrazu 'sisters' w pliku 1.
    Zadanie 4: Wydrukuj tylko te wyrazy z pliku 1, które są pisane wielkimi literami, np. BROOKS.
    Zadanie 5: Policz, ile jest zdań w pliku 2.
    Zadanie 6: Wydrukuj 60 pierwszych znaków z pliku 3.
    >> Zadanie 7: Dodaj plik tekstowy do korpusu New_York_Times z listą wyrazową (bez polskich znaków). Wydrukuj najdłuższy wyraz z tego pliku.

  10. 2025-01-09: Revision exercises
    Zadanie 1: Ściągnij, rozpakuj i załaduj korpus do nltk.
    Zadanie 2: Wydrukuj nazwy plików w tym korpusie.
    Zadanie 3: Zbuduj konkordans dla wyrazu 'Brexit' w pliku Times_file_01.txt.
    Zadanie 4: Znormalizuj tekst z pliku Times_file_01.txt do małych liter i oblicz, ile jest typów wyrazów.
    Zadanie 5: Stwórz listę frekwencyjną wyrazów z pliku Times_file_01.txt. Następnie wydrukuj tylko te wyrazy, które pojawiły się 4 lub więcej razy. Wyświetl wyraz i liczbę wystąpień tego wyrazu w formacie: wyraz <=> liczba.
    Zadanie 6: Wydrukuj najkrótsze zdanie (lub zdania) z pliku Times_file_02.txt.
    Zadanie 7: Wydrukuj cyfry (nie liczby!) w pliku Times_file_03.txt.
    Zadanie 8: Zsumuj cyfry z zadania 7.
    Zadanie 9: Napisz funkcję, w której zapytasz użytkownika o imię oraz ilość wykonanych zadań. Jeżeli liczba jest większa od 3, to wydrukuj informację 'imię, bardzo dobrze!.', a jeśli nie to wydrukuj 'imię, musisz więcej pracować w domu.' => Za 'imię' należy podstawić to, co wpisał użytkownik, czyli np. 'Jola, bardzo dobrze!' lub 'Jola, musisz więcej pracować w domu.'
    Zadanie 10: Napisz funkcję, która zapyta użytkownika o liczby x i y, a następnie obliczy działanie:

    Zadanie 11: Napisz funkcję, która zapyta użytkownika w pętli 'for' trzy razy o podanie liczby, a następnie wydrukuje sześciany tych liczb.
    Przykładowe działanie programu:

    >>> szesciany_liczb()
    Podaj liczbę: 3
    Sześcian liczby 3 wynosi 27.
    Podaj liczbę: 5
    Sześcian liczby 5 wynosi 125.
    Podaj liczbę: 4
    Sześcian liczby 4 wynosi 64.
    
  11. 2025-01-16: Revision exercises

    1. Ściągnij, rozpakuj i załaduj korpus do nltk. Korpus znajduje się tutaj: http://bachan.speechlabs.pl/files/Corpus_test1_A.zip
    2. Wydrukuj nazwy plików w tym korpusie.
    3. Zbuduj konkordans dla wyrazu „Sala” w pliku paper1.txt.
    4. Wydrukuj tylko te wyrazy z pliku paper1.txt, które mają 10 liter.
    5. Wydrukuj tylko te wyrazy z pliku paper1.txt, które mają ciąg liter „ff”.
    6. Stwórz listę frekwencyjną wyrazów z pliku paper1.txt. Następnie wydrukuj tylko te wyrazy i tokeny, które pojawiły więcej niż 3 razy w tekście. Wyświetl wyraz i liczbę wystąpień tego wyrazu/tokenu w formacie: wyraz *** >>> *** liczba.
    7. Policz, ile jest różnych typów znaków w pliku paper2.txt.
    8. Wydrukuj tylko duże litery z pliku paper2.txt.
    9. Wydrukuj 21 ostatnich znaków z pliku paper2.txt.
    10. Policz, ile jest zdań w pliku paper3.txt.
    11. Skonkatenuj dwa pierwsze wyrazy dwóch pierwszych zdań z pliku paper3.txt, aby powstał tekst „EmilianoJames”.
    12. Wydrukuj najdłuższe zdanie z pliku paper3.txt.
    13. Wydrukuj drugi wyraz z ostatniego zdania z pliku paper3.txt.
    14. Napisz funkcję, która zapyta użytkownika o liczby x i y, a następnie obliczy działanie:


    15. Napisz funkcję, która zapyta użytkownika o Twoje ulubione danie oraz jak często jesz to danie. Jeśli jesz to danie cztery razy w tygodniu lub więcej, to wydrukuj komunikat: „Ty naprawdę kochasz DANIE!”. Jeśli jesz to danie rzadziej, to wydrukuj komunikat: „DANIE to dobre danie, ale nie najlepsze.” Za DANIE podstaw tekst, który wpisałeś/-aś, korzystając z operatora %s.