a
This commit is contained in:
commit
ca199d89b3
109
00_Informacje_na_temat_przedmiotu.ipynb
Normal file
109
00_Informacje_na_temat_przedmiotu.ipynb
Normal file
@ -0,0 +1,109 @@
|
||||
{
|
||||
"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> Ekstrakcja informacji </h1>\n",
|
||||
"<h2> 0. <i>Informacje na temat przedmiotu</i> [ćwiczenia]</h2> \n",
|
||||
"<h3> Jakub Pokrywka (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Informacje ogólne"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Kontakt z prowadzącym\n",
|
||||
"\n",
|
||||
"prowadzący: mgr inż. Jakub Pokrywka\n",
|
||||
"\n",
|
||||
"Najlepiej kontaktowąć się ze mną przez MS TEAMS prywatnych wiadomościach lub mailowo jp40407@st.amu.edu.pl. Odpisuję co 2-3 dni. Można też umówić się stacjonarnie, na zdzwonko w godzinach dyżuru (wt 12.00-13.00) lub umówić się w innym terminie.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"## Literatura\n",
|
||||
"Polecana literatura do przedmiotu:\n",
|
||||
"\n",
|
||||
"- Koehn, P. (2009). Statistical Machine Translation. Cambridge: Cambridge University Press. doi:10.1017/CBO9780511815829\n",
|
||||
"- Philipp Koehn. \"Neural Machine Translation\". 2020.\n",
|
||||
"- https://web.stanford.edu/~jurafsky/slp3/3.pdf\n",
|
||||
"- Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. North American Association for Computational Linguistics (NAACL).\n",
|
||||
"- Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu. 2020. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research vol 21, number 140, pages 1-67.\n",
|
||||
"- Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya. 2019. Language Models are Unsupervised Multitask Learners\n",
|
||||
"- https://jalammar.github.io/illustrated-transformer/\n",
|
||||
"- https://www.youtube.com/watch?v=-9evrZnBorM&ab_channel=YannicKilcher\n",
|
||||
"- https://www.youtube.com/watch?v=u1_qMdb0kYU&ab_channel=YannicKilcher\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"## Zaliczenie\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Do zdobycia będzie conajmniej 600 punktów.\n",
|
||||
"\n",
|
||||
"Ocena:\n",
|
||||
"\n",
|
||||
"- -299 — 2\n",
|
||||
"\n",
|
||||
"- 300-349 — 3\n",
|
||||
"\n",
|
||||
"- 350-399 — 3+\n",
|
||||
"\n",
|
||||
"- 400-449 — 4\n",
|
||||
"\n",
|
||||
"- 450—499 — 4+\n",
|
||||
"\n",
|
||||
"- 500- — 5\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"**Żeby zaliczyć przedmiot należy pojawiać się na laboratoriach. Maksymalna liczba nieobecności to 3. Obecność będę sprawdzał co zajęcia. Jeżeli kogoś nie będzie więcej niż 3 razy, to nie będzie miał zaliczonego przedmiotu** \n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"author": "Jakub Pokrywka",
|
||||
"email": "kubapok@wmi.amu.edu.pl",
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"lang": "pl",
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.3"
|
||||
},
|
||||
"subtitle": "0.Informacje na temat przedmiotu[ćwiczenia]",
|
||||
"title": "Ekstrakcja informacji",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
779
01_Kodowanie_tekstu.ipynb
Normal file
779
01_Kodowanie_tekstu.ipynb
Normal file
File diff suppressed because one or more lines are too long
70
01_materialy/a.txt
Normal file
70
01_materialy/a.txt
Normal file
@ -0,0 +1,70 @@
|
||||
# tekst pochodzi z https://wolnelektury.pl/media/book/txt/baczynski-orfeusz-w-lesie.txt
|
||||
Pod tym dębem, pod stuletnim, wśród gałęzi skrył się,
|
||||
a deszcz pierzchnął, siedmiobarwnym łukiem nad nim wzbił się.
|
||||
Ledwie okiem w nim utonął, w barwnej brodząc nucie,
|
||||
blady błękit tęczę wchłonął, dąb zawołał: «Zbudź się.
|
||||
Czas na ciebie, czeka lira, nowej pieśni głodna,
|
||||
wdrąż się w ziemię, bij o niebo, serca przepal do dna.
|
||||
Ze mną, boski Orfeuszu, zmierz muzyczną siłę,
|
||||
mnie pokonasz — śmierć przemożesz, którą zwyciężyłem.
|
||||
Popatrz: uschnie młoda łoza, runie smukła jodła,
|
||||
patrz: topole śmierć podcięła, ale mnie nie zmogła.
|
||||
W niebo śpiewem rosnę, w ziemię korzeniami wrastam,
|
||||
me milczenie jest strumieniem, a ma pieśń liściasta!»
|
||||
|
||||
Więc Orfeusz chwycił lirę rozmodloną dłonią,
|
||||
strunę trącił, już obłoki przebudzone dzwonią.
|
||||
Jeszcze głosu nie wydobył, już na wargi drżące,
|
||||
jak na liście, promieniście wbiega młode słońce.
|
||||
I pieśń począł.
|
||||
Wrył się w ziemię takim jasnym tonem,
|
||||
że wzleciały ponad drzewa krety uskrzydlone,
|
||||
że strumienie, co pod ziemią ciemno się poczęły,
|
||||
nad brzegami, co je więżą, w lirę się wygięły.
|
||||
Wzniósł się w górę, ręką jeno ciężar strun odmierzał,
|
||||
a już wiatrem swego głosu w żołędzie uderzał,
|
||||
a żołędzie melodyjnie trącając się wzajem,
|
||||
rozdzwoniły włosy wierzby nad leśnym ruczajem,
|
||||
a w tych włosach smutek nagły wylągł się tak cicho,
|
||||
że nie będąc jeszcze szeptem, szeptał: «Eurydyko…»
|
||||
Jeno woda pochwyciła to czułe wezwanie,
|
||||
a już w kwiaty je wkropliła na leśnej polanie,
|
||||
a tam trawy zielonawe w korzenie wszeptały
|
||||
i już drzewa jej imieniem szumieć poczynały.
|
||||
Targnął strunę, bo nie szeptem śmierć miał głuchą przemóc,
|
||||
lecz wołaniem tak wysokim, jak gwiazda nad ziemią:
|
||||
«Chcecie? Rozpacz wam wyśpiewam: płomieniste góry
|
||||
rosną we mnie, burza wraża w ziemię kły wichury.
|
||||
Chcecie? Błyskawicą chłostam, serca gryzę gromem,
|
||||
w ręku piorun mam i rozpacz w oku nieruchomem,
|
||||
a ta rozpacz w gniew urasta, a ten gniew jest burzą
|
||||
przeciw tobie, której kształty czarno się marmurzą».
|
||||
|
||||
Już nie słowem, ale głosem w twardą korę nieba
|
||||
tłukł Orfeusz, aż sypnęła ciężkich gwiazd ulewa…
|
||||
Wtedy przerwał, bowiem uczuł, że mu głos uwięźnie
|
||||
w niebie drżącym jeszcze…
|
||||
Ale dąb milczał potężniej.
|
||||
|
||||
|
||||
|
||||
6. Porażka
|
||||
|
||||
«Eurydyko, porażka jest słodka.
|
||||
Chwała tobie, któryś mnie zwyciężył!»
|
||||
|
||||
Mijał strumień. Trzcina wiała wiotka.
|
||||
Las się kończył i zaczynał księżyc.
|
||||
|
||||
A te skały, co wyrosły ostre,
|
||||
zdały mu się czułym zapewnieniem.
|
||||
|
||||
A tę noc obejmował jak siostrę,
|
||||
nazywał najczulszym imieniem.
|
||||
|
||||
I przemierzał strunami śpiącemi
|
||||
oddalenie nie objęte słowem,
|
||||
i jak klucz do zamkniętych podziemi
|
||||
niósł na wargach milczenie dębowe.
|
||||
|
||||
9–10 luty 1942
|
69
01_materialy/b.txt
Normal file
69
01_materialy/b.txt
Normal file
@ -0,0 +1,69 @@
|
||||
# tekst pochodzi z https://pl.wikipedia.org/wiki/UTF-8
|
||||
UTF-8 (ang. 8-bit Unicode Transformation Format) – system kodowania Unicode, wykorzystujący od 1 do 4 bajtów do zakodowania pojedynczego znaku, w pełni kompatybilny z ASCII. Jest najczęściej wykorzystywany do przechowywania napisów w plikach i komunikacji sieciowej.
|
||||
|
||||
|
||||
Spis treści
|
||||
1 Zalety i wady
|
||||
1.1 Zalety
|
||||
1.2 Wady
|
||||
2 Sposób kodowania
|
||||
3 Przykład
|
||||
4 Zobacz też
|
||||
5 Linki zewnętrzne
|
||||
Zalety i wady
|
||||
Zalety
|
||||
Każdy tekst w ASCII jest tekstem w UTF-8.
|
||||
Żaden znak spoza ASCII nie zawiera bajtu z ASCII.
|
||||
Zachowuje porządek sortowania UCS-4.
|
||||
Typowy tekst ISO-Latin-X rozrasta się w bardzo niewielkim stopniu po przekonwertowaniu do UTF-8.
|
||||
Nie zawiera bajtów 0xFF i 0xFE, więc łatwo można go odróżnić od tekstu UTF-16.
|
||||
Znaki o kodzie różnym od 0 nie zawierają bajtu 0, co pozwala stosować UTF-8 w ciągach zakończonych zerem.
|
||||
O każdym bajcie wiadomo, czy jest początkiem znaku, czy też leży w jego środku, co nie jest dostępne np. w kodowaniu EUC.
|
||||
Nie ma problemów z little endian vs big endian.
|
||||
Jest domyślnym kodowaniem w XML (również w jego aplikacjach: XHTML, SVG, XSL, CML, MathML).
|
||||
Wady
|
||||
Znaki CJK zajmują po 3 bajty zamiast 2 w kodowaniach narodowych.
|
||||
Znaki alfabetów niełacińskich zajmują po 2 bajty zamiast jednego w kodowaniach narodowych.
|
||||
UTF-8 nie używa przesunięć zasięgów, co stanowi dodatkowe utrudnienie dla implementacji UTF-8 (szczegóły poniżej)
|
||||
Sposób kodowania
|
||||
Mapowanie znaków Unicode na ciągi bajtów:
|
||||
|
||||
0x00 do 0x7F – bity 0xxxxxxx, gdzie kolejne „x” to bity – licząc od najwyższego
|
||||
0x80 do 0x7FF – bity 110xxxxx 10xxxxxx
|
||||
0x800 do 0xFFFF – bity 1110xxxx 10xxxxxx 10xxxxxx
|
||||
0x10000 do 0x1FFFFF – bity 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||
0x200000 do 0x3FFFFFF – bity 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||
0x4000000 do 0x7FFFFFFF – bity 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||
Znaki z przedziału ASCII (0 do 127) kodowane są jako jeden bajt, czyli m.in. litery alfabetu łacińskiego. Polskie znaki diakrytyczne kodowane już są jako dwa bajty. W listopadzie 2003 roku kodowanie UTF-8 zostało ograniczone zgodnie z RFC 3629 ↓ do 0x10FFFF pozycji, w celu zapewnienia zgodności z ograniczeniami systemu UTF-16. Rezultatem było usunięcie wszystkich sekwencji złożonych z 5 i 6 bajtów oraz około połowy sekwencji 4-bajtowych. W ten sposób pozostało dokładnie 17 • 65536 - 2048, czyli 1 112 064 pozycji znaków możliwych do zakodowania w UTF-8. Pomniejszenie liczby kodów o 2048 wynika z zarezerwowania kodów z zakresu od U+D800 do U+DFFF dla kodowania UTF-16.
|
||||
|
||||
Teoretycznie w UTF-8 ten sam znak można zapisać na kilka sposobów. Przykładowo znak ASCII / (ukośnik) można zapisać jako:
|
||||
|
||||
00101111
|
||||
11000000 10101111
|
||||
11100000 10000000 10101111itd.
|
||||
Stanowi to zagrożenie bezpieczeństwa m.in. dla serwerów, które sprawdzają obecność znaku / w ścieżkach. Z tego powodu standard UTF-8 przewiduje, że poprawny jest wyłącznie najkrótszy możliwy sposób zapisu, a każdy program musi odrzucać znaki zapisane dłuższymi sekwencjami niż minimalna.
|
||||
|
||||
Problemu tego można byłoby uniknąć, przy okazji skracając nieznacznie wielkość danych, jeśli wykorzystano by zasadę przesunięć typu:
|
||||
|
||||
sekwencje 1-bajtowe kodują 0x80 (128) różnych znaków – od 0x00 do 0x7F
|
||||
sekwencje 2-bajtowe kodują 0x800 (2048) różnych znaków – od 0x80 do 0x87F
|
||||
sekwencje 3-bajtowe kodują 0x10000 (65536) różnych znaków – od 0x880 do 0x1087F
|
||||
itd.
|
||||
Przykład
|
||||
Kodowanie na podstawie znaku euro €:
|
||||
|
||||
Znak € w Unicode ma oznaczenie U+20AC.
|
||||
Zgodnie z informacjami w poprzednim podrozdziale taka wartość jest możliwa do zakodowania na 3 bajtach.
|
||||
Liczba szesnastkowa 20AC to binarnie 0010 0000 1010 1100 po uzupełnieniu wiodącymi zerami do 16 bitów, ponieważ tyle bitów trzeba zakodować na 3 bajtach w UTF-8.
|
||||
Kodowanie na trzech bajtach wymaga użycia w pierwszym bajcie trzech wiodących bitów ustawionych na 1, a czwartego na 0 (1110…).
|
||||
Pozostałe bity pierwszego bajtu pochodzą z najstarszych czterech bitów kodowanej wartości w Unicode, co daje (1110 0010), a reszta bitów dzielona jest na dwa bloki po 6 bitów każdy (…0000 1010 1100).
|
||||
Do tych bloków dodawane są wiodące bity 10, by tworzyły następujące 8-bitowe wartości 1000 0010 i 1010 1100).
|
||||
W ten sposób rezultatem są trzy bajty w postaci 1110 0010 1000 0010 1010 1100, co w systemie szesnastkowych przyjmuje postać E2 82 AC.
|
||||
Poniższa tabela pozwala zrozumieć sposób kodowana różnej długości numerów kodowych Unicode w UTF-8.
|
||||
|
||||
Unicode Unicode binarnie UTF-8 binarnie
|
||||
1. bajt 2. bajt 3. bajt 4. bajt UTF-8 szesnastkowo
|
||||
$ U+0024 0100100 00100100 24
|
||||
¢ U+00A2 000 10100010 11000010 10100010 C2 A2
|
||||
€ U+20AC 00100000 10101100 11100010 10000010 10101100 E2 82 AC
|
||||
𐍈 U+10348 00001 00000011 01001000 11110000 10010000 10001101 10001000 F0 90 8D 88
|
4484
01_materialy/magiczny-ogrod.txt
Normal file
4484
01_materialy/magiczny-ogrod.txt
Normal file
File diff suppressed because it is too large
Load Diff
1
01_materialy/polski_tekst.txt
Normal file
1
01_materialy/polski_tekst.txt
Normal file
@ -0,0 +1 @@
|
||||
zażółć gęślą jaźń
|
Loading…
Reference in New Issue
Block a user