moj-2024/wyk/06_Ewaluacja.ipynb

19 lines
21 KiB
Plaintext
Raw Normal View History

2024-03-27 07:13:21 +01:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Modelowanie języka</h1>\n",
"<h2> 06. <i>Ewaluacja modeli języka</i> [wykład]</h2> \n",
"<h3> Filip Graliński (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)\n",
"\n"
]
},
{"cell_type":"markdown","metadata":{},"source":["## Ewaluacja modeli języka\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Jak już widzimy, możemy mieć różne modele języka. Nawet jeśli\npozostajemy tylko na gruncie najprostszych, $n$-gramowych modeli\njęzyka, inne prawdopodobieństwa uzyskamy dla modelu digramowego, a\ninny dla trigramowego. Jedne modele będą lepsze, inne — gorsze. Jak\nobiektywnie odróżnić dobry model od złego? Innymi słowy, jak ewaluować\nmodele języka?\n\n"]},{"cell_type":"markdown","metadata":{},"source":["### Ewaluacja zewnętrzna i wewnętrzna\n\n"]},{"cell_type":"markdown","metadata":{},"source":["W ewaluacji zewnętrznej (ang. *extrinsic*) ewaluację modelu języka sprowadzamy\ndo ewaluacji większego systemu, którego częścią jest model języka, na przykład\nsystemu tłumaczenia maszynowego albo systemu ASR.\n\nEwaluacja wewnętrzna (ang. *intrinsic*) polega na ewaluacji modelu języka jako takiego.\n\n"]},{"cell_type":"markdown","metadata":{},"source":["### Podział zbioru\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Po pierwsze, jak zazwyczaj bywa w uczeniu maszynowym, powinniśmy\npodzielić nasz zbiór danych. W modelowaniu języka zbiorem danych jest\nzbiór tekstów w danym języku, czyli korpus języka.\nPowinniśmy podzielić nasz korpus na część uczącą (*training set*) $C = \\{w_1\\ldots w_N\\}$ i testową\n(*test set*) $C' = \\{w_1'\\ldots w_{N'}'\\}$.\n\nWarto też wydzielić osobny „deweloperski” zbiór testowy (*dev set*) —\ndo testowania na bieżąco, optymalizacji hiperparametrów itd. Zbiory\ntestowe nie muszą być bardzo duże, np. kilka tysięcy zdań może w zupełności wystarczyć.\n\nTak podzielony korpus możemy traktować jako **wyzwanie modelowania języka**.\n\n"]},{"cell_type":"markdown","metadata":{},"source":["#### Przykład wyzwania modelowania języka\n\n"]},{"cell_type":"markdown","metadata":{},"source":["Wyzwanie\n[https://gonito.net/challenge/challenging-america-word-gap-prediction|Challenging America word-gap prediction](https://gonito.net/challenge/challenging-america-word-gap-prediction|Challenging America word-gap prediction)\nto wyzwanie modelowania amerykańskiej odmiany języka angielskiego, używanej w gazetach w XIX w. i I poł. XX w.\n\n $ git clone git://gonito.net/challenging-america-word-gap-prediction\n $ cd challenging-america-word-gap-prediction\n $ xzcat train/in.tsv.xz | wc\n 432022 123677147 836787912\n $ xzcat dev-0/in.tsv.xz | wc\n 10519 3076536 20650825\n $ xzcat test-A/in.tsv.xz | wc\n 7414 2105734 14268877\n\nDodajmy, że poszczególne zbiory zawierają teksty z różnych gazet. Jest\nto właściwe podejście, jeśli chcemy mierzyć rzeczywistą skuteczność modeli języka.\n(Teksty z jednej gazety mogłyby być zbyt proste).\n\nOto przykład tekstu z wyzwania:\n\n $ xzcat train/in.tsv.xz | head -n 1 | fold\n 4e04702da929c78c52baf09c1851d3ff\tST\tChronAm\t1919.6041095573314\n 30.47547\t-90.100911\tcame fiom the last place to this\\nplace, and thi\n s place is Where We\\nWere, this is the first road I ever\\nwas on where you can r\n ide elsewhere\\nfrom anywhere and be nowhere.\\nHe says, while this train stops ev\n ery-\\nwhere, it never stops anywhere un-\\nless its somewhere. Well, I says,\\nI'm\n glad to hear that, but, accord-\\ning to your figures, I left myself\\nwhere 1 wa\n s, which is five miles near-\\ner to myself than I was when we\\nwere where we are\n now.\\nWe have now reached Slidell.\\nThat's a fine place. The people\\ndown there\n remind me of bananas-\\nthey come and go in bunches. 811-\\ndell used to be noted\n for her tough\\npeople. Now she is noted for be,\\ntough steaks. Well, I certainl\n y got\\none there. When the waiter brought\\nit in it was so small I thought. It\\n\n was a crack in the plate. I skid,\\nwaiter what else have you got? +He\\nbrought m\n e in two codfish and one\\nsmelt. I said, waiter have you got\\npigs feet? He said\n no, rheumatism\\nmakes me walk that way. I s