Merge branch 'master' of git.wmi.amu.edu.pl:filipg/aitech-moj
This commit is contained in:
commit
f80793e88e
92
cw/00_Informacje_na_temat_przedmiotu.ipynb
Normal file
92
cw/00_Informacje_na_temat_przedmiotu.ipynb
Normal file
@ -0,0 +1,92 @@
|
||||
{
|
||||
"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",
|
||||
"\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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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
|
||||
}
|
670
cw/01_Język.ipynb
Normal file
670
cw/01_Język.ipynb
Normal file
File diff suppressed because one or more lines are too long
70
cw/01_materialy/a.txt
Normal file
70
cw/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
cw/01_materialy/b.txt
Normal file
69
cw/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
|
1
cw/01_materialy/polski_tekst.txt
Normal file
1
cw/01_materialy/polski_tekst.txt
Normal file
@ -0,0 +1 @@
|
||||
zażółć gęślą jaźń
|
15
cw/01_materialy/polski_tekst_2.txt
Normal file
15
cw/01_materialy/polski_tekst_2.txt
Normal file
@ -0,0 +1,15 @@
|
||||
Charles Baudelaire
|
||||
|
||||
O pierwszej nad ranem
|
||||
tłum. Stefan Napierski
|
||||
|
||||
|
||||
|
||||
Nareszcie! sam jeden! Słychać już tylko przetaczanie się kilku zapóźnionych i wymęczonych dorożek. Na niewiele godzin uzyskamy milczenie, jeśli nawet nie spokój. Nareszcie! znikła tyrania twarzy ludzkiej i cierpieć będę już tylko przez samego siebie.
|
||||
|
||||
Nareszcie! zezwolono mi zatem rozprostować się w kąpieli ciemności! Naprzód podwójne zawarcie drzwi. Wydaje mi się, że to przekręcenie klucza wzmoże samotność moją i wzmocni barykady, które oto dzielą mnie od świata.
|
||||
|
||||
Straszliwe życie! Straszliwe miasto! Streśćmy powtórnie dzień: widzenie garstki literatów, z których jeden zapytywał mnie, czy można udać sie do Rosji drogą lądową (najwidoczniej sądził, że Rosja jest wyspą); wielkoduszna dysputa z kierownikiem pewnego czasopisma, który na każdy argument odpowiadał: „Tutaj, to partia ludzi uczciwych”, co zakłada milcząco, że wszystkie inne dzienniki redagują szubrawcy; ukłon, oddany jakimś dwudziestu osobom, z których piętnaście jest mi nieznanych; rozdawanie uścisku dłoni w tej samej proporcji, i to zaniedbawszy przez nieostrożność zaopatrzenia się wprzód w rękawiczki; wdrapanie się, gwoli zabicia czasu, podczas ulewy, na pięterko do baletniczki, która prosiła mnie o narysowanie jej kostiumu do *Venus*; ubieganie się w sposób przypochlebny o jednego z dyrektorów teatru, który powiedział, żegnając się ze mną: „Kto wie, czy nie powinien pan zwrócić się do Z…; jest to najbardziej ociężały, najgłupszy i najgłośniejszy z wszystkich mych autorów; z nim, być może, zdoła pan co osiągnąć. Niech go pan odszuka, a potem się zobaczy”; przechwalanie się (po co?) kilkoma szkaradnymi czynami, których nie popełniłem, i tchórzliwe zaprzeczenie kilku innych występków, których dokonałem z radością, przestępstwo fanfaronady, zbrodnia na czci ludzkiej; odmówienie przyjacielowi łatwej przysługi i udzielenie poparcia na piśmie skończonemu łotrowi; uf! czyżby to wreszcie koniec?
|
||||
|
||||
Niezadowolony z siebie i niezadowolony z wszystkich, pragnąłbym siebie odkupić i odzyskać nieco dumy w milczeniu i samotności nocy. Dusze tych, których miłowałem, dusze tych, których opiewałem, skrzepcie mnie, podtrzymajcie, oddalcie ode mnie kłamstwo i zatruwające wyziewy świata; i ty, Panie mój i Boże! użycz mi łaski zestawienia kilku pięknych wierszy, które by udowodniły mi, że nie jestem ostatnim z ludzi, że gorszy nie jestem od tych, którymi gardzę.
|
||||
|
Loading…
Reference in New Issue
Block a user