Merge remote-tracking branch 'TaskG/main'
This commit is contained in:
commit
a60eb42516
20
TaskG00/description.txt
Normal file
20
TaskG00/description.txt
Normal file
@ -0,0 +1,20 @@
|
||||
Use regular expressions to extract lines containing polish surnames.
|
||||
|
||||
Download list of polish male and female surnames from here:
|
||||
|
||||
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/35279/table?page=1&per_page=20&q=&sort=
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/22817/table?page=1&per_page=20&q=&sort=
|
||||
|
||||
|
||||
Extract lines from stdin containing any of the surnames.
|
||||
Look only for surnames in lowercase.
|
||||
The surname does not have to be surrounded by space or any other special characters.
|
||||
Don't search for declined forms of surnames.
|
||||
|
||||
Check either NFA (e.g. re python library) and DFA (google re2) and compare run speed.
|
||||
|
||||
Submit solution based on DFA library.
|
||||
|
||||
NOTE: You could extract the polish surnames list, save it to a file, then commit the file to your repository.
|
||||
NOTE: You may set max_mem to a higher value than the default in re2 library.
|
44401
TaskG00/polish_wiki_excerpt.exp
Normal file
44401
TaskG00/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
0
TaskG00/polish_wiki_excerpt.in
Normal file
0
TaskG00/polish_wiki_excerpt.in
Normal file
41
TaskG01/description.txt
Normal file
41
TaskG01/description.txt
Normal file
@ -0,0 +1,41 @@
|
||||
Use regular expressions to mark Polish first-person masculine forms.
|
||||
|
||||
You should handle the following types of expressions:
|
||||
|
||||
* first-person masculine past forms of verbs ("zrobiłem", "pisałem", etc.),
|
||||
* first-person singular masculine forms of the verb "być" ("be") combined
|
||||
with singular masculine nominative forms of adjectives ("wysoki", "sprytny", etc.),
|
||||
assuming that the form of the verb "być" is to the left of the adjective, not
|
||||
more than 3 other words,
|
||||
* the verb "będę" combined with the past participle (i.e. 3rd person
|
||||
masculine imperfect form, e.g. "robił", pisał"), assuming
|
||||
that "będę" is to the left of the adjective, not
|
||||
more than 3 other words to the left of the participle OR directly
|
||||
to the right of the participle ("robił będę").
|
||||
|
||||
The first-person masculine forms should be marked with curly brackets.
|
||||
You should mark only the masculine form. Do not mark the form of "być"
|
||||
(unless it clearly a masculine form, i.e. for "byłem").
|
||||
|
||||
The match should be case-insensitive.
|
||||
|
||||
The PoliMorf dictionary of inflected forms should be applied:
|
||||
http://zil.ipipan.waw.pl/PoliMorf?action=AttachFile&do=get&target=PoliMorf-0.6.7.tab.gz
|
||||
|
||||
Suggested steps:
|
||||
|
||||
1. Extract all the needed forms from the PoliMorf dictionary:
|
||||
|
||||
* 1st person masculine past forms of verbs, unfortunately
|
||||
this form is not directly present in the lexicon, you need
|
||||
to add "em" to the 3rd person masculine form ("zrobił" => "zrobiłem")
|
||||
* singular masculine nominative forms of adjectives
|
||||
* masculine past participle (3rd person masculine imperfect forms of verbs)
|
||||
|
||||
You could do this using grep/cut commands — to obtain a simple text files
|
||||
with a word in each line. You can do this once and commit the 3 files to your repository.
|
||||
|
||||
2. In your `run` script/program, read the 3 files and create a large
|
||||
expression with alternatives. Use a regexp library based on DFAs (determintistic
|
||||
finite-automatons).
|
||||
|
25
TaskG01/simple.exp
Normal file
25
TaskG01/simple.exp
Normal file
@ -0,0 +1,25 @@
|
||||
Tu nic nie ma.
|
||||
Wczoraj {ugotowałem} ziemniaki.
|
||||
{Jechałem}, {jechałem} i {jechałem}, a potem się {zatrzymałem}.
|
||||
{Umyłem} się mydłem.
|
||||
Jestem {wysoki}.
|
||||
Jest wysoki.
|
||||
Mówią, że jestem od zawsze niezwykle {sprytny}.
|
||||
aaaa {byłem} aaa {zielony} ddd
|
||||
aaaa {byłem} aaa bbb {zielony} ddd
|
||||
aaaa {byłem} aaa bbb ccc {zielony} ddd
|
||||
aaaa {byłem} aaa bbb ccc ddd zielony ddd
|
||||
aaaa był aaa bbb zielony ddd
|
||||
aaaa byłam aaa bbb zielony ddd
|
||||
aaaa byłam aaa bbb zielona ddd
|
||||
teraz będę {pisał} książkę
|
||||
będę teraz {pisał} książkę
|
||||
będę teraz dla ciebie {pisał} książkę
|
||||
teraz dla ciebie {pisał} będę księżkę
|
||||
będę i on napisał książkę
|
||||
aaa będę {śpiewał} bbb
|
||||
aaa będę ccc {śpiewał} bbb
|
||||
aaa będę ccc ddd {śpiewał} bbb
|
||||
aaa będę ccc ddd eee {śpiewał} bbb
|
||||
aaa będę ccc ddd eee fff śpiewał bbb
|
||||
{pływałem} i {biegałem}
|
25
TaskG01/simple.in
Normal file
25
TaskG01/simple.in
Normal file
@ -0,0 +1,25 @@
|
||||
Tu nic nie ma.
|
||||
Wczoraj ugotowałem ziemniaki.
|
||||
Jechałem, jechałem i jechałem, a potem się zatrzymałem.
|
||||
Umyłem się mydłem.
|
||||
Jestem wysoki.
|
||||
Jest wysoki.
|
||||
Mówią, że jestem od zawsze niezwykle sprytny.
|
||||
aaaa byłem aaa zielony ddd
|
||||
aaaa byłem aaa bbb zielony ddd
|
||||
aaaa byłem aaa bbb ccc zielony ddd
|
||||
aaaa byłem aaa bbb ccc ddd zielony ddd
|
||||
aaaa był aaa bbb zielony ddd
|
||||
aaaa byłam aaa bbb zielony ddd
|
||||
aaaa byłam aaa bbb zielona ddd
|
||||
teraz będę pisał książkę
|
||||
będę teraz pisał książkę
|
||||
będę teraz dla ciebie pisał książkę
|
||||
teraz dla ciebie pisał będę księżkę
|
||||
będę i on napisał książkę
|
||||
aaa będę śpiewał bbb
|
||||
aaa będę ccc śpiewał bbb
|
||||
aaa będę ccc ddd śpiewał bbb
|
||||
aaa będę ccc ddd eee śpiewał bbb
|
||||
aaa będę ccc ddd eee fff śpiewał bbb
|
||||
pływałem i biegałem
|
40
TaskG02/description.txt
Normal file
40
TaskG02/description.txt
Normal file
@ -0,0 +1,40 @@
|
||||
Use regular expressions to mark Polish first-person feminine forms.
|
||||
|
||||
You should handle the following types of expressions:
|
||||
|
||||
* first-person feminine past forms of verbs ("zrobiłam", "pisałam", etc.),
|
||||
* first-person singular feminine forms of the verb "być" ("be") combined
|
||||
with singular feminine nominative forms of adjectives ("wysoka", "sprytna", etc.),
|
||||
assuming that the form of the verb "być" is to the left of the adjective, not
|
||||
more than 3 other words,
|
||||
* the verb "będę" combined with the past participle (i.e. 3rd person
|
||||
feminine imperfect form, e.g. "robiła", pisała"), assuming
|
||||
that "będę" is to the left of the adjective, not
|
||||
more than 3 other words to the left of the participle OR directly
|
||||
to the right of the participle ("robiła będę").
|
||||
|
||||
The first-person feminine forms should be marked with curly brackets.
|
||||
You should mark only the feminine form. Do not mark the form of "być"
|
||||
(unless it clearly a feminine form, i.e. for "byłam").
|
||||
|
||||
The match should be case-insensitive.
|
||||
|
||||
The PoliMorf dictionary of inflected forms should be applied:
|
||||
http://zil.ipipan.waw.pl/PoliMorf?action=AttachFile&do=get&target=PoliMorf-0.6.7.tab.gz
|
||||
|
||||
Suggested steps:
|
||||
|
||||
1. Extract all the needed forms from the PoliMorf dictionary:
|
||||
|
||||
* 1st person feminine past forms of verbs, unfortunately
|
||||
this form is not directly present in the lexicon, you need
|
||||
to add "m" to the 3rd person feminine form ("zrobiła" => "zrobiłam")
|
||||
* singular feminine nominative forms of adjectives
|
||||
* feminine past participle (3rd person feminine imperfect forms of verbs)
|
||||
|
||||
You could do this using grep/cut commands — to obtain a simple text files
|
||||
with a word in each line. You can do this once and commit the 3 files to your repository.
|
||||
|
||||
2. In your `run` script/program, read the 3 files and create a large
|
||||
expression with alternatives. Use a regexp library based on DFAs (determintistic
|
||||
finite-automatons).
|
25
TaskG02/simple.exp
Normal file
25
TaskG02/simple.exp
Normal file
@ -0,0 +1,25 @@
|
||||
Tu nic nie ma.
|
||||
Wczoraj {ugotowałam} ziemniaki.
|
||||
{Jechałam}, {jechałam} i {jechałam}, a potem się {zatrzymałam}.
|
||||
{Umyłam} się mydłem i bam, złam się.
|
||||
Jestem {wysoka}.
|
||||
Jest {wysoka}.
|
||||
Mówią, że jestem od zawsze niezwykle {sprytna}.
|
||||
aaaa {byłam} aaa {zielona} ddd
|
||||
aaaa {byłam} aaa bbb {zielona} ddd
|
||||
aaaa {byłam} aaa bbb ccc {zielona} ddd
|
||||
aaaa {byłam} aaa bbb ccc ddd zielona ddd
|
||||
aaaa była aaa bbb zielona ddd
|
||||
aaaa byłem aaa bbb zielona ddd
|
||||
aaaa byłem aaa bbb zielony ddd
|
||||
teraz będę {pisała} książkę
|
||||
będę teraz {pisała} książkę
|
||||
będę teraz dla ciebie {pisała} książkę
|
||||
teraz dla ciebie {pisała} będę księżkę
|
||||
będę i ona napisała książkę
|
||||
aaa będę {śpiewała} bbb
|
||||
aaa będę ccc {śpiewała} bbb
|
||||
aaa będę ccc ddd {śpiewała} bbb
|
||||
aaa będę ccc ddd eee {śpiewała} bbb
|
||||
aaa będę ccc ddd eee fff śpiewała bbb
|
||||
{pływałam} i {biegałam}
|
25
TaskG02/simple.in
Normal file
25
TaskG02/simple.in
Normal file
@ -0,0 +1,25 @@
|
||||
Tu nic nie ma.
|
||||
Wczoraj ugotowałam ziemniaki.
|
||||
Jechałam, jechałam i jechałam, a potem się zatrzymałam.
|
||||
Umyłam się mydłem i bam, złam się.
|
||||
Jestem wysoka.
|
||||
Jest wysoka.
|
||||
Mówią, że jestem od zawsze niezwykle sprytna.
|
||||
aaaa byłam aaa zielona ddd
|
||||
aaaa byłam aaa bbb zielona ddd
|
||||
aaaa byłam aaa bbb ccc zielona ddd
|
||||
aaaa byłam aaa bbb ccc ddd zielona ddd
|
||||
aaaa była aaa bbb zielona ddd
|
||||
aaaa byłem aaa bbb zielona ddd
|
||||
aaaa byłem aaa bbb zielony ddd
|
||||
teraz będę pisała książkę
|
||||
będę teraz pisała książkę
|
||||
będę teraz dla ciebie pisała książkę
|
||||
teraz dla ciebie pisała będę księżkę
|
||||
będę i ona napisała książkę
|
||||
aaa będę śpiewała bbb
|
||||
aaa będę ccc śpiewała bbb
|
||||
aaa będę ccc ddd śpiewała bbb
|
||||
aaa będę ccc ddd eee śpiewała bbb
|
||||
aaa będę ccc ddd eee fff śpiewała bbb
|
||||
pływałam i biegałam
|
20
TaskG03/description.txt
Normal file
20
TaskG03/description.txt
Normal file
@ -0,0 +1,20 @@
|
||||
Use regular expressions to extract lines containing polish surnames. CASE INSENSITIVE
|
||||
|
||||
Download list of polish male and female surnames from here:
|
||||
|
||||
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/35279/table?page=1&per_page=20&q=&sort=
|
||||
* https://dane.gov.pl/pl/dataset/1681,nazwiska-osob-zyjacych-wystepujace-w-rejestrze-pesel/resource/22817/table?page=1&per_page=20&q=&sort=
|
||||
|
||||
|
||||
Extract lines from stdin containing any of the surnames.
|
||||
Look only for surnames no matter casing (case insensitive).
|
||||
The surname does not have to be surrounded by space or any other special characters.
|
||||
Don't search for declined forms of surnames.
|
||||
|
||||
Check either NFA (e.g. re python library) and DFA (google re2) and compare them.
|
||||
|
||||
Submit solution based on a better method.
|
||||
|
||||
NOTE: You could extract the polish surnames list, save it to a file, then commit the file to your repository.
|
||||
NOTE: You may set max_mem to a higher value than the default in re2 library.
|
44696
TaskG03/polish_wiki_excerpt.exp
Normal file
44696
TaskG03/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
0
TaskG03/polish_wiki_excerpt.in
Normal file
0
TaskG03/polish_wiki_excerpt.in
Normal file
8
TaskG04/description.txt
Normal file
8
TaskG04/description.txt
Normal file
@ -0,0 +1,8 @@
|
||||
Na wejściu dostajemy bajty tekstu UTF-8 zapisane w zwykłej postaci tekstu
|
||||
(Zatem obługujemy strumień wejścia z 0 i 1 w postaci tekstowej, a nie strumień bitów).
|
||||
|
||||
Przekonwertuj plik na tekst UTF-8.
|
||||
|
||||
POINTS: 2
|
||||
DEADLINE: 2021-01-15 23:59:59
|
||||
REMAINDER: 0/2
|
0
TaskG04/polish_wiki_excerpt.exp
Normal file
0
TaskG04/polish_wiki_excerpt.exp
Normal file
Loading…
Reference in New Issue
Block a user