3.8 KiB
3.8 KiB
Zajęcia 5: Analiza morfologiczna (Morphological Analysis)
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
Zadanie 1
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.
W celu efektywnego rozwiązania zadania wykonaj następujące kroki:
- Zdefiniuj pojedyncze zadania znajdujące się w algorytmie Portera.
- Przygotuj puste funkcje wykonujące zadania z kroku nr 1.
- Napisz kod w funkcjach z kroku nr 2.
- Uzupełnij kod w funkcji stem_word, która powinna wywoływać napisane funkcje.
Algorytm Portera składa się z następujących zadań:
(tu wypisz zadania)
Funkcje realizujące zadania:
# Solution 1
def stem_word(word):
return word
Testy (należy dodać minimum 3 własne przypadki)
print(f"Słowo: MULTIDIMENSIONAL\nPo wykonaniu algorytmu Portera: {stem_word('MULTIDIMENSIONAL')}\n")
print(f"Słowo: CHARACTERIZATION\nPo wykonaniu algorytmu Portera: {stem_word('CHARACTERIZATION')}\n")
print(f"Słowo: Erroneous\nPo wykonaniu algorytmu Portera: {stem_word('Erroneous')}\n")
print(f"Słowo: oBvIoUsLy\nPo wykonaniu algorytmu Portera: {stem_word('oBvIoUsLy')}\n")
print(f"Słowo: happiness\nPo wykonaniu algorytmu Portera: {stem_word('happiness')}\n")
Słowo: MULTIDIMENSIONAL Po wykonaniu algorytmu Portera: MULTIDIMENSIONAL Słowo: CHARACTERIZATION Po wykonaniu algorytmu Portera: CHARACTERIZATION Słowo: Erroneous Po wykonaniu algorytmu Portera: Erroneous Słowo: oBvIoUsLy Po wykonaniu algorytmu Portera: oBvIoUsLy Słowo: happiness Po wykonaniu algorytmu Portera: happiness