add thrax
This commit is contained in:
parent
b13a59e671
commit
bf02a0ca98
23
README.md
23
README.md
@ -11,7 +11,7 @@ Dyżury: B1-46. Przed przyjściem proszę się umówić na spotkanie, najlepiej
|
|||||||
|
|
||||||
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach.
|
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach.
|
||||||
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
||||||
Punktacja za zadania jest następująca:
|
Punktacja za zadania jest następująca:
|
||||||
- mniej niż 30 punktów - 2
|
- mniej niż 30 punktów - 2
|
||||||
- 30-34- 3
|
- 30-34- 3
|
||||||
- 35-39- 3.5
|
- 35-39- 3.5
|
||||||
@ -21,8 +21,11 @@ Punktacja za zadania jest następująca:
|
|||||||
|
|
||||||
#### Wysyłanie zadań
|
#### Wysyłanie zadań
|
||||||
|
|
||||||
Proszę pobrać te repozytorium i zmienić nazwę katalogu na daut2021-rano-sNRINDEKSU . NRINDEKSU proszę wpisać swój nr indeksu, np. daut2021-rano-s123456.
|
Proszę stworzyć prywatne repozytorium na https://git.wmi.amu.edu.pl/ o nazwie daut2021-po16-sNRINDEKSU oraz dać
|
||||||
|
prawa do odczytu użytkownikowi kubapok (prowadzący przedmiot). W NRINDEKSU proszę wpisać swój nr indeksu, np. daut2021-po16-s123456.
|
||||||
|
|
||||||
|
Następnie w swoim repozytorium proszę spullować niniejsze repozytorium: `git pull git@git.wmi.amu.edu.pl:kubapok/daut2021-po16.git`
|
||||||
|
W ten sposób będziemy aktualizować zadania co zajęcia.
|
||||||
|
|
||||||
Proszę rozwiązać zadanie TASKX02 lub TASKX03 w zależności od numeru indeksu. W tym celu należy dodac plik `run.py`
|
Proszę rozwiązać zadanie TASKX02 lub TASKX03 w zależności od numeru indeksu. W tym celu należy dodac plik `run.py`
|
||||||
w odpowiednim katalogu. Za pomocą `run_reports.py` można sprwawdzić ilość punktów.
|
w odpowiednim katalogu. Za pomocą `run_reports.py` można sprwawdzić ilość punktów.
|
||||||
@ -30,15 +33,15 @@ w odpowiednim katalogu. Za pomocą `run_reports.py` można sprwawdzić ilość p
|
|||||||
Do repo proszę dodawać wyłącznie plik `run.py` w odpowiednim katalogu, chyba że w zadaniu jest zaznaczone inaczej.
|
Do repo proszę dodawać wyłącznie plik `run.py` w odpowiednim katalogu, chyba że w zadaniu jest zaznaczone inaczej.
|
||||||
Proszę również nie modyfikować innych plików.
|
Proszę również nie modyfikować innych plików.
|
||||||
|
|
||||||
Wszystkie zadania należy robić w terminie zaznaczonym w `description.txt`. Po terminie będę podawał punktację w MS TEAMS.
|
Wszystkie zadania należy robić w terminie zaznaczonym w `description.txt`. Po terminie będę podawał punktację za pomocą USUSa w "sprawdziany".
|
||||||
|
|
||||||
|
Zadania robimy do końca soboty poprzedzającej zajęcia
|
||||||
|
|
||||||
#### Aktualizacja repozytorium
|
#### Aktualizacja repozytorium
|
||||||
|
|
||||||
We własnym repozytorium:
|
We własnym repozytorium:
|
||||||
|
|
||||||
`git pull git@git.wmi.amu.edu.pl:kubapok/daut2021-rano.git`
|
`git pull git@git.wmi.amu.edu.pl:kubapok/daut2021-po16.git`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Zajęcia Wyrażenia regularne 1
|
## Zajęcia Wyrażenia regularne 1
|
||||||
@ -308,3 +311,11 @@ re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek')
|
|||||||
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek', re.MULTILINE)
|
re.findall(r'^Ma', 'Ma kota Ala\nMa psa Jacek', re.MULTILINE)
|
||||||
```
|
```
|
||||||
#### RE.COMPILE
|
#### RE.COMPILE
|
||||||
|
|
||||||
|
## Zajęcia 5
|
||||||
|
https://www.openfst.org/twiki/bin/view/GRM/Thrax
|
||||||
|
|
||||||
|
https://www.cs.jhu.edu/~jason/465/hw-ofst/hw-ofst.pdf
|
||||||
|
|
||||||
|
Wszystkie zadania proszę robić na wzór `TaskH00`. Proszę umieszczać gramatykę w pliku `grammar.grm` oraz
|
||||||
|
opisywać finalną regułę nazwą `FinalRule`.
|
||||||
|
9
TaskH00/description.txt
Normal file
9
TaskH00/description.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Write a Thrax grammar which replaces all occurrences of Polish
|
||||||
|
inflected forms of the word "Legia" ("Legia", "Legią", "Legię",
|
||||||
|
"Legii") into the corresponding forms of the word "Lech" ("Lech",
|
||||||
|
"Lechem", "Lecha", "Lecha", respectively).
|
||||||
|
|
||||||
|
The task has a solution already, do not solve it!
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
44
TaskH00/grammar.grm
Normal file
44
TaskH00/grammar.grm
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
|
||||||
|
# zamiana końcówek, "i"/"ę" zgrupowane, bo zamieniamy na wspólną końcówkę
|
||||||
|
suffixes = ("a" : "") | ("i" | "ę" : "a") | ("ą" : "em");
|
||||||
|
|
||||||
|
# zamiana rdzenia
|
||||||
|
legia_to_lech_core = "Legi" : "Lech";
|
||||||
|
|
||||||
|
legia_to_lech = legia_to_lech_core suffixes;
|
||||||
|
|
||||||
|
# Wszystkie możliwe znaki, niestety nie ma (?) prostszego sposobu.
|
||||||
|
# Zauważmy, że polskie znaki diakrytyczne będą reprezentowane
|
||||||
|
# tak naprawdę jako dwuznaki, nie stanowi to jednak problemu.
|
||||||
|
allChars = Optimize[
|
||||||
|
"[1]" | "[2]" | "[3]" | "[4]" | "[5]" | "[6]" | "[7]" | "[8]" | "[9]" | "[10]" |
|
||||||
|
"[11]" | "[12]" | "[13]" | "[14]" | "[15]" | "[16]" | "[17]" | "[18]" | "[19]" | "[20]" |
|
||||||
|
"[21]" | "[22]" | "[23]" | "[24]" | "[25]" | "[26]" | "[27]" | "[28]" | "[29]" | "[30]" |
|
||||||
|
"[31]" | "[32]" | "[33]" | "[34]" | "[35]" | "[36]" | "[37]" | "[38]" | "[39]" | "[40]" |
|
||||||
|
"[41]" | "[42]" | "[43]" | "[44]" | "[45]" | "[46]" | "[47]" | "[48]" | "[49]" | "[50]" |
|
||||||
|
"[51]" | "[52]" | "[53]" | "[54]" | "[55]" | "[56]" | "[57]" | "[58]" | "[59]" | "[60]" |
|
||||||
|
"[61]" | "[62]" | "[63]" | "[64]" | "[65]" | "[66]" | "[67]" | "[68]" | "[69]" | "[70]" |
|
||||||
|
"[71]" | "[72]" | "[73]" | "[74]" | "[75]" | "[76]" | "[77]" | "[78]" | "[79]" | "[80]" |
|
||||||
|
"[81]" | "[82]" | "[83]" | "[84]" | "[85]" | "[86]" | "[87]" | "[88]" | "[89]" | "[90]" |
|
||||||
|
"[91]" | "[92]" | "[93]" | "[94]" | "[95]" | "[96]" | "[97]" | "[98]" | "[99]" | "[100]" |
|
||||||
|
"[101]" | "[102]" | "[103]" | "[104]" | "[105]" | "[106]" | "[107]" | "[108]" | "[109]" | "[110]" |
|
||||||
|
"[111]" | "[112]" | "[113]" | "[114]" | "[115]" | "[116]" | "[117]" | "[118]" | "[119]" | "[120]" |
|
||||||
|
"[121]" | "[122]" | "[123]" | "[124]" | "[125]" | "[126]" | "[127]" | "[128]" | "[129]" | "[130]" |
|
||||||
|
"[131]" | "[132]" | "[133]" | "[134]" | "[135]" | "[136]" | "[137]" | "[138]" | "[139]" | "[140]" |
|
||||||
|
"[141]" | "[142]" | "[143]" | "[144]" | "[145]" | "[146]" | "[147]" | "[148]" | "[149]" | "[150]" |
|
||||||
|
"[151]" | "[152]" | "[153]" | "[154]" | "[155]" | "[156]" | "[157]" | "[158]" | "[159]" | "[160]" |
|
||||||
|
"[161]" | "[162]" | "[163]" | "[164]" | "[165]" | "[166]" | "[167]" | "[168]" | "[169]" | "[170]" |
|
||||||
|
"[171]" | "[172]" | "[173]" | "[174]" | "[175]" | "[176]" | "[177]" | "[178]" | "[179]" | "[180]" |
|
||||||
|
"[181]" | "[182]" | "[183]" | "[184]" | "[185]" | "[186]" | "[187]" | "[188]" | "[189]" | "[190]" |
|
||||||
|
"[191]" | "[192]" | "[193]" | "[194]" | "[195]" | "[196]" | "[197]" | "[198]" | "[199]" | "[200]" |
|
||||||
|
"[201]" | "[202]" | "[203]" | "[204]" | "[205]" | "[206]" | "[207]" | "[208]" | "[209]" | "[210]" |
|
||||||
|
"[211]" | "[212]" | "[213]" | "[214]" | "[215]" | "[216]" | "[217]" | "[218]" | "[219]" | "[220]" |
|
||||||
|
"[221]" | "[222]" | "[223]" | "[224]" | "[225]" | "[226]" | "[227]" | "[228]" | "[229]" | "[230]" |
|
||||||
|
"[231]" | "[232]" | "[233]" | "[234]" | "[235]" | "[236]" | "[237]" | "[238]" | "[239]" | "[240]" |
|
||||||
|
"[241]" | "[242]" | "[243]" | "[244]" | "[245]" | "[246]" | "[247]" | "[248]" | "[249]" | "[250]" |
|
||||||
|
"[251]" | "[252]" | "[253]" | "[254]" | "[255]"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export FinalRule = Optimize[CDRewrite[legia_to_lech, "", "", allChars*]];
|
6
TaskH00/test.exp
Normal file
6
TaskH00/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Input string: Output string: Lech Warszawa
|
||||||
|
Input string: Output string: Górnik gra z Lechem
|
||||||
|
Input string: Output string: Lech Lecha Lecha Lechem
|
||||||
|
Input string: Output string: Lechxxxxx
|
||||||
|
Input string: Output string: tu nic nie ma do zamiany
|
||||||
|
Input string:
|
5
TaskH00/test.in
Normal file
5
TaskH00/test.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Legia Warszawa
|
||||||
|
Górnik gra z Legią
|
||||||
|
Legia Legii Legię Legią
|
||||||
|
Legiaxxxxx
|
||||||
|
tu nic nie ma do zamiany
|
8
TaskH01/description.txt
Normal file
8
TaskH01/description.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Write a Thrax grammar which replaces all 0s to 1s and 1s to 0s (other
|
||||||
|
digits should not be changed).
|
||||||
|
|
||||||
|
You can assume that only string composed of digits are given on the
|
||||||
|
input.
|
||||||
|
|
||||||
|
POINTS: 4
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
6
TaskH01/test.exp
Normal file
6
TaskH01/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Input string: Output string: 0023410
|
||||||
|
Input string: Output string: 0101010
|
||||||
|
Input string: Output string: 9999999
|
||||||
|
Input string: Output string: 888088888888888
|
||||||
|
Input string: Output string: 111
|
||||||
|
Input string:
|
5
TaskH01/test.in
Normal file
5
TaskH01/test.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
1123401
|
||||||
|
1010101
|
||||||
|
9999999
|
||||||
|
888188888888888
|
||||||
|
000
|
7
TaskH02/description.txt
Normal file
7
TaskH02/description.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Napisz gramatykę Thraxową, która usuwa wszystkie znaki z wyjątkiem
|
||||||
|
polskich liter (małych i wielkich) i spacji. Wielkie litery powinny
|
||||||
|
być zamieniane na małe.
|
||||||
|
|
||||||
|
|
||||||
|
POINTS: 4
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
6
TaskH02/test.exp
Normal file
6
TaskH02/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Input string: Output string: ala ma kota
|
||||||
|
Input string: Output string: być albo nie być oto jest pytanie
|
||||||
|
Input string: Output string: przesada dwie laski dynamitu to by była przesada
|
||||||
|
Input string: Output string: róg rogi
|
||||||
|
Input string: Output string: rico żadnych testów jądrowych w bazie
|
||||||
|
Input string:
|
5
TaskH02/test.in
Normal file
5
TaskH02/test.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Ala ma kota.
|
||||||
|
Być albo nie być, oto jest pytanie.
|
||||||
|
Przesada? Dwie laski dynamitu to by była przesada.
|
||||||
|
róg rogi
|
||||||
|
Rico, żadnych testów jądrowych w bazie!
|
14
TaskH03/description.txt
Normal file
14
TaskH03/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Zamiana cyfr z ułamkami na słowa
|
||||||
|
================================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która zamienia liczby z zakresu
|
||||||
|
od -999,999 od 999,999 na postać słowną.
|
||||||
|
|
||||||
|
Zakładamy, że liczby nie mają zer nieznaczących.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 0.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 0/7
|
13
TaskH03/test.exp
Normal file
13
TaskH03/test.exp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Input string: Output string: minus dziewięćset dziewięćdziesiąt dziewięć i dziewięćset dziewięćdziesiąt dziewięć tysięcznych
|
||||||
|
Input string: Output string: dziewięćset dziewięćdziesiąt dziewięć i dziewięćset dziewięćdziesiąt jeden tysięcznych
|
||||||
|
Input string: Output string: trzy i jedna dziesiąta
|
||||||
|
Input string: Output string: dwanaście i sześćdziesiąt siedem setnych
|
||||||
|
Input string: Output string: minus trzydzieści
|
||||||
|
Input string: Output string: minus trzydzieści pięć i sto dwadzieścia jeden tysięcznych
|
||||||
|
Input string: Output string: jedna dziesiąta
|
||||||
|
Input string: Output string: jedna setna
|
||||||
|
Input string: Output string: jedna tysięczna
|
||||||
|
Input string: Output string: zero
|
||||||
|
Input string: Output string: osiem i jedna setna
|
||||||
|
Input string: Output string: osiem i pięć setnych
|
||||||
|
Input string:
|
12
TaskH03/test.in
Normal file
12
TaskH03/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
-999,999
|
||||||
|
999,991
|
||||||
|
3,1
|
||||||
|
12,67
|
||||||
|
-30
|
||||||
|
-35,121
|
||||||
|
0,1
|
||||||
|
0,01
|
||||||
|
0,001
|
||||||
|
0
|
||||||
|
8,01
|
||||||
|
8,05
|
15
TaskH04/description.txt
Normal file
15
TaskH04/description.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Zamiana cyfr na słowa polskie
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która zamienia liczby całkowite pisane
|
||||||
|
cyframi z zakresu od -999999999 do 999999999 na postać słowną (po
|
||||||
|
polsku).
|
||||||
|
|
||||||
|
Zakładamy, że liczby nie mają zer nieznaczących.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 1.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 1/7
|
11
TaskH04/test.exp
Normal file
11
TaskH04/test.exp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Input string: Output string: dwanaście tysięcy trzysta czterdzieści pięć
|
||||||
|
Input string: Output string: zero
|
||||||
|
Input string: Output string: minus dziewięćset dziewięćdziesiąt dziewięć milionów dziewięćset dziewięćdziesiąt dziewięć tysięcy dziewięćset dziewięćdziesiąt dziewięć
|
||||||
|
Input string: Output string: tysiąc osiemset dziewięć
|
||||||
|
Input string: Output string: minus dwanaście
|
||||||
|
Input string: Output string: trzy tysiące dziewięćdziesiąt osiem
|
||||||
|
Input string: Output string: trzy miliony
|
||||||
|
Input string: Output string: osiem
|
||||||
|
Input string: Output string: dwadzieścia dwa
|
||||||
|
Input string: Output string: milion jeden
|
||||||
|
Input string:
|
10
TaskH04/test.in
Normal file
10
TaskH04/test.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
12345
|
||||||
|
0
|
||||||
|
-999999999
|
||||||
|
1809
|
||||||
|
-12
|
||||||
|
3098
|
||||||
|
3000000
|
||||||
|
8
|
||||||
|
22
|
||||||
|
1000001
|
29
TaskH05/description.txt
Normal file
29
TaskH05/description.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Podział na sylaby
|
||||||
|
=================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która dzieli wyraz na sylaby. Zakładamy,
|
||||||
|
że na wejściu podawane polskie wyrazy (tj. ciągi małych liter,
|
||||||
|
włącznie z polskimi znakami diakrytycznymi). Należy zaznaczyć podział
|
||||||
|
na sylaby (przez dodanie spacji).
|
||||||
|
|
||||||
|
Założenia:
|
||||||
|
- preferujemy taki podział, by sylaba kończyła się i zaczynała spółgłoską,
|
||||||
|
np. "parter" dzielimy na "par ter",
|
||||||
|
- w przypadku zbitek więcej niż dwóch spółgłosek, pierwsza spółgłoska
|
||||||
|
powinna zostać włączona do lewej sylaby, pozostałe — do prawej sylaby
|
||||||
|
np. "bartnik" dzielimy na "bar tnik",
|
||||||
|
- pojedynczą spółgłoską dołączamy do prawej sylaby,
|
||||||
|
- pamiętamy przy tym, że niektóre głoski oddajemy za pomocą dwuznaków,
|
||||||
|
np. "szczebrzeszyn" dzielimy na "szczeb rze szyn",
|
||||||
|
- pamiętamy, że zbitki typu "ia" to jedna samogłoska.
|
||||||
|
|
||||||
|
(Powyższe założenia to oczywiście tylko przybliżenie poprawnej definicji
|
||||||
|
sylaby).
|
||||||
|
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 2.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 2/7
|
8
TaskH05/test.exp
Normal file
8
TaskH05/test.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Input string: Output string: par ter
|
||||||
|
Input string: Output string: bar ter
|
||||||
|
Input string: Output string: bar tnik
|
||||||
|
Input string: Output string: szczeb rze szyn
|
||||||
|
Input string: Output string: most
|
||||||
|
Input string: Output string: ma nia kal nie
|
||||||
|
Input string: Output string: a pos tro ficz ny
|
||||||
|
Input string:
|
7
TaskH05/test.in
Normal file
7
TaskH05/test.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
parter
|
||||||
|
barter
|
||||||
|
bartnik
|
||||||
|
szczebrzeszyn
|
||||||
|
most
|
||||||
|
maniakalnie
|
||||||
|
apostroficzny
|
25
TaskH06/description.txt
Normal file
25
TaskH06/description.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
Korektor gramatyczny
|
||||||
|
====================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która dokona prostej korekty gramatycznej, tj.:
|
||||||
|
|
||||||
|
* wstawi brakujący przecinek przed formami zaimków "jaki" i "który",
|
||||||
|
* ... z uwzględnieniem przyimków (także przyimka złożonego "odnośnie do")
|
||||||
|
— wtedy przecinek powinien być przed przyimkiem,
|
||||||
|
* zamieni "odnośnie" (bez "do") na "odnośnie do",
|
||||||
|
* zamieni "w każdym bądź razie" na "w każdym razie",
|
||||||
|
* zamieni formy typu "12 marzec" (nazwa miesiąca w mianowniku) na "12
|
||||||
|
marca" (nazwa miesiąc w dopełniaczu).
|
||||||
|
|
||||||
|
Należy uwzględnić też przypadki, gdy powyższe konstrukcje pisane są
|
||||||
|
wielką literą (na początku zdania).
|
||||||
|
|
||||||
|
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
|
||||||
|
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 3.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 3/7
|
13
TaskH06/test.exp
Normal file
13
TaskH06/test.exp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Input string: Output string: Jaki człowiek wie, w którym roku urodził się Mozart?
|
||||||
|
Input string: Output string: Jaki człowiek wie, w którym roku urodził się Mozart?
|
||||||
|
Input string: Output string: Powiedz, jaki człowiek wie, w którym roku urodził się Mozart?
|
||||||
|
Input string: Output string: sprawa, odnośnie do której się pytam
|
||||||
|
Input string: Output string: Odnośnie do tego
|
||||||
|
Input string: Output string: do tyłu, tak zrobili wtedy
|
||||||
|
Input string: Output string: w każdym razie, człowiek, który grał na pianinie
|
||||||
|
Input string: Output string: cofnęliby się 31 stycznia
|
||||||
|
Input string: Output string: to był 1 października 2012
|
||||||
|
Input string: Output string: to był 2 października 2012
|
||||||
|
Input string: Output string: W każdym razie, stało się to 28 lutego
|
||||||
|
Input string: Output string: odnośnie do wydarzeń, które przypadły na 29 września
|
||||||
|
Input string:
|
12
TaskH06/test.in
Normal file
12
TaskH06/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Jaki człowiek wie, w którym roku urodził się Mozart?
|
||||||
|
Jaki człowiek wie w którym roku urodził się Mozart?
|
||||||
|
Powiedz jaki człowiek wie w którym roku urodził się Mozart?
|
||||||
|
sprawa odnośnie której się pytam
|
||||||
|
Odnośnie tego
|
||||||
|
do tyłu, tak zrobili wtedy
|
||||||
|
w każdym bądź razie, człowiek który grał na pianinie
|
||||||
|
cofnęliby się 31 styczeń
|
||||||
|
to był 1 październik 2012
|
||||||
|
to był 2 październik 2012
|
||||||
|
W każdym bądź razie, stało się to 28 luty
|
||||||
|
odnośnie wydarzeń które przypadły na 29 wrzesień
|
32
TaskH07/description.txt
Normal file
32
TaskH07/description.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Wymowa
|
||||||
|
======
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która przekształca tekst polski do jego
|
||||||
|
zapisu "fonetycznego", tj.:
|
||||||
|
|
||||||
|
* "rz" na "ż" (chyba że po "t" i "p" — wówczas na "sz"), "ch" na "h", "ó" na "u",
|
||||||
|
* wyjątkowo w formach wyrazu "marznąć" nie zamieniamy "rz" na "ż",
|
||||||
|
* "ę" na "en", chyba że na końcu wyrazu lub przed "ł" — wówczas jako "e"
|
||||||
|
" "ą" na "on", chyba że na końcu wyrazu — wówczas zostaje "ą",
|
||||||
|
* oddajemy rzeczywistą wymowę na końcu bezdźwięcznych spółgłosek,
|
||||||
|
np. "g" na końcu wyrazu zamienia na "k"
|
||||||
|
* w przypadku zbitek "i" z samogłoską zmiękczamy poprzedzającą
|
||||||
|
samogłoskę (np. "siano" na "śano"), w przeciwnym razie
|
||||||
|
zamieniamy "i" na "j" ("bieda" na "bjeda"),
|
||||||
|
* zbitki typu "ci" zamieniamy na "ć", np. "zima" na "źima", wyjątki:
|
||||||
|
"sinus" i formy przymiotnika "silikonowy",
|
||||||
|
* wszystkie wielkie litery należy zamienić na małe,
|
||||||
|
* znaki interpunkcyjne należy usunąć.
|
||||||
|
|
||||||
|
(Oczywiście to tylko przybliżenie rzeczywistej transkrypcji
|
||||||
|
fonetycznej).
|
||||||
|
|
||||||
|
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
|
||||||
|
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 4.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 4/7
|
12
TaskH07/test.exp
Normal file
12
TaskH07/test.exp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Input string: Output string: ala ma kota
|
||||||
|
Input string: Output string: być albo ńe być oto jest pytańe
|
||||||
|
Input string: Output string: żeby hrońić informacje zainteresowane państwa podjeły ruwńeż dźałańa psyhologiczne
|
||||||
|
Input string: Output string: marzne bo ńe mjeli silikonu
|
||||||
|
Input string: Output string: pjorun kulisty wyglondem pszypomina śwjetlistą kule o średńicy od kilku do kilkudźeśenću centymetruf
|
||||||
|
Input string: Output string: renką
|
||||||
|
Input string: Output string: pewnego dńa zrozumjesz że w żyću jest tylko jeden uńiwersalny jenzyk śiła i matematyka
|
||||||
|
Input string: Output string: pszesada dwje laski dynamitu to by była pszesada
|
||||||
|
Input string: Output string: ruk rogi
|
||||||
|
Input string: Output string: rico żadnyh testuf jondrowyh w baźe
|
||||||
|
Input string: Output string: ńe dawać na sztywno
|
||||||
|
Input string:
|
11
TaskH07/test.in
Normal file
11
TaskH07/test.in
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Ala ma kota.
|
||||||
|
Być albo nie być, oto jest pytanie.
|
||||||
|
Żeby chronić informacje zainteresowane państwa podjęły również działania psychologiczne.
|
||||||
|
Marznę, bo nie mieli silikonu.
|
||||||
|
Piorun kulisty wyglądem przypomina świetlistą kulę o średnicy od kilku do kilkudziesięciu centymetrów.
|
||||||
|
ręką
|
||||||
|
Pewnego dnia zrozumiesz, że w życiu jest tylko jeden uniwersalny język siła. I matematyka.
|
||||||
|
Przesada? Dwie laski dynamitu to by była przesada.
|
||||||
|
róg rogi
|
||||||
|
Rico, żadnych testów jądrowych w bazie!
|
||||||
|
nie dawać na sztywno
|
29
TaskH08/description.txt
Normal file
29
TaskH08/description.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Rozwijanie skrótów
|
||||||
|
==================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która rozwija skróty poprzedzające
|
||||||
|
imiona/nazwiska, tj.: "prof.", "dr", "hab.", "ks.", "mgr",
|
||||||
|
"inż.", także formy typu "dra", "mgrowi". Skróty "dr" i "mgr"
|
||||||
|
mogą być opcjonalnie zakończone kropką.
|
||||||
|
|
||||||
|
|
||||||
|
Domyślnie należy zamieniać skróty na formę podstawową (mianownik),
|
||||||
|
chyba że:
|
||||||
|
|
||||||
|
* skróty typu "dra" i "mgrowi" należy rozwijać do odpowiednich form (np. "doktora", "magistrowi"),
|
||||||
|
także towarzyszące im inne skróty;
|
||||||
|
* możemy odgadnąć formę po imieniu następującym po skrócie lub ciągu skrótów,
|
||||||
|
należy uwzględnić przynajmniej 20 częstych imion męskich
|
||||||
|
* możemy odgadnąć formę po nazwisku występującym po skrócie lub ciągu skrótów lub jeden wyraz dalej
|
||||||
|
uwzględniamy nazwiska "Nowak", "Kaczmarek" oraz nazwiska zakończone na "-ski", "-cki", "-owicz";
|
||||||
|
* możemy odgadnąć forme po poprzedzającym przyimku.
|
||||||
|
|
||||||
|
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
|
||||||
|
polskiego alfabetu, spacje, przecinki, kropki i znaki zapytania.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 5.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 5/7
|
13
TaskH08/test.exp
Normal file
13
TaskH08/test.exp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Input string: Output string: Widzę księdza profesora Mateusza Kusia, jak rozmawia z doktorem inżynierem jak mu tam było.
|
||||||
|
Input string: Output string: profesor doktor habilitowany ksiądz magister inżynier
|
||||||
|
Input string: Output string: profesor habilitowany hahahaha
|
||||||
|
Input string: Output string: od profesora habilitowanego hahahaha
|
||||||
|
Input string: Output string: doktor Michał Rrrrrrrr
|
||||||
|
Input string: Output string: doktora Michała Rrrrrrrr
|
||||||
|
Input string: Output string: doktor Michał Rrrrrrrr
|
||||||
|
Input string: Output string: doktora Michała Rrrrrrrr
|
||||||
|
Input string: Output string: profesor Pasem Ratunkowym
|
||||||
|
Input string: Output string: profesorem Pasem Kaczmarkiem
|
||||||
|
Input string: Output string: doktor habilitowany Rups Koźlarski doktora habilitowanego Rups Koźlarskiego
|
||||||
|
Input string: Output string: dramat wyprof.
|
||||||
|
Input string:
|
12
TaskH08/test.in
Normal file
12
TaskH08/test.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Widzę ks. prof. Mateusza Kusia, jak rozmawia z drem inż. jak mu tam było.
|
||||||
|
prof. dr hab. ks. mgr inż.
|
||||||
|
prof. hab. hahahaha
|
||||||
|
od prof. hab. hahahaha
|
||||||
|
dr Michał Rrrrrrrr
|
||||||
|
dr Michała Rrrrrrrr
|
||||||
|
dr. Michał Rrrrrrrr
|
||||||
|
dr. Michała Rrrrrrrr
|
||||||
|
prof. Pasem Ratunkowym
|
||||||
|
prof. Pasem Kaczmarkiem
|
||||||
|
dr hab. Rups Koźlarski dr hab. Rups Koźlarskiego
|
||||||
|
dramat wyprof.
|
33
TaskH09/description.txt
Normal file
33
TaskH09/description.txt
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Tłumacz polsko-poznański
|
||||||
|
========================
|
||||||
|
|
||||||
|
Napisać gramatykę thraxową, która przekształca tekst polski na wersję poznańską
|
||||||
|
Uwzględnić zamiany (wraz z formami fleksyjnymi):
|
||||||
|
|
||||||
|
* "tramwaj"/"bimba",
|
||||||
|
* "pieniądze"/"bejmy",
|
||||||
|
* "ludzie"/"wiaruchna",
|
||||||
|
* "zamknąć na klucz"/"zakluczyć",
|
||||||
|
* "nacisnąć"/"nadusić",
|
||||||
|
* "czerwona kapusta"/"modra kapusta",
|
||||||
|
|
||||||
|
W co trzeci wyraz (zaczynając od początku) należy wstawić wyraz "tej".
|
||||||
|
|
||||||
|
Przy zamianie rodzaju/liczby (np. "tramwaj" na "bimba") należy zmienić:
|
||||||
|
|
||||||
|
* formę przymiotnika poprzedzającą wyraz (uwzględniamy regularne
|
||||||
|
przymiotniki zakończone na "-y"),
|
||||||
|
* formę przymiotnika następującego po wyrazie (uwzględniamy regularne
|
||||||
|
przymiotniki zakończone na "-y"),
|
||||||
|
* formę czasownika następującego po mianowniku lub jeden wyraz dalej
|
||||||
|
(uwzględniamy regularne formy czasu przeszłego).
|
||||||
|
|
||||||
|
Zakładamy, że wejściowy tekst może zawierać duże i wielkie litery
|
||||||
|
polskiego alfabetu i spacje.
|
||||||
|
|
||||||
|
UWAGA! Zadanie przeznaczone dla studentów, których numer indeksu
|
||||||
|
dzieli się przez 7 z resztą 6.
|
||||||
|
|
||||||
|
POINTS: 15
|
||||||
|
DEADLINE: 2022-02-06 16:00
|
||||||
|
REMAINDER: 6/7
|
7
TaskH09/test.exp
Normal file
7
TaskH09/test.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Input string: Output string: tej Czerwona bimba tej przyjechała i tej zielony autobus tej odjechał
|
||||||
|
Input string: Output string: tej Wiaruchna zakluczyła tej modrą kapustę tej
|
||||||
|
Input string: Output string: tej Ci dziwna tej wiaruchna to tej chyba
|
||||||
|
Input string: Output string: tej Bimbą jechał tej i nadusił tej przycisk
|
||||||
|
Input string: Output string: tej Bejmy były tej zakluczone
|
||||||
|
Input string: Output string: tej Bimba dzisiaj tej odblablowała
|
||||||
|
Input string:
|
6
TaskH09/test.in
Normal file
6
TaskH09/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Czerwony tramwaj przyjechał i zielony autobus odjechał
|
||||||
|
Ludzie zamknęli na klucz czerwoną kapustę
|
||||||
|
Ci dziwni ludzie to chyba
|
||||||
|
Tramwajem jechał i nacisnął przycisk
|
||||||
|
Pieniądze były zamknięte na klucz
|
||||||
|
Tramwaj dzisiaj odblablował
|
@ -10,6 +10,12 @@ def execute_task(dir):
|
|||||||
try:
|
try:
|
||||||
with open(Path(dir,f'{task_set}.in')) as f_in, open(Path(dir,f'{task_set}.out'), 'w') as f_out:
|
with open(Path(dir,f'{task_set}.in')) as f_in, open(Path(dir,f'{task_set}.out'), 'w') as f_out:
|
||||||
arg = [x for x in dir.iterdir() if str(x).endswith(f'{task_set}.arg')]
|
arg = [x for x in dir.iterdir() if str(x).endswith(f'{task_set}.arg')]
|
||||||
|
if str(dir).startswith('TaskH'):
|
||||||
|
compilation_command = ['thraxcompiler', f'--input_grammar={Path(dir,"grammar.grm")}', f'--output_far={Path(dir,"grammar.far")}']
|
||||||
|
process = subprocess.Popen(compilation_command, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
process.wait()
|
||||||
|
command = ['thraxrewrite-tester', f'--far={Path(dir,"grammar.far")}', f'--rules=FinalRule']
|
||||||
|
else:
|
||||||
command = ['python3' ,Path(dir,'run.py')]
|
command = ['python3' ,Path(dir,'run.py')]
|
||||||
if len(arg) != 0:
|
if len(arg) != 0:
|
||||||
command.append(arg[0])
|
command.append(arg[0])
|
||||||
|
13
thrax_example.grm
Normal file
13
thrax_example.grm
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# thraxcompiler --input_grammar=thrax_example.grm --output_far=example.far
|
||||||
|
# thraxrewrite-tester --far=example.far --rules=First
|
||||||
|
#
|
||||||
|
# przykłady z https://www.cs.jhu.edu/~jason/465/hw-ofst/hw-ofst.pdf
|
||||||
|
|
||||||
|
Zero = "0";
|
||||||
|
One = "1";
|
||||||
|
Bit = Zero | One;
|
||||||
|
|
||||||
|
export First = Optimize[Zero Zero* Bit* One One One One?];
|
||||||
|
|
||||||
|
export Second = Optimize[ (Zero One (One One)* )* | (One (One One)* Zero )* | Zero* | (Zero One (One One)* Zero )* ];
|
||||||
|
export Third = Optimize["a" (("b":"x")+ | ("c"+ : "y") | ("":"fric")) "a"];
|
Loading…
Reference in New Issue
Block a user