From 4636136d654c8added00ac8b7eaaa9dd0c7e2c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Sk=C3=B3rzewski?= Date: Wed, 3 Apr 2024 11:59:02 +0200 Subject: [PATCH 1/2] Lab 5 --- ...tystyczny_model_językowy_część_2.ipynb | 52 +------------------ 1 file changed, 1 insertion(+), 51 deletions(-) diff --git a/lab/05_statystyczny_model_językowy_część_2.ipynb b/lab/05_statystyczny_model_językowy_część_2.ipynb index 5a4a64e..59c195a 100644 --- a/lab/05_statystyczny_model_językowy_część_2.ipynb +++ b/lab/05_statystyczny_model_językowy_część_2.ipynb @@ -151,63 +151,13 @@ "## ZADANIE:" ] }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "g1 = [470618, 415366, 434695, 470611, 470607]\n", - "g2 = [440054, 434742, 434760, 434784, 434788]\n", - "g3 = [434804, 430705, 470609, 470619, 434704]\n", - "g4 = [434708, 470629, 434732, 434749, 426206]\n", - "g5 = [434766, 470628, 437622, 434780, 470627, 440058]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "model trigramowy odwrotny\n" - ] - } - ], - "source": [ - "if NR_INDEKSU in g1:\n", - " print('model bigramowy standardowy')\n", - "elif NR_INDEKSU in g2:\n", - " print('model bigramowy odwrotny')\n", - "elif NR_INDEKSU in g3:\n", - " print('model trigramowy')\n", - "elif NR_INDEKSU in g4:\n", - " print('model trigramowy odwrotny')\n", - "elif NR_INDEKSU in g5:\n", - " print('model trigramowy ze zgadywaniem środka')\n", - "else:\n", - " print('proszę zgłosić się do prowadzącego')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### gonito:\n", - "- zapisanie do achievmentu przez start working\n", - "- send to review" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ZADANIE\n", "\n", - "Proszę stworzyć rozwiązanie modelu (komórka wyżej) dla https://gonito.csi.wmi.amu.edu.pl/challenge/challenging-america-word-gap-prediction i umieścić je na platformie gonito\n", + "Proszę za pomocą modelu statystycznego ($n$-gramowego) stworzyć rozwiązanie dla https://gonito.csi.wmi.amu.edu.pl/challenge/challenging-america-word-gap-prediction i umieścić je na platformie Gonito\n", " \n", "Warunki zaliczenia:\n", "- wynik widoczny na platformie zarówno dla dev i dla test\n", From 0f3e02c7ac22063bac5a4762573efcabe775075d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Sk=C3=B3rzewski?= Date: Wed, 3 Apr 2024 12:24:07 +0200 Subject: [PATCH 2/2] Lab 5 --- ...tystyczny_model_językowy_część_2.ipynb | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lab/05_statystyczny_model_językowy_część_2.ipynb b/lab/05_statystyczny_model_językowy_część_2.ipynb index 59c195a..2a51546 100644 --- a/lab/05_statystyczny_model_językowy_część_2.ipynb +++ b/lab/05_statystyczny_model_językowy_część_2.ipynb @@ -144,6 +144,35 @@ "trigram_model.predict(['ma', 'kota']) → 'i:0.55 oraz:0.25 czarnego:0.1 :0.1'" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Jak tunować parametry na zbiorze deweloperskim?\n", + "\n", + "- tworzymy model opisany jak przez \"klasę abstrakcyjną\" na początku notebooku. Model ma podany jako parametr konstruktora pewien parametr wygładzania np. alpha\n", + "- tworzymy wiele modeli z różnymi parametrami, uczymy je i sprawdzamy na zbiorze deweloperskim, dostając np. taką tabelkę:\n", + "\n", + "\n", + "| parametr alfa | pplHashed na dev-0|\n", + "| ----------- | ----------- |\n", + "| 0.0 | 404 |\n", + "| 0.1 | 370 |\n", + "| 0.2 | 343 |\n", + "| 0.3 | 339 |\n", + "| 0.4 | **320** |\n", + "| 0.5 | 337 |\n", + "| 0.6 | 398 |\n", + "| 0.7 | 404 |\n", + "| 0.8 | 432 |\n", + "| 0.9 | 426 |\n", + "| 1.0 | 433 |\n", + "\n", + "Wybieramy najlepszy parametr względem metryki. Tutaj najlepszy wynik to **320** osiągany dla parametru **alfa=0.4**. Zatem taki model oddajemy w zadaniu na gonito. \n", + "\n", + "Oczywiście robienie tabelki nie jest konieczne. Podobnie postępujemy, jeżeli parametrów będzie więcej niż 1. Ilość modeli do stworzenia będzie rosła wykładnioczo względem ilości parametrów. Np. jeżeli każdy parametr będzie miał 10 możliwości i chcemy przetestować 3 parametry, to mamy 10^3 możliwości. Dlatego warto wtedy ograniczać zakres, np. zamiast 10 możliwości wziąć 3 możliwości." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -170,7 +199,7 @@ "\n", "Uwagi:\n", "\n", - "- warto wymyślić jakąś metodę wygładazania, bez tego może być bardzo kiepski wynik\n", + "- warto skorzystać z jakiejś metody wygładazania (plusalpha, interpolacja, Good-Turing, back-off), bez tego wynik może być bardzo kiepski\n", "- nie trzeba korzystać z całego zbioru trenującego\n", "- roziwązanie zadania to **70** punktów,\n", "- **dodatkowo:** za najlepsze rozwiązanie w grupie przyznaję **40** punktów, za drugie miejsce: **20** punktów, a za trzecie miejsce: **10** punktów\n",