Compare commits

...

12 Commits
main ... main

Author SHA1 Message Date
Krystian Osiński
66d78258c5 Final fix 2024-05-30 16:41:12 +02:00
Krystian Osiński
ce3068466c Merge branch 'main' of https://git.wmi.amu.edu.pl/s444820/KWT-2024 2024-05-30 16:31:49 +02:00
169bcf1707 add files 2024-05-30 16:31:35 +02:00
Krystian Osiński
b6de7c6dfe merge 2024-05-30 16:29:33 +02:00
Krystian Osiński
ebb698e9d7 add lab 12-15 2024-05-30 16:27:55 +02:00
b0c9d9a3f2 add lab 9-11 2024-05-30 16:26:42 +02:00
b0557d534e add lab8 2024-04-23 20:45:56 +02:00
623c3c308c add lab8 2024-04-23 19:49:47 +02:00
Krystian Osiński
9992c8d806 Add notebook4-5 2024-04-21 12:51:11 +02:00
b002f5c96a add documents 2024-04-21 12:34:30 +02:00
7d98005446 add labs 2024-04-21 12:32:38 +02:00
8c25ab8484 add tasks 1-3 2024-04-14 16:26:09 +02:00
19 changed files with 15269 additions and 326 deletions

81
lab/aligned_pl-en.txt Normal file
View File

@ -0,0 +1,81 @@
Dostęp do zawartości strony (kliknąć na "Wejście") Access to page content (press "Enter") pl
Bezpośredni dostęp do menu z językami (wciśnij „Enter”) Direct access to language menu (press "Enter") pl
Bezpośredni dostęp do menu wyszukiwania (wciśnij „Enter”) Direct access to search menu (press "Enter") pl
Zmiana języka przeglądania BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska Change the navigation language BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska pl
Zmiana języka przeglądania Change the navigation language pl
PL - polski EN - English pl
BG - български BG - български pl
ES - español ES - español pl
CS - čeština CS - čeština pl
DA - dansk DA - dansk pl
DE - Deutsch DE - Deutsch pl
ET - eesti keel ET - eesti keel pl
EL - ελληνικά EN - English EL - ελληνικά EN - English pl
FR - français FR - français pl
GA - Gaeilge GA - Gaeilge pl
HR - hrvatski HR - hrvatski pl
IT - italiano IT - italiano pl
LV - latviešu valoda LV - latviešu valoda pl
LT - lietuvių kalba LT - lietuvių kalba pl
HU - magyar HU - magyar pl
MT - Malti MT - Malti pl
NL - Nederlands PL - polski NL - Nederlands PL - polski pl
PT - português PT - português pl
RO - română RO - română pl
SK - slovenčina SK - slovenčina pl
SL - slovenščina SL - slovenščina pl
FI - suomi FI - suomi pl
SV - svenska SV - svenska pl
Zobacz inne strony internetowe Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory Inne strony internetowe Media Strona przewodniczącego Sekretariat Generalny Think tank EP Newshub Do Waszych usług Wizyty Legislative train Zamówienia i dotacje Rejestr Portal otwartych danych Biura kontaktowe View other websites News Topics MEPs About Parliament Plenary Committees Delegations Elections Other websites Multimedia centre Presidents website Secretariat-General Think tank EP Newshub At your service Visits Legislative train Contracts and Grants Register Open data portal Liaison offices pl
O Parlamencie Parlament Europejski About Parliament European Parliament pl
Menu Strona główna Uprawnienia i procedury Strona główna Uprawnienia legislacyjne Uprawnienia budżetowe Uprawnienia kontrolne Parlamenty krajowe Traktat z Lizbony Menu Home Powers and procedures Home Legislative powers Budgetary powers Supervisory powers National parliaments The Lisbon Treaty pl
Organizacja i praca Strona główna Organizacja Wszystko o sesjach plenarnych Budżet Parlamentu Wielojęzyczność w Parlamencie Europejskim Sekretariat Generalny Ślad ekologiczny Organisation and rules Home Organisation How Plenary works Parliaments budget Multilingualism Secretariat Ecological footprint pl
Demokracja i prawa człowieka Strona główna Prawa podstawowe w UE Prawa człowieka poza UE Demokracja w skali światowej Democracy and human rights Home Fundamental rights in the EU Human rights outside the EU Global democracy pl
Historia Strona główna PE i traktaty Archiwa Historyczne In the past Home The Parliament and the treaties Historical archives pl
Tekst łatwy do czytania Easy-to-read pl
Dostęp do pola wyszukiwania Rozpocznij wyszukiwanie Access to search field Launch the search pl
Parlament Europejski European Parliament pl
Demokracja i prawa człowieka Democracy and human rights pl
Parlament Europejski zyskał sobie opinię zaangażowanego obrońcy praw podstawowych i demokracji. The European Parliament has earned a reputation as a dedicated sponsor of peoples basic rights and of democracy. pl
W jedynej instytucji UE, której członkowie są wyłaniani w wyborach bezpośrednich, posłowie prowadzą walkę z nowymi i trwającymi od dawna atakami na podstawowe wolności. Within the EUs only directly-elected institution, MEPs fight against new and old attacks on essential liberties. pl
Ochrona praw podstawowych w Unii Protecting fundamental rights in the EU pl
Prawa podstawowe przysługują wszystkim ludziom w UE bez względu na ich status lub pochodzenie. Fundamental rights apply to all people in the EU, no matter their status or origin. pl
Niektóre z tych swobód są równie stare jak Europa: prawo do życia i wolności, swoboda myśli i wypowiedzi. Some of these freedoms are as old as Europe: life and liberty, thought and expression. pl
Inne trzeba jednak ponownie zdefiniować, by iść z duchem czasu. But others have had to be redefined to keep pace with the times. pl
Ochrona danych osobowych lub zakaz klonowania ludzi nie były przedmiotem troski pierwszych posłów do PE wybranych blisko czterdzieści lat temu. Protecting personal data or prohibiting human cloning were far from the minds of the first elected MEPs, some four decades ago. pl
Przejdź do tej strony : Ochrona praw podstawowych w Unii Go to the page : Protecting fundamental rights in the EU pl
Obrona praw człowieka poza UE Defending human rights beyond the EU pl
Parlament Europejski uważa, że podstawowe prawa człowieka obowiązują również poza granicami UE. The European Parliament does not believe that peoples basic rights end at the EUs borders. pl
Posłowie do PE regularnie zabierają głos, indywidualnie lub wspólnie, w sprawie kwestii związanych z prawami człowieka w państwach spoza UE. MEPs regularly speak out individually and in unison about human rights issues in non-EU countries. pl
Z uwagi na to, że wspomniane prawa są uznawane za powszechne, reakcja jest taka sama, niezależnie od tego, czy do naruszenia dochodzi w Mjanmie/Birmie, oddalonej o 8000 km, czy na Białorusi, która graniczy z UE. Because these rights are considered universal, the response is the same whether the violation takes place in Myanmar/Burma, some 8 000 kilometres away, or in Belarus, which borders on the Union. pl
Walka o prawa człowieka przywiodła także do Parlamentu Europejskiego wielu wybitnych obrońców tych praw. The battle for human rights has also brought many prominent defenders to the European Parliament. pl
Malala Yousafzai, pakistańska działaczka walcząca o prawo dzieci do nauki, jazydzkie kobiety więzione przez Państwo Islamskie w Iraku, lekarz z Demokratycznej Republiki Konga, więźniowie polityczni z Ameryki Łacińskiej: wszyscy zabrali głos w Parlamencie. Malala Yousafzai, the Pakistani campaigner for childrens education, Yazidi women who had been prisoners of the Islamic State in Iraq, a doctor from the Democratic Republic of the Congo, political prisoners from Latin America: all have found a voice on the European Parliaments stage. pl
Przejdź do tej strony : Obrona praw człowieka poza UE Go to the page : Defending human rights beyond the EU pl
Wspieranie demokracji na całym świecie Supporting democracy around the globe pl
Wspieranie demokracji jest kluczowym elementem tych działań wyrażonym w Powszechnej deklaracji praw człowieka: „Wola ludu jest podstawą władzy rządu.” Sustaining democracy is a key element of this effort, spelled out in the Universal Declaration of Human Rights: “ The will of the people shall be the basis of the authority of government .” pl
Posłowie do PE bronią systemów demokratycznych na całym świecie. MEPs defend democratic systems around the globe. pl
Niektórzy z nich podróżują w odległe regiony, by obserwować wybory, prowadzić mediacje w konfliktach i wspierać nowo powstałe parlamenty. Some have travelled far to observe elections, mediate in conflicts and support fledgling parliaments. pl
Akty założycielskie UE wymagają, by Unia jako całość broniła zasad demokratycznych w ramach swojej polityki zagranicznej. The EUs own founding texts require that the Union as a whole defends democratic principles in its foreign affairs. pl
Jednak starania te są jeszcze bliższe Parlamentowi Europejskiemu: dla posłów do PE, którzy uczestniczyli w wyborach i kampaniach, demokracja jest sprawą osobistą. But in the European Parliament, this effort strikes closer to home: for MEPs, who have experienced elections and campaigns, democracy is a personal matter. pl
Przejdź do tej strony : Wspieranie demokracji na całym świecie Go to the page : Supporting democracy around the globe pl
Nagroda im. Sacharowa Sakharov Prize pl
Zapoznaj się z informacjami o laureatach nagrody im. Sacharowa przyznawanej od 1988 r. przez Parlament Europejski osobom, które wyróżniły się jako obrońcy praw człowieka. Read about the winners of the Parliament's Sakharov Prize, which has recongnised outstanding human rights defenders since 1988 pl
Przejdź do strony internetowej Visit the website pl
Udostępnij tę stronę: Share this page: pl
Udostępnij tę stronę Facebook (otwiera się w nowym oknie) Share this page on Facebook (opens in a new window) pl
Udostępnij tę stronę Twitter (otwiera się w nowym oknie) Share this page on Twitter (opens in a new window) pl
Udostępnij tę stronę LinkedIn (otwiera się w nowym oknie) Share this page on LinkedIn (opens in a new window) pl
Zamów powiadomienia mailowe Sign up for mail updates pl
Footer Footer pl
O Parlamencie About Parliament pl
Pokaż menu: aktualności View menu: News pl
Przewodniczący Parlamentu Europejskiego Sekretarz Generalny Parlamentu Europejskiego Wizyty Europejski Rzecznik Praw Obywatelskich Informacje o Unii Europejskiej The President of the European Parliament Secretary-General of the European Parliament Visits European Ombudsman About the European Union pl
Ukryj menu: Aktualności Hide menu: News pl
Parlament Europejski European Parliament pl
Pokaż menu: Parlament Europejski View menu: European Parliament pl
Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory News Topics MEPs About Parliament Plenary Committees Delegations Elections pl
Ukryj menu: Parlament Europejski Hide menu: European Parliament pl
Parlament w mediach społecznościowych The Parliament on social media pl
Sprawdź aktualności w Parlamencie Facebook (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Twitter (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Flickr (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie LinkedIn (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie YouTube (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Instagram (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Pinterest (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Snapchat (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Reddit (otwiera się w nowym oknie) Check out Parliament on Facebook (opens in a new window) Check out Parliament on Twitter (opens in a new window) Check out Parliament on Flickr (opens in a new window) Check out Parliament on LinkedIn (opens in a new window) Check out Parliament on YouTube (opens in a new window) Check out Parliament on Instagram (opens in a new window) Check out Parliament on Pinterest (opens in a new window) Check out Parliament on Snapchat (opens in a new window) Check out Parliament on Reddit (opens in a new window) pl
Linki do informacji Information links pl
Kontakt RSS Mapa witryny Informacja prawna Polityka ochrony prywatności Dostęp Contact RSS Sitemap Legal notice Privacy policy Accessibility pl

2831
lab/books/Books.en-pl.en Normal file

File diff suppressed because it is too large Load Diff

81
lab/class.java Normal file
View File

@ -0,0 +1,81 @@
package dev.mccue.magicbean;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* <p>
* Classes marked with this annotation must
*
* <ul>
* <li> Not have any private, non-static fields </li>
* <li> Not have any generic fields </li>
* </ul>
*
* <p>
* In exchange, an abstract class will be generated which
*
* <ul>
* <li> Is named <pre>[...]BeanOps</pre> where <pre>[...]</pre> is the name of the class. </li>
* <li> Is intended to be extended only by the annotated class. </li>
* <li> Will define get and set methods for the package-private and public fields. </li>
* </ul>
*
* <p>
* If the marked class
*
* <ul>
* <li> Has a non-private zero argument constructor </li>
* </ul>
*
* <p>
* Then a static method named <pre>of</pre> may be generated which provides an
* equivalent to an "all args constructor"
*
* <p>
* If the marked class
*
* <ul>
* <li> Is final </li>
* </ul>
*
* <p>
* Then an implementation of equals/hashCode may be generated which is based on every non-static field.
* Note that if you are using this for making a JPA Entity or similar class, you likely do not
* want to do this.
*
* <p>
* You may also request a default implementation of toString which includes every field.
*
* <p>
* The generated class can also extend another class provided that other class is extensible
* and has a zero arg constructor.
* </p>
*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface MagicBean {
/**
* @return Whether to generate an all args static factory method.
*/
boolean allArgsStaticFactory() default false;
/**
* @return Whether to generate an equals and hash code implementation.
*/
boolean equalsAndHashCode() default false;
/**
* @return Whether to generate a basic toString.
*/
boolean toString_() default false;
/**
* @return A class for the generated abstract class to extend. Does not support
* providing type parameters to generic classes or extending classes which do not have a
* zero arg constructor.
*/
Class<?> extend() default Object.class;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

689
lab/keylogger.txt Normal file
View File

@ -0,0 +1,689 @@
19:45:56 shift 42
19:45:56 k 37
19:45:56 e 18
19:45:56 y 21
19:45:56 l 38
19:45:56 o 24
19:45:57 g 34
19:45:57 g 34
19:45:57 e 18
19:45:57 r 19
19:45:57 space 57
19:45:57 c 46
19:45:57 o 24
19:45:57 space 57
19:45:58 t 20
19:45:58 o 24
19:45:58 space 57
19:45:58 j 36
19:45:58 e 18
19:45:58 s 31
19:45:59 t 20
19:45:59 ? 53
19:45:59 shift 42
19:46:00 enter 28
19:46:01 shift 42
19:46:01 k 37
19:46:01 e 18
19:46:01 y 21
19:46:01 l 38
19:46:01 o 24
19:46:02 g 34
19:46:02 g 34
19:46:02 e 18
19:46:02 r 19
19:46:02 space 57
19:46:03 t 20
19:46:03 o 24
19:46:03 space 57
19:46:03 z 44
19:46:03 alt gr 541
19:46:03 l 38
19:46:04 o 24
19:46:04 alt gr 541
19:46:04 s 31
19:46:04 l 38
19:46:04 i 23
19:46:04 w 17
19:46:04 t 20
19:46:04 y 21
19:46:05 backspace 14
19:46:05 backspace 14
19:46:06 y 21
19:46:06 space 57
19:46:06 p 25
19:46:07 r 19
19:46:07 o 24
19:46:07 g 34
19:46:07 r 19
19:46:07 a 30
19:46:07 m 50
19:46:07 space 57
19:46:08 backspace 14
19:46:08 , 51
19:46:08 space 57
19:46:08 b 48
19:46:08 alt gr 541
19:46:08 e 18
19:46:09 d 32
19:46:09 o 24
19:46:09 backspace 14
19:46:09 <09> 30
19:46:09 alt gr 541
19:46:10 c 46
19:46:10 y 21
19:46:10 space 57
19:46:11 j 36
19:46:11 e 18
19:46:11 d 32
19:46:11 n 49
19:46:11 y 21
19:46:11 m 50
19:46:11 space 57
19:46:12 z 44
19:46:12 space 57
19:46:12 r 19
19:46:12 o 24
19:46:12 d 32
19:46:12 z 44
19:46:12 a 30
19:46:12 j 36
19:46:13 alt gr 541
19:46:13 o 24
19:46:13 w 17
19:46:13 space 57
19:46:13 o 24
19:46:13 p 25
19:46:13 r 19
19:46:13 o 24
19:46:13 g 34
19:46:14 r 19
19:46:14 a 30
19:46:14 m 50
19:46:14 o 24
19:46:14 w 17
19:46:14 a 30
19:46:15 n 49
19:46:15 i 23
19:46:15 a 30
19:46:16 space 57
19:46:16 s 31
19:46:16 z 44
19:46:16 p 25
19:46:16 i 23
19:46:17 e 18
19:46:17 g 34
19:46:17 u 22
19:46:17 j 36
19:46:17 alt gr 541
19:46:17 a 30
19:46:17 c 46
19:46:18 e 18
19:46:18 g 34
19:46:18 o 24
19:46:19 space 57
19:46:19 z 44
19:46:19 w 17
19:46:19 a 30
19:46:19 n 49
19:46:21 e 18
19:46:21 g 34
19:46:21 o 24
19:46:21 space 57
19:46:22 s 31
19:46:22 p 25
19:46:22 y 21
19:46:22 w 17
19:46:22 a 30
19:46:22 r 19
19:46:22 e 18
19:46:23 . 52
19:46:23 space 57
19:46:23 shift 42
19:46:24 j 36
19:46:24 e 18
19:46:24 g 34
19:46:24 o 24
19:46:24 space 57
19:46:24 n 49
19:46:24 a 30
19:46:25 z 44
19:46:25 w 17
19:46:25 a 30
19:46:25 space 57
19:46:26 p 25
19:46:26 o 24
19:46:26 c 46
19:46:26 h 35
19:46:26 o 24
19:46:26 d 32
19:46:26 z 44
19:46:27 i 23
19:46:27 space 57
19:46:27 o 24
19:46:27 d 32
19:46:27 space 57
19:46:27 a 30
19:46:28 n 49
19:46:28 g 34
19:46:28 i 23
19:46:28 e 18
19:46:28 l 38
19:46:28 k 37
19:46:28 s 31
19:46:28 i 23
19:46:29 e 18
19:46:29 g 34
19:46:29 o 24
19:46:29 space 57
19:46:29 s 31
19:46:29 alt gr 541
19:46:29 l 38
19:46:29 o 24
19:46:29 w 17
19:46:30 a 30
19:46:30 space 57
19:46:30 shift 42
19:46:31 shift 42
19:46:31 ' 40
19:46:31 shift 42
19:46:31 k 37
19:46:31 e 18
19:46:31 y 21
19:46:32 right 77
19:46:32 space 57
19:46:33 shift 42
19:46:33 9 10
19:46:33 : 39
19:46:33 " 40
19:46:33 shift 42
19:46:33 backspace 14
19:46:34 backspace 14
19:46:34 backspace 14
19:46:35 shift 42
19:46:35 shift 42
19:46:35 9 10
19:46:35 shift 42
19:46:35 ' 40
19:46:36 K 37
19:46:36 shift 42
19:46:36 l 38
19:46:36 a 30
19:46:36 w 17
19:46:36 i 23
19:46:37 s 31
19:46:37 z 44
19:46:37 right 77
19:46:37 right 77
19:46:38 space 57
19:46:38 o 24
19:46:38 r 19
19:46:38 a 30
19:46:38 z 44
19:46:39 space 57
19:46:39 shift 42
19:46:39 ' 40
19:46:39 L 38
19:46:39 shift 42
19:46:39 o 24
19:46:40 h 35
19:46:40 g 34
19:46:40 h 35
19:46:40 g 34
19:46:40 backspace 14
19:46:40 backspace 14
19:46:40 backspace 14
19:46:41 backspace 14
19:46:41 g 34
19:46:41 g 34
19:46:42 e 18
19:46:42 r 19
19:46:42 right 77
19:46:43 space 57
19:46:44 shift 42
19:46:44 9 10
19:46:45 " 40
19:46:45 shift 42
19:46:45 shift 42
19:46:45 r 19
19:46:45 e 18
19:46:46 j 36
19:46:46 e 18
19:46:46 s 31
19:46:46 t 20
19:46:47 r 19
19:46:47 a 30
19:46:47 t 20
19:46:47 o 24
19:46:47 r 19
19:46:48 right 77
19:46:49 . 52
19:46:49 space 57
19:46:49 shift 42
19:46:50 shift 42
19:46:50 backspace 14
19:46:50 backspace 14
19:46:50 right 77
19:46:50 . 52
19:46:51 space 57
19:46:51 L 38
19:46:51 K 37
19:46:51 shift 42
19:46:51 backspace 14
19:46:52 backspace 14
19:46:52 shift 42
19:46:52 k 37
19:46:52 e 18
19:46:52 y 21
19:46:52 l 38
19:46:53 o 24
19:46:53 g 34
19:46:53 g 34
19:46:53 e 18
19:46:53 r 19
19:46:55 space 57
19:46:55 m 50
19:46:55 o 24
19:46:56 n 49
19:46:56 i 23
19:46:56 t 20
19:46:56 o 24
19:46:56 r 19
19:46:56 u 22
19:46:56 j 36
19:46:56 e 18
19:46:57 space 57
19:46:58 a 30
19:46:58 k 37
19:46:58 t 20
19:46:58 y 21
19:46:58 w 17
19:46:58 n 49
19:46:58 o 24
19:46:58 alt gr 541
19:46:58 s 31
19:46:59 alt gr 541
19:46:59 c 46
19:46:59 space 57
19:46:59 u 22
19:46:59 alt gr 541
19:46:59 z 44
19:46:59 y 21
19:46:59 t 20
19:47:00 k 37
19:47:00 o 24
19:47:00 w 17
19:47:00 n 49
19:47:00 i 23
19:47:00 k 37
19:47:00 a 30
19:47:01 , 51
19:47:01 space 57
19:47:01 p 25
19:47:02 r 19
19:47:02 z 44
19:47:02 e 18
19:47:02 d 32
19:47:02 e 18
19:47:02 s 31
19:47:03 z 44
19:47:03 w 17
19:47:03 y 21
19:47:03 s 31
19:47:03 t 20
19:47:03 k 37
19:47:03 i 23
19:47:04 m 50
19:47:04 space 57
19:47:04 p 25
19:47:05 o 24
19:47:05 p 25
19:47:05 r 19
19:47:05 z 44
19:47:05 e 18
19:47:05 z 44
19:47:06 space 57
19:47:06 r 19
19:47:06 e 18
19:47:06 j 36
19:47:06 e 18
19:47:06 s 31
19:47:07 t 20
19:47:07 r 19
19:47:07 o 24
19:47:07 w 17
19:47:07 a 30
19:47:07 n 49
19:47:07 i 23
19:47:08 e 18
19:47:08 space 57
19:47:08 n 49
19:47:08 a 30
19:47:09 c 46
19:47:09 i 23
19:47:09 alt gr 541
19:47:09 s 31
19:47:09 n 49
19:47:09 i 23
19:47:09 e 18
19:47:09 alt gr 541
19:47:09 c 46
19:47:10 space 57
19:47:10 k 37
19:47:11 l 38
19:47:11 a 30
19:47:11 w 17
19:47:11 i 23
19:47:11 a 30
19:47:12 t 20
19:47:12 u 22
19:47:12 r 19
19:47:12 y 21
19:47:13 space 57
19:47:13 n 49
19:47:13 a 30
19:47:13 space 57
19:47:15 backspace 14
19:47:15 backspace 14
19:47:16 backspace 14
19:47:16 s 31
19:47:16 z 44
19:47:16 y 21
19:47:17 space 57
19:47:17 n 49
19:47:17 a 30
19:47:17 space 57
19:47:17 k 37
19:47:17 l 38
19:47:17 a 30
19:47:17 w 17
19:47:18 i 23
19:47:18 a 30
19:47:18 t 20
19:47:18 u 22
19:47:18 r 19
19:47:18 z 44
19:47:18 e 18
19:47:19 . 52
19:47:19 space 57
19:47:19 shift 42
19:47:19 n 49
19:47:19 a 30
19:47:19 s 31
19:47:19 t 20
19:47:20 alt gr 541
19:47:20 e 18
19:47:20 p 25
19:47:20 n 49
19:47:20 i 23
19:47:20 e 18
19:47:20 space 57
19:47:21 p 25
19:47:21 r 19
19:47:21 z 44
19:47:21 e 18
19:47:21 k 37
19:47:21 a 30
19:47:21 z 44
19:47:21 u 22
19:47:22 j 36
19:47:22 e 18
19:47:22 space 57
19:47:23 u 22
19:47:23 z 44
19:47:23 y 21
19:47:23 s 31
19:47:23 k 37
19:47:23 a 30
19:47:23 n 49
19:47:23 e 18
19:47:24 space 57
19:47:24 n 49
19:47:24 d 32
19:47:25 backspace 14
19:47:25 backspace 14
19:47:25 d 32
19:47:25 a 30
19:47:25 n 49
19:47:25 e 18
19:47:25 space 57
19:47:26 o 24
19:47:26 s 31
19:47:26 o 24
19:47:26 b 48
19:47:26 o 24
19:47:26 m 50
19:47:27 space 57
19:47:27 t 20
19:47:27 r 19
19:47:28 z 44
19:47:28 e 18
19:47:28 c 46
19:47:28 i 23
19:47:28 m 50
19:47:28 . 52
19:47:29 space 57
19:47:29 shift 42
19:47:29 k 37
19:47:29 e 18
19:47:29 y 21
19:47:29 l 38
19:47:30 o 24
19:47:30 g 34
19:47:30 g 34
19:47:30 e 18
19:47:30 r 19
19:47:30 space 57
19:47:31 n 49
19:47:31 i 23
19:47:31 e 18
19:47:31 space 57
19:47:32 z 44
19:47:32 a 30
19:47:32 w 17
19:47:32 s 31
19:47:32 z 44
19:47:32 e 18
19:47:32 space 57
19:47:33 j 36
19:47:33 e 18
19:47:33 s 31
19:47:33 t 20
19:47:33 space 57
19:47:33 s 31
19:47:34 z 44
19:47:34 k 37
19:47:34 o 24
19:47:34 d 32
19:47:34 l 38
19:47:34 i 23
19:47:35 w 17
19:47:35 y 21
19:47:35 m 50
19:47:35 space 57
19:47:35 o 24
19:47:35 p 25
19:47:36 o 24
19:47:36 r 19
19:47:36 g 34
19:47:36 r 19
19:47:36 m 50
19:47:37 backspace 14
19:47:37 backspace 14
19:47:38 backspace 14
19:47:38 o 24
19:47:38 g 34
19:47:38 r 19
19:47:39 a 30
19:47:39 m 50
19:47:39 o 24
19:47:39 w 17
19:47:39 a 30
19:47:39 n 49
19:47:39 i 23
19:47:39 e 18
19:47:40 m 50
19:47:40 . 52
19:47:40 space 57
19:47:42 shift 42
19:47:42 c 46
19:47:42 z 44
19:47:43 a 30
19:47:43 s 31
19:47:43 a 30
19:47:43 m 50
19:47:43 i 23
19:47:43 space 57
19:47:44 u 22
19:47:44 alt gr 541
19:47:44 z 44
19:47:44 y 21
19:47:44 t 20
19:47:44 k 37
19:47:44 o 24
19:47:44 n 49
19:47:45 w 17
19:47:45 i 23
19:47:45 k 37
19:47:45 space 57
19:47:46 alt gr 541
19:47:46 s 31
19:47:46 w 17
19:47:46 i 23
19:47:46 a 30
19:47:46 d 32
19:47:46 o 24
19:47:46 m 50
19:47:47 i 23
19:47:47 e 18
19:47:47 space 57
19:47:47 i 23
19:47:47 n 49
19:47:47 s 31
19:47:48 t 20
19:47:48 a 30
19:47:48 l 38
19:47:48 u 22
19:47:48 j 36
19:47:48 e 18
19:47:48 space 57
19:47:49 t 20
19:47:49 a 30
19:47:49 k 37
19:47:49 i 23
19:47:49 space 57
19:47:49 p 25
19:47:49 r 19
19:47:50 o 24
19:47:50 g 34
19:47:50 r 19
19:47:50 a 30
19:47:50 m 50
19:47:50 space 57
19:47:50 n 49
19:47:50 a 30
19:47:51 space 57
19:47:51 k 37
19:47:51 o 24
19:47:51 m 50
19:47:51 p 25
19:47:51 u 22
19:47:52 t 20
19:47:52 e 18
19:47:52 r 19
19:47:52 z 44
19:47:52 e 18
19:47:52 space 57
19:47:53 backspace 14
19:47:53 - 12
19:47:54 backspace 14
19:47:54 space 57
19:47:54 - 12
19:47:54 space 57
19:47:54 n 49
19:47:54 p 25
19:47:55 . 52
19:47:55 : 39
19:47:55 shift 42
19:47:55 space 57
19:47:55 w 17
19:47:55 space 57
19:47:56 c 46
19:47:56 e 18
19:47:56 l 38
19:47:56 u 22
19:47:56 y 21
19:47:57 backspace 14
19:47:57 space 57
19:47:58 m 50
19:47:58 o 24
19:47:59 n 49
19:47:59 i 23
19:47:59 t 20
19:47:59 o 24
19:47:59 r 19
19:47:59 o 24
19:47:59 w 17
19:47:59 a 30
19:48:00 n 49
19:48:00 i 23
19:48:00 a 30
19:48:00 space 57
19:48:00 a 30
19:48:00 k 37
19:48:01 t 20
19:48:01 y 21
19:48:01 w 17
19:48:01 n 49
19:48:01 <09> 24
19:48:01 <09> 31
19:48:01 alt gr 541
19:48:01 c 46
19:48:01 i 23
19:48:02 space 57
19:48:02 p 25
19:48:03 r 19
19:48:03 a 30
19:48:03 c 46
19:48:03 o 24
19:48:03 w 17
19:48:03 n 49
19:48:03 i 23
19:48:04 k 37
19:48:04 alt gr 541
19:48:04 o 24
19:48:04 w 17
19:48:04 space 57
19:48:04 z 44
19:48:04 a 30
19:48:05 space 57
19:48:05 i 23
19:48:05 c 46
19:48:05 h 35
19:48:05 space 57
19:48:05 w 17
19:48:05 i 23
19:48:05 e 18
19:48:05 d 32
19:48:06 z 44
19:48:06 alt gr 541
19:48:06 a 30
19:48:06 space 57
19:48:07 p 25
19:48:07 r 19
19:48:07 z 44
19:48:08 e 18
19:48:08 z 44
19:48:08 space 57
19:48:08 p 25
19:48:09 r 19
19:48:09 a 30
19:48:09 c 46
19:48:09 o 24
19:48:09 d 32
19:48:09 w 17
19:48:09 a 30
19:48:10 c 46
19:48:10 <09> 18
19:48:10 alt gr 541
19:48:10 . 52

View File

@ -52,7 +52,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 45,
"id": "narrow-romantic",
"metadata": {},
"outputs": [],
@ -71,7 +71,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 46,
"id": "indonesian-electron",
"metadata": {},
"outputs": [],
@ -82,7 +82,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 47,
"id": "compact-trinidad",
"metadata": {},
"outputs": [
@ -92,7 +92,7 @@
"['Press the ENTER button']"
]
},
"execution_count": 3,
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
@ -119,7 +119,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 48,
"id": "exposed-daniel",
"metadata": {},
"outputs": [],
@ -139,7 +139,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 49,
"id": "serial-velvet",
"metadata": {},
"outputs": [
@ -149,7 +149,7 @@
"['Press the ENTER button', 'Press the ENTER key']"
]
},
"execution_count": 5,
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
@ -176,17 +176,17 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 52,
"id": "every-gibson",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[]"
"['Press the ENTER button', 'Press the ENTER key']"
]
},
"execution_count": 6,
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
@ -213,13 +213,13 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 51,
"id": "protected-rings",
"metadata": {},
"outputs": [],
"source": [
"def tm_lookup(sentence):\n",
" return ''"
" return [entry[1] for entry in translation_memory if entry[0].lower() == sentence.lower()]"
]
},
{
@ -232,17 +232,17 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 55,
"id": "severe-alloy",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
"['Press the ENTER button', 'Press the ENTER key']"
]
},
"execution_count": 18,
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
@ -261,13 +261,21 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 86,
"id": "structural-diesel",
"metadata": {},
"outputs": [],
"source": [
"import string\n",
"\n",
"def sentence_similar(sentence):\n",
" translator = str.maketrans('', '', string.punctuation)\n",
" return sentence.translate(translator)\n",
"\n",
"def tm_lookup(sentence):\n",
" return ''"
" return [entry[1] for entry in translation_memory if entry[0].lower() == sentence_similar(sentence).lower()]\n",
"\n",
"#print(string.punctuation)"
]
},
{
@ -280,17 +288,17 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 67,
"id": "brief-senegal",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"''"
"['System restart required']"
]
},
"execution_count": 12,
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
@ -317,13 +325,30 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 66,
"id": "mathematical-customs",
"metadata": {},
"outputs": [],
"source": [
"def tm_lookup(sentence):\n",
" return ''"
" inWords = sentence_similar(sentence).lower().split(\" \")\n",
" lenSentence = len(inWords)\n",
" matchWords = 0\n",
" answer = []\n",
" for entry in translation_memory:\n",
" dicWords = entry[0].lower().split(\" \")\n",
" \n",
" for i in range(lenSentence-1):\n",
" if inWords[i] == dicWords[i]:\n",
" matchWords += 1\n",
" \n",
" if matchWords >= lenSentence-1:\n",
" answer.append(entry[1])\n",
" matchWords = 0\n",
" else:\n",
" matchWords = 0\n",
"\n",
" return answer"
]
},
{
@ -344,7 +369,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 68,
"id": "humanitarian-wrong",
"metadata": {},
"outputs": [],
@ -362,19 +387,29 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 84,
"id": "located-perception",
"metadata": {},
"outputs": [],
"source": [
"def glossary_lookup(sentence):\n",
" sentence_words = sentence.split()\n",
" return [entry for entry in glossary if entry[0] in sentence_words]"
" return [entry for entry in glossary if entry[0] in sentence_words]\n",
"\n",
"def exercise4help(sentence):\n",
" sentence_words = sentence.split()\n",
" answer = []\n",
" for entry in glossary: #przechodzimy przez każdą tuple więc (n)\n",
" if entry[0] in sentence_words: # (m) porównań\n",
" answer.append(entry)\n",
" return answer\n",
"\n",
"#dla każdego hasła w słowniku, robimy tyle porównań ile jest słów w zdaniu O(n*m)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 76,
"id": "advised-casting",
"metadata": {},
"outputs": [
@ -384,13 +419,41 @@
"[('przycisk', 'button'), ('drukarka', 'printer')]"
]
},
"execution_count": 17,
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"glossary_lookup('Każda drukarka posiada przycisk wznowienia drukowania')"
"glossary_lookup('Każda drukarka posiada przycisk wznowienia drukowania')\n"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "70ae3dd8-d4ca-4a59-b8a9-ca47583bf54a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n"
]
},
{
"data": {
"text/plain": [
"[('przycisk', 'button'), ('drukarka', 'printer')]"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exercise4help('Każda drukarka posiada przycisk wznowienia drukowania')"
]
},
{
@ -406,7 +469,7 @@
"id": "defensive-fifteen",
"metadata": {},
"source": [
"Odpowiedź:"
"Odpowiedź: O(m*n)"
]
},
{
@ -419,13 +482,27 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 82,
"id": "original-tunisia",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[('przycisk', 'button'), ('drukarka', 'printer')]"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def glossary_lookup(sentence):\n",
" return ''"
" sentence_words = sentence.lower().split()\n",
" return [entry for entry in glossary if entry[0] in sentence_words]\n",
"\n",
"glossary_lookup('Każda DRUKARKA posiada PRZYCISK wznowienia drukowania')"
]
},
{
@ -438,13 +515,41 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 108,
"id": "adolescent-semiconductor",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[('drukarka', 'printer'), ('drukarka', 'printer'), ('przycisk', 'button')]"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"glossary = {\n",
" 'komputer': 'computer',\n",
" 'przycisk': 'button', \n",
" 'drukarka': 'printer'\n",
"}\n",
"\n",
"#glossary.get('komputer') == None\n",
"\n",
"def glossary_lookup(sentence):\n",
" return ''"
" sentence_words = set(sentence.split()) #umieszczamy w zbiorze aby uniknąć przetwarzania mniejszej ilości słów.\n",
" answer = []\n",
" for word in sentence_words: # dla każdego słowa w zdaniu (m)\n",
" translated_word = glossary.get(word) #pobieramy zawartosć ze słownika \n",
" if translated_word != None: # (porównanie m razy)\n",
" answer.append((word,translated_word)) # dodanie do odpowiedzi m razy\n",
" \n",
" return answer\n",
"\n",
"glossary_lookup('drukarka - Każda drukarka posiada przycisk wznowienia drukowania')"
]
}
],
@ -452,7 +557,7 @@
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -467,7 +572,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.9.2"
},
"subtitle": "1. Podstawowe techniki wspomagania tłumaczenia",
"title": "Komputerowe wspomaganie tłumaczenia",

View File

@ -1,20 +1,5 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "continued-dinner",
"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> Komputerowe wspomaganie tłumaczenia </h1>\n",
"<h2> 2. <i>Zaawansowane użycie pamięci tłumaczeń</i> [laboratoria]</h2> \n",
"<h3>Rafał Jaworski (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"id": "aggregate-listing",
@ -83,10 +68,99 @@
"execution_count": 2,
"id": "continental-submission",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"['Wciśnij przycisk Enter']"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def tm_lookup(sentence):\n",
" return [entry[1] for entry in translation_memory if entry[0].lower() == sentence.lower()]\n",
"\n",
"def ice_lookup(sentence, prev_sentence, next_sentence):\n",
" return []"
" if (not prev_sentence) or (not next_sentence):\n",
" return 'no context'\n",
" \n",
" if not sentence:\n",
" return 'enter your sentence'\n",
" \n",
" #Dobrze prawie ale tutaj zwracane są listy. wszystko okey, gdy zdanie poprzedzające i następne mają tamą ilość słów. JEST zdecydowanie błędny gdy zdania mają różną ilość słów!\n",
" if tm_lookup(prev_sentence) and tm_lookup(next_sentence):\n",
" return [entry[0] for entry in translation_memory if entry[0].lower() == sentence.lower()]\n",
" else:\n",
" return \"\"\n",
" \n",
"ice_lookup('Wciśnij przycisk Enter','Sprawdź ustawienia sieciowe','Drukarka jest wyłączona')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ecb19925-7467-4e8a-bfdf-9adee52a5894",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'no context'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ice_lookup('Wciśnij przycisk Enter','Sprawdź ustawienia sieciowe','')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "cf60a398-ae06-4ca8-b658-e011632cdb33",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'enter your sentence'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ice_lookup('','Sprawdź ustawienia sieciowe','Drukarka jest wyłączona')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d34415a4-d853-435e-b093-fabc4629ff26",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'no context'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ice_lookup('Wciśnij przycisk Enter','','Drukarka jest wyłączona')"
]
},
{
@ -119,7 +193,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 6,
"id": "fourth-pillow",
"metadata": {},
"outputs": [],
@ -141,7 +215,13 @@
"id": "graduate-theorem",
"metadata": {},
"source": [
"Odpowiedź:"
"### Odpowiedź:\n",
"- 1. **spełnia warunek**: dzięki zastosowaniu funkcji `abs()`\n",
"- 3. **spełnia warunek**: przemienność w tym przypadku również zawdzięczamy funkcj `abs()`\n",
"- 4. **spełnia warunek**:(z uproszczeniem że x i y i z to len(z danej zmiennej) -> |y-x| + |z-y| >= |z-x| =\n",
"- = |y - y - x + z| >= |z-x| = |z-x| >= |z-x|\n",
"\n",
"2 nie jest spełnione, ponieważ x i y muszą być tymi samymi zdaniami aby odległość była równa 0. A wyżej wymieniona funckja spełnia ten warunek dla wszytskich zdań które mają taką samą ilość znaków."
]
},
{
@ -154,7 +234,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 7,
"id": "continued-christopher",
"metadata": {},
"outputs": [],
@ -179,7 +259,11 @@
"id": "metallic-leave",
"metadata": {},
"source": [
"Odpowiedź:"
"### Odpowiedź:\n",
"- 1. **spełnia warunek**, ponieważ zwróci wartość 0 lub 3 które są >= 0\n",
"- 2. **spełnia waurenk**, ponieważ gdy zdanie x jest takie samo jak y = to odległość jest zwracana jako 0\n",
"- 3. **spełnia warunek**, ponieważ sprawdzenia wygląda w taki sposób, że porównujemy czy x == y (co jest tożsame z y == x) w przeciwnym wypadku zawsze zwracamy tą samą wartość\n",
"- 4. **spełnia warunek**, ponieważ gdy xyz są takie same to mamy 0>=0 | gdy wszystkie są różne to mamy 6>=3 | gdy jedna para się różni 6>=0 lub 3>=0"
]
},
{
@ -206,7 +290,12 @@
"id": "bibliographic-stopping",
"metadata": {},
"source": [
"Odpowiedź:"
"### Odpowiedź: Jest funckją dystansu\n",
"- 1. **spełnia warunek** Liczba wymaganych operacji edycyjnych nie może być mniejsza niż zero. W przypadku gdy zdania są sobie równe d(x,y) = 0\n",
"- 2. **spełnia warunek** Gdy zdania są sobie równe d(x,y) = 0\n",
"- 3. **spełnia warunek** nie ważne czy zrobimy d(x,y) czy d(y,x) nadal liczba operacji edycyjnych będzie taka sama pa->papa (+2) | papa -> pa (-2)\n",
"- 4. **spełnia warunek**: (z uproszczeniem że x i y i z to liczba wymaganych zmian -> |y?x| + |z?y| >= |z?x| =\n",
"- = x + y >= x"
]
},
{
@ -223,21 +312,29 @@
},
{
"cell_type": "code",
"execution_count": 5,
"id": "secondary-wrist",
"execution_count": 8,
"id": "727b188d-eedd-4d19-9cbf-efcce71e145c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
"ename": "SyntaxError",
"evalue": "invalid syntax (2143622881.py, line 1)",
"output_type": "error",
"traceback": [
"\u001b[0;36m Cell \u001b[0;32mIn [8], line 1\u001b[0;36m\u001b[0m\n\u001b[0;31m pip3 install python-Levenshtein\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pip3 install python-Levenshtein"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "secondary-wrist",
"metadata": {},
"outputs": [],
"source": [
"from Levenshtein import distance as levenshtein_distance\n",
"\n",
@ -254,7 +351,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": null,
"id": "associate-tuner",
"metadata": {},
"outputs": [],
@ -273,63 +370,30 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": null,
"id": "focal-pathology",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.9166666666666666"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"levenshtein_similarity('Program jest uruchomiony', 'Program jest uruchamiany')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": null,
"id": "roman-ceiling",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.9428571428571428"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"levenshtein_similarity('Spróbuj wyłączyć i włączyć komputer', 'Spróbuj włączyć i wyłączyć komputer')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": null,
"id": "invisible-cambodia",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.631578947368421"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"levenshtein_similarity('Spróbuj wyłączyć i włączyć komputer', 'Nie próbuj wyłączać i włączać drukarki')"
]
@ -344,21 +408,58 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": null,
"id": "genetic-cradle",
"metadata": {},
"outputs": [],
"source": [
"def fuzzy_lookup(sentence, threshold):\n",
" return []"
" \n",
" answer = []\n",
" \n",
" for entry in translation_memory:\n",
" if levenshtein_similarity(sentence.lower(),entry[0].lower()) >= threshold:\n",
" answer.append(entry[1])\n",
" \n",
" return answer"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cc0544a4-a515-4515-a116-f13b96e92812",
"metadata": {},
"outputs": [],
"source": [
"#'Wciśnij przycisk Enter'\n",
"fuzzy_lookup('KlikNiJ przycisK EnTeR', 0.86)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e2b8ff91-a103-45a4-a746-8ce3e9470c4c",
"metadata": {},
"outputs": [],
"source": [
"#'Sprawdź ustawienia sieciowe'\n",
"fuzzy_lookup('Sprawdź ustawienia sieci', 0.885)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "df759469-b92e-490c-a672-96bd4c0d76b2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -373,7 +474,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.9.2"
},
"subtitle": "2. Zaawansowane użycie pamięci tłumaczeń",
"title": "Komputerowe wspomaganie tłumaczenia",

View File

@ -20,6 +20,13 @@
"id": "aggregate-listing",
"metadata": {},
"source": [
"```python\n",
"import collections\n",
"lista1 = [3,4,5,4,4,7,8,7]\n",
"lista2 = [3,4,5,4,4,7,8,7]\n",
"print((collections.Counter(lista) + collections.Counter(lista2)).most_common(5))\n",
"```\n",
"\n",
"Na dzisiejszych zajęciach zajmiemy się bliżej słownikami używanymi do wspomagania tłumaczenia. Oczywiście na rynku dostępnych jest bardzo wiele słowników w formacie elektronicznym. Wiele z nich jest gotowych do użycia w SDL Trados, memoQ i innych narzędziach CAT. Zawierają one setki tysięcy lub miliony haseł i oferują natychmiastową pomoc tłumaczowi."
]
},
@ -63,7 +70,12 @@
"id": "diverse-sunglasses",
"metadata": {},
"source": [
"Odpowiedź:"
"### Odpowiedź:\n",
"- **DeepL:** metal cabinet slides / metal cabinet guides\n",
"- **Model GPT-3.5:** metal cabinet slides / metal wardrobe rails.\n",
"- **Model GPT-4:** guides for metal cabinets / metal cabinet guides\n",
"- **Google-translate**: metal cabinet guides\n",
"- **www.tlumaczangielskopolski.pl:** metal cabinet guides\n"
]
},
{
@ -86,7 +98,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 70,
"id": "loving-prince",
"metadata": {},
"outputs": [],
@ -110,12 +122,12 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 71,
"id": "bound-auction",
"metadata": {},
"outputs": [],
"source": [
"dictionary = ['program', 'application', 'applet' 'compile']"
"dictionary = ['program', 'application', 'applet', 'compile']"
]
},
{
@ -128,13 +140,46 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 76,
"id": "cognitive-cedar",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'applet': [(302, 308)],\n",
" 'application': [(80, 91), (153, 84), (300, 158)],\n",
" 'compile': [(56, 63), (497, 448)],\n",
" 'program': [(14, 21), (284, 277), (454, 177), (495, 48), (505, 17)]}\n"
]
}
],
"source": [
"import re\n",
"from pprint import pprint\n",
"\n",
"def terminology_lookup():\n",
" return []"
" answer = {pattern:[] for pattern in dictionary}\n",
" low_text = text.lower()\n",
" for pattern in dictionary:\n",
" offset = 0\n",
" start = 0\n",
" end = 0\n",
" while True:\n",
" match = (re.search(pattern,low_text[offset:]))\n",
" if not match:\n",
" break\n",
" else:\n",
" start += match.start()\n",
" end = +match.end()\n",
" offset += end\n",
"\n",
" answer[pattern].append((start,end))\n",
" pprint(answer)\n",
" #return answer\n",
"\n",
"terminology_lookup()"
]
},
{
@ -161,7 +206,113 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 1,
"id": "02e1c16f-be37-4a64-a514-8875b393ccb7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defaulting to user installation because normal site-packages is not writeable\n",
"Requirement already satisfied: spacy in /usr/local/lib/python3.9/dist-packages (3.4.1)\n",
"Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.9 in /usr/local/lib/python3.9/dist-packages (from spacy) (3.0.10)\n",
"Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (1.0.3)\n",
"Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (1.0.8)\n",
"Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.9/dist-packages (from spacy) (2.0.6)\n",
"Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.9/dist-packages (from spacy) (3.0.7)\n",
"Requirement already satisfied: thinc<8.2.0,>=8.1.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (8.1.1)\n",
"Requirement already satisfied: wasabi<1.1.0,>=0.9.1 in /usr/local/lib/python3.9/dist-packages (from spacy) (0.10.1)\n",
"Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.9/dist-packages (from spacy) (2.4.4)\n",
"Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.9/dist-packages (from spacy) (2.0.8)\n",
"Requirement already satisfied: typer<0.5.0,>=0.3.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (0.4.2)\n",
"Requirement already satisfied: pathy>=0.3.5 in /usr/local/lib/python3.9/dist-packages (from spacy) (0.6.2)\n",
"Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (4.64.1)\n",
"Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (1.21.6)\n",
"Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (2.28.1)\n",
"Requirement already satisfied: pydantic!=1.8,!=1.8.1,<1.10.0,>=1.7.4 in /usr/local/lib/python3.9/dist-packages (from spacy) (1.9.2)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/dist-packages (from spacy) (3.1.2)\n",
"Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from spacy) (52.0.0)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (21.3)\n",
"Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.9/dist-packages (from spacy) (3.3.0)\n",
"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/lib/python3/dist-packages (from packaging>=20.0->spacy) (2.4.7)\n",
"Requirement already satisfied: smart-open<6.0.0,>=5.2.1 in /usr/local/lib/python3.9/dist-packages (from pathy>=0.3.5->spacy) (5.2.1)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.9/dist-packages (from pydantic!=1.8,!=1.8.1,<1.10.0,>=1.7.4->spacy) (4.3.0)\n",
"Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (2.1.1)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (1.26.12)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (2022.9.14)\n",
"Requirement already satisfied: blis<0.10.0,>=0.7.8 in /usr/local/lib/python3.9/dist-packages (from thinc<8.2.0,>=8.1.0->spacy) (0.9.1)\n",
"Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.9/dist-packages (from thinc<8.2.0,>=8.1.0->spacy) (0.0.1)\n",
"Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.9/dist-packages (from typer<0.5.0,>=0.3.0->spacy) (8.1.3)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2->spacy) (2.1.1)\n"
]
}
],
"source": [
"pip3 install spacy"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f6d7e9f5-4d6f-49c5-8dea-9957bc6da318",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defaulting to user installation because normal site-packages is not writeable\n",
"\u001b[33mDEPRECATION: https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.4.1/en_core_web_sm-3.4.1-py3-none-any.whl#egg=en_core_web_sm==3.4.1 contains an egg fragment with a non-PEP 508 name pip 25.0 will enforce this behaviour change. A possible replacement is to use the req @ url syntax, and remove the egg fragment. Discussion can be found at https://github.com/pypa/pip/issues/11617\u001b[0m\u001b[33m\n",
"\u001b[0mCollecting en-core-web-sm==3.4.1\n",
" Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.4.1/en_core_web_sm-3.4.1-py3-none-any.whl (12.8 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.8/12.8 MB\u001b[0m \u001b[31m45.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m0:01\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: spacy<3.5.0,>=3.4.0 in /usr/local/lib/python3.9/dist-packages (from en-core-web-sm==3.4.1) (3.4.1)\n",
"Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.9 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (3.0.10)\n",
"Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (1.0.3)\n",
"Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (1.0.8)\n",
"Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.0.6)\n",
"Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (3.0.7)\n",
"Requirement already satisfied: thinc<8.2.0,>=8.1.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (8.1.1)\n",
"Requirement already satisfied: wasabi<1.1.0,>=0.9.1 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (0.10.1)\n",
"Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.4.4)\n",
"Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.0.8)\n",
"Requirement already satisfied: typer<0.5.0,>=0.3.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (0.4.2)\n",
"Requirement already satisfied: pathy>=0.3.5 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (0.6.2)\n",
"Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (4.64.1)\n",
"Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (1.21.6)\n",
"Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.28.1)\n",
"Requirement already satisfied: pydantic!=1.8,!=1.8.1,<1.10.0,>=1.7.4 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (1.9.2)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (3.1.2)\n",
"Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (52.0.0)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (21.3)\n",
"Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.9/dist-packages (from spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (3.3.0)\n",
"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/lib/python3/dist-packages (from packaging>=20.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.4.7)\n",
"Requirement already satisfied: smart-open<6.0.0,>=5.2.1 in /usr/local/lib/python3.9/dist-packages (from pathy>=0.3.5->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (5.2.1)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.9/dist-packages (from pydantic!=1.8,!=1.8.1,<1.10.0,>=1.7.4->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (4.3.0)\n",
"Requirement already satisfied: charset-normalizer<3,>=2 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.1.1)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (3.4)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (1.26.12)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests<3.0.0,>=2.13.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2022.9.14)\n",
"Requirement already satisfied: blis<0.10.0,>=0.7.8 in /usr/local/lib/python3.9/dist-packages (from thinc<8.2.0,>=8.1.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (0.9.1)\n",
"Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.9/dist-packages (from thinc<8.2.0,>=8.1.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (0.0.1)\n",
"Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.9/dist-packages (from typer<0.5.0,>=0.3.0->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (8.1.3)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2->spacy<3.5.0,>=3.4.0->en-core-web-sm==3.4.1) (2.1.1)\n",
"Installing collected packages: en-core-web-sm\n",
"Successfully installed en-core-web-sm-3.4.1\n",
"\u001b[38;5;2m✔ Download and installation successful\u001b[0m\n",
"You can now load the package via spacy.load('en_core_web_sm')\n"
]
}
],
"source": [
"python3 -m spacy download en_core_web_sm"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "tribal-attention",
"metadata": {},
"outputs": [
@ -232,7 +383,7 @@
"be\n",
"the\n",
"step\n",
"-PRON-\n",
"you\n",
"need\n",
"to\n",
"follow\n",
@ -248,7 +399,7 @@
"platform\n",
",\n",
"if\n",
"-PRON-\n",
"you\n",
"have\n",
"not\n",
"already\n",
@ -260,7 +411,7 @@
"program\n",
"that\n",
"use\n",
"Swing\n",
"swing\n",
"component\n",
".\n",
"compile\n",
@ -302,13 +453,37 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 20,
"id": "surgical-demonstration",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{'program': [(14, 24), (291, 298), (468, 475), (516, 523), (533, 540)],\n",
" 'application': [(80, 91), (164, 175), (322, 333)],\n",
" 'applet': [(302, 308)],\n",
" 'compile': [(56, 63), (134, 141), (504, 511)]}"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import re\n",
"\n",
"def terminology_lookup():\n",
" return []"
" answer = {pattern:[] for pattern in dictionary}\n",
"\n",
" for pattern in dictionary:\n",
" for token in doc:\n",
" if pattern in token.lemma_:\n",
" answer[pattern].append((token.idx,token.idx+len(token.lemma_)))\n",
" return answer\n",
"\n",
"terminology_lookup()"
]
},
{
@ -337,13 +512,52 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 73,
"id": "superb-butterfly",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"['programmers',\n",
" 'section',\n",
" 'Swing',\n",
" 'application',\n",
" 'command',\n",
" 'line',\n",
" 'information',\n",
" 'Swing',\n",
" 'application',\n",
" 'compilation',\n",
" 'instructions',\n",
" 'Swing',\n",
" 'programs',\n",
" 'applets',\n",
" 'applications',\n",
" 'steps',\n",
" 'release',\n",
" 'platform',\n",
" 'program',\n",
" 'Swing',\n",
" 'components',\n",
" 'program',\n",
" 'program']"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import spacy\n",
"def get_nouns(text):\n",
" return []"
" nlp = spacy.load(\"en_core_web_sm\")\n",
" doc = nlp(text)\n",
" nouns = [token.text for token in doc if token.pos_ == \"NOUN\"]\n",
" return nouns\n",
"\n",
"get_nouns(text)"
]
},
{
@ -374,13 +588,51 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 74,
"id": "eight-redhead",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{'programmer': 1,\n",
" 'section': 1,\n",
" 'swing': 4,\n",
" 'application': 3,\n",
" 'command': 1,\n",
" 'line': 1,\n",
" 'information': 1,\n",
" 'compilation': 1,\n",
" 'instruction': 1,\n",
" 'program': 4,\n",
" 'applet': 1,\n",
" 'step': 1,\n",
" 'release': 1,\n",
" 'platform': 1,\n",
" 'component': 1}"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from collections import Counter\n",
"import spacy\n",
"\n",
"def extract_terms(text):\n",
" return []"
" nlp = spacy.load(\"en_core_web_sm\")\n",
" doc = nlp(text)\n",
" tally = {}\n",
" nouns = [token.lemma_ for token in doc if token.pos_ == \"NOUN\"]\n",
" nouns_counts = Counter(nouns)\n",
" \n",
" for word, count in nouns_counts.items():\n",
" tally.update({word: count})\n",
" return tally\n",
"\n",
"extract_terms(text)"
]
},
{
@ -393,13 +645,82 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 75,
"id": "monetary-mambo",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'adjectives': {'late': 1},\n",
" 'nouns': {'applet': 1,\n",
" 'application': 3,\n",
" 'command': 1,\n",
" 'compilation': 1,\n",
" 'component': 1,\n",
" 'information': 1,\n",
" 'instruction': 1,\n",
" 'line': 1,\n",
" 'platform': 1,\n",
" 'program': 4,\n",
" 'programmer': 1,\n",
" 'release': 1,\n",
" 'section': 1,\n",
" 'step': 1,\n",
" 'swing': 4},\n",
" 'verbs': {'compile': 3,\n",
" 'create': 1,\n",
" 'do': 1,\n",
" 'explain': 1,\n",
" 'follow': 1,\n",
" 'install': 1,\n",
" 'need': 1,\n",
" 'run': 3,\n",
" 'see': 1,\n",
" 'use': 2,\n",
" 'work': 1}}\n"
]
}
],
"source": [
"from pprint import pprint\n",
"from collections import Counter\n",
"import spacy\n",
"\n",
"def extract_terms(text):\n",
" return []"
" \n",
" nlp = spacy.load(\"en_core_web_sm\")\n",
" doc = nlp(text)\n",
" \n",
" nouns, verbs, adjectives = [], [], []\n",
" tally = {\"nouns\": {}, \"verbs\": {}, \"adjectives\": {}}\n",
" \n",
" for token in doc:\n",
" if token.pos_ == \"NOUN\":\n",
" nouns.append(token.lemma_)\n",
" elif token.pos_ == \"VERB\":\n",
" verbs.append(token.lemma_)\n",
" elif token.pos_ == \"ADJ\":\n",
" adjectives.append(token.lemma_)\n",
" \n",
" nouns_counts = Counter(nouns)\n",
" verbs_counts = Counter(verbs)\n",
" adjectives_counts = Counter(adjectives)\n",
"\n",
" for word, count in nouns_counts.items():\n",
" tally[\"nouns\"].update({word: count})\n",
" \n",
" for word, count in verbs_counts.items():\n",
" tally[\"verbs\"].update({word: count})\n",
" \n",
" for word, count in adjectives_counts.items():\n",
" tally[\"adjectives\"].update({word: count})\n",
"\n",
" pprint(tally)\n",
" #return tally\n",
"\n",
"extract_terms(text)"
]
}
],
@ -407,7 +728,7 @@
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -422,7 +743,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.9.2"
},
"subtitle": "3. Terminologia",
"title": "Komputerowe wspomaganie tłumaczenia",

File diff suppressed because one or more lines are too long

View File

@ -15,6 +15,38 @@
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "51e04a27-7c37-4a2b-a6d8-31abc09ae0ca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"form1\n",
"form2\n",
"form3\n",
"form2\n",
"form2\n",
"form1\n"
]
}
],
"source": [
"import re\n",
"# nawiasy w rexexp = tworzy z tego grupę. w tym przypadku ma 4 grupy \n",
"# grupa o indexie 0 to grupa całość\n",
"# grupa o indeksie 1 to to co sformatowało się dopasowało wymachowało z pierwszą grupą\n",
"\n",
"string = \"aaaform1aaaahform2uadaiudform3oihdhdform2oahdoihwfform2oiadoafform11\"\n",
"pattern = re.compile(r'(form1)|(form2)|(form3)')\n",
"x = pattern.finditer(string)\n",
"for xx in x:\n",
" print(xx.group())"
]
},
{
"cell_type": "markdown",
"id": "colored-nothing",
@ -55,13 +87,47 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 19,
"id": "documented-hacker",
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"def find_tags(text):\n",
" return []"
" pos = []\n",
" regexp = r'(<([_a-zA-Z]]*[^<]*)>)|(</([_a-zA-Z][^<?!]*)>)'\n",
" pattern = re.compile(regexp)\n",
" tags = pattern.finditer(text)\n",
" for tag in tags:\n",
" pos.append(tag.span())\n",
" return pos"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "52a23469-3283-48df-ba49-4d23ba0d6088",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(71, 83), (83, 91), (96, 105), (105, 115), (127, 138), (138, 151)]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"string = \"<2024.21.04| Documentation on how to connect to the database with XML: <Connection><server>Games</server><database>Call of Duty</database></Connection>\"\n",
"#<Connection>\n",
"# <server>Games</server>\n",
"# <database>Call of Duty</database>\n",
"#</Connection>\n",
"\n",
"find_tags(string)"
]
},
{
@ -74,13 +140,169 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 362,
"id": "unauthorized-study",
"metadata": {},
"outputs": [],
"source": [
"def is_translatable(text):\n",
" return True"
" # v 4.2.1 / version: 4.2.1\n",
" # a) B) / aa) BB) / a. BB. / aa. BB. / 1. 2. / 2) 3)\n",
" # przykłady kodu python\n",
" # nr_indeksu (6 cyfr | z/lub bez poprzedzającego znaku 's')\n",
" \n",
" version = r'(^v [0-9].[0-9].?[0-9]?[0-9]?$)|(^ver(:*|.*) [0-9].[0-9].?[0-9]?[0-9]?$)'\n",
" ol = r'(^[a-zA-z][a-zA-z]?(\\)|.)$)|(^[0-9][0-9]?(\\)|.)$)'\n",
" index = r'(^s?\\d{6}$)'\n",
" pyt = r\"\"\"^```python\n",
".*?\n",
"```$\"\"\"\n",
" \n",
" regexp = fr'{version}|{ol}|{index}'\n",
" \n",
" if re.fullmatch(regexp,text):\n",
" return False\n",
" elif re.fullmatch(pyt,text,re.DOTALL):\n",
" return False\n",
" else:\n",
" return True\n"
]
},
{
"cell_type": "code",
"execution_count": 189,
"id": "30abd5b8-f6e3-4a59-8f53-5ff3b4899e7b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 189,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_translatable(\"Wiedza z tego przedmiotu może się dobrze przydać przy tworzeniu systemu dialogowego\")"
]
},
{
"cell_type": "code",
"execution_count": 190,
"id": "e3a39c8a-976b-4d66-834e-6d69c3833fe5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 190,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_translatable(\"Kliknij enter aby rozpocząć\")"
]
},
{
"cell_type": "code",
"execution_count": 185,
"id": "c879c8dd-9a1d-490b-a44f-4a06134f8521",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ver: 4.3.34 False\n",
"v 4.3.34 False\n"
]
}
],
"source": [
"x = is_translatable(\"ver: 4.3.34\")\n",
"y = is_translatable(\"v 4.3.34\")\n",
"\n",
"print(f\"ver: 4.3.34 {x}\\nv 4.3.34 {y}\")"
]
},
{
"cell_type": "code",
"execution_count": 184,
"id": "dcb91bed-63c3-4044-bb19-a2abe6a36c88",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"s444820 False\n",
"444820 False\n"
]
}
],
"source": [
"x = is_translatable(\"s444820\")\n",
"y = is_translatable(\"444820\")\n",
"print(f\"s444820 {x}\\n444820 {y}\")\n"
]
},
{
"cell_type": "code",
"execution_count": 187,
"id": "59575516-df17-4e35-9b42-9ee69f9d8b0e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a) False\n",
"II. False\n",
"1. False\n",
"2. False\n"
]
}
],
"source": [
"a = is_translatable(\"a)\")\n",
"b = is_translatable(\"II.\")\n",
"c = is_translatable(\"1.\")\n",
"d = is_translatable(r\"2.\")\n",
"print(f\"a) {a}\\nII. {b}\\n1. {c}\\n2. {d}\")"
]
},
{
"cell_type": "code",
"execution_count": 188,
"id": "40d913e6-48aa-4ece-81b4-bbe74efb5533",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex = r\"\"\"```python\n",
"def func():\n",
" print(HelloEarth)\n",
"func()\n",
"```\"\"\"\n",
"\n",
"is_translatable(ex)"
]
},
{
@ -93,13 +315,66 @@
},
{
"cell_type": "code",
"execution_count": 3,
"id": "beautiful-mathematics",
"execution_count": 435,
"id": "bbb6d96e-231d-48fb-a6a5-f05cb8c84b87",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[[(0, 10), '21', '04', '2024'],\n",
" [(23, 33), '20', '22', '2021'],\n",
" [(54, 64), '01', '01', '1999']]"
]
},
"execution_count": 435,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import re\n",
"\n",
"def find_dates(text):\n",
" return []"
" formats = [\n",
" r'(\\d{4}-\\d{2}-\\d{2})', # YYYY-MM-DD\n",
" r'(\\d{2}-\\d{2}-\\d{4})', # DD-MM-YYYY\n",
" \n",
" r'(\\d{4}/\\d{2}/\\d{2})', # YYYY/MM/DD\n",
" r'(\\d{2}/\\d{2}/\\d{4})', # DD/MM/YYYY\n",
" \n",
" r'(\\d{4}\\.\\d{2}\\.\\d{2})' # YYYY.MM.DD\n",
" r'(\\d{2}\\.\\d{2}\\.\\d{4})', # DD.MM.YYYY\n",
" ]\n",
"\n",
" regexp = ''\n",
" for form in formats:\n",
" if regexp:\n",
" regexp += \"|\"+form\n",
" else:\n",
" regexp += form\n",
"\n",
" answer = [] \n",
" pattern = re.compile(regexp)\n",
" dates = pattern.finditer(text) \n",
" \n",
" for date in dates:\n",
" parts = re.split(r'[-./]', date.group())\n",
" \n",
" if len(parts[0]) == 4:\n",
" y = parts[0]\n",
" d = parts[2]\n",
" else:\n",
" d = parts[0]\n",
" y = parts[2]\n",
" m = parts[1]\n",
" \n",
" answer.append([date.span(),d, m, y])\n",
"\n",
" return answer\n",
"\n",
"\n",
"find_dates(\"2024-04-21 awdad qwrwe 20/22/2021 negweg qwqwd %reset 1999/01/01\")"
]
},
{
@ -125,13 +400,174 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 369,
"id": "da509df1-75e4-4ae8-9b0d-5055d551b9dd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defaulting to user installation because normal site-packages is not writeable\n",
"Collecting isoweek\n",
" Downloading isoweek-1.3.3-py2.py3-none-any.whl.metadata (4.4 kB)\n",
"Downloading isoweek-1.3.3-py2.py3-none-any.whl (7.1 kB)\n",
"Installing collected packages: isoweek\n",
"Successfully installed isoweek-1.3.3\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install isoweek"
]
},
{
"cell_type": "code",
"execution_count": 426,
"id": "finished-essex",
"metadata": {},
"outputs": [],
"source": [
"from isoweek import Week\n",
"from datetime import datetime\n",
"\n",
"def isoWeekNumber(date_string):\n",
" date_object = datetime.strptime(date_string, \"%Y-%m-%d\")\n",
" \n",
" return str(date_object.isocalendar()[1])\n",
"\n",
"def change_substring(text, new, start, end):\n",
" return text[:start] + new + text[end:]\n",
"\n",
"def EuropeDate(target_segmnet,dates): #YYYY-MM-DD\n",
" for date in dates:\n",
" target_segmnet = change_substring(target_segmnet,date[3]+\"-\"+date[2]+\"-\"+date[1],date[0][0],date[0][1])\n",
" return target_segmnet \n",
"\n",
"def USDate(target_segmnet,dates): #MM-DD-YYYY\n",
" for date in dates:\n",
" target_segmnet = change_substring(target_segmnet,date[2]+\"-\"+date[1]+\"-\"+date[3],date[0][0],date[0][1])\n",
" return target_segmnet\n",
"\n",
"def tyreDOTDate(target_segmnet,dates): #WWYY (weekYear) \n",
" index = 0\n",
" for date in dates:\n",
" d = date[3]+\"-\"+date[2]+\"-\"+date[1]\n",
" target_segmnet = change_substring(target_segmnet,isoWeekNumber(d)+date[3][2:],date[0][0]-index*6,date[0][1]-index*6)\n",
" index += 1\n",
" return target_segmnet\n",
"\n",
"\n",
"def correct_dates(source_segment, target_segment, date_format):\n",
" return ''"
" ss = find_dates(source_segment)\n",
" ts = find_dates(target_segment)\n",
" if len(ss) != len(ts):\n",
" return 'Błąd! Niezgodna liczba dat!'\n",
" \n",
" for index in range(len(ss)):\n",
" if ss[index][1] != ts[index][1]:\n",
" print(\"Rozbieżny dzień w dacie!\")\n",
" print(f\"source_segment: {ss[index]}\")\n",
" print(f\"target_segment: {ts[index]}\")\n",
" return\n",
" \n",
" if date_format == \"Europe\":\n",
" return EuropeDate(target_segment,ts)\n",
" elif date_format == \"US\":\n",
" return USDate(target_segment,ts)\n",
" elif date_format == \"tyre-dot\":\n",
" return tyreDOTDate(target_segment,ts)\n",
" else:\n",
" return \"nierozpoznawalny format rządanej daty\"\n",
"\n",
"source=\"Moje urodziny: 06/07/1999\\n moje najbliższe imieniny: 2024/12/04\"\n",
"target=\"My birthday: 06/07/1999\\nmy forthcoming name day: 2024/12/04.\""
]
},
{
"cell_type": "code",
"execution_count": 431,
"id": "05c351cb-c414-426a-9499-37886d943834",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Europe-format\n",
"---\n",
"My birthday: 1999-07-06\n",
"my forthcoming name day: 2024-12-04.\n"
]
}
],
"source": [
"print(\"Europe-format\\n---\")\n",
"print(correct_dates(source,target,\"Europe\"))"
]
},
{
"cell_type": "code",
"execution_count": 432,
"id": "b0c34609-cbd1-44ec-9c3a-191f0400d1fc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"US-format\n",
"---\n",
"My birthday: 07-06-1999\n",
"my forthcoming name day: 12-04-2024.\n"
]
}
],
"source": [
"print(\"US-format\\n---\")\n",
"print(correct_dates(source,target,\"US\"))"
]
},
{
"cell_type": "code",
"execution_count": 434,
"id": "c0808108-65f9-4025-b6e7-ad06fc06a4df",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tire-Dot-Format\n",
"---\n",
"My birthday: 2799\n",
"my forthcoming name day: 4924.\n"
]
}
],
"source": [
"print(\"Tire-Dot-Format\\n---\")\n",
"print(correct_dates(source,target,\"tyre-dot\"))"
]
},
{
"cell_type": "code",
"execution_count": 433,
"id": "9be67593-0ada-423b-97a9-9b4dcb3e9fa1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Błąd! Niezgodna liczba dat!\n"
]
}
],
"source": [
"# Niezgodna liczba dat\n",
"print(correct_dates(target,\"My birthday: \\nmy forthcoming name day: 2024/12/04\",\"Europe\")) "
]
},
{
@ -176,13 +612,135 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 673,
"id": "romance-judge",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"difference: 1.125\n"
]
},
{
"data": {
"text/plain": [
"\"Hi, I'm <b>Krystian Osiński </b>and I'm 24 <i>years </i>old.\""
]
},
"execution_count": 673,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import math\n",
"\n",
"def transfer_tags(source_segment, target_segment):\n",
" return ''"
" regexp = r'(\\s|<[^>]+>)'\n",
" tags = []\n",
" result = \"\"\n",
" index = 0\n",
"\n",
" tokens = [token for token in re.split(regexp, source_segment) if token.strip() != \"\"]\n",
" \n",
" for token in tokens:\n",
" if re.search(r'(<[^>]+>)', token):\n",
" tags.append([index,token])\n",
" if token.strip() != \"\":\n",
" index += 1\n",
" \n",
" plain_s = re.sub(r'(<[^>]+>)', '', source_segment).split(\" \")\n",
" \n",
" t_tokens = target_segment.split(\" \")\n",
" \n",
" if len(plain_s) == len(t_tokens):\n",
" for tag in tags:\n",
" t_tokens.insert(tag[0],tag[1])\n",
" else:\n",
" difference = len(t_tokens)/len(plain_s)\n",
" for tag in tags:\n",
" t_tokens.insert(math.floor(tag[0]*difference),tag[1])\n",
" print(f\"difference: {difference}\")\n",
" \n",
" \n",
" for token in t_tokens:\n",
" if len(token) > 1:\n",
" if token[0] == \"<\" and token[-1] == \">\" and token[1] != \"/\":\n",
" result += token\n",
" elif token[1] == \"/\":\n",
" result += token\n",
" else:\n",
" result += token + \" \"\n",
" else:\n",
" result += token + \" \"\n",
" \n",
" return result.strip()\n",
"\n",
"PLXML = \"Cześć, jestem <b>Krystian Osiński</b> i mam <i>24</i> lata.\"\n",
"EN = \"Hi, I'm Krystian Osiński and I'm 24 years old.\"\n",
"transfer_tags(PLXML,EN)"
]
},
{
"cell_type": "code",
"execution_count": 674,
"id": "25c52d74-d893-4c64-a637-baede2f85059",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"difference: 1.1111111111111112\n"
]
},
{
"data": {
"text/plain": [
"\"Hi, I'm <b>Krystian <i>Osiński </i></b>and I'm almost <i>24 years </i>old.\""
]
},
"execution_count": 674,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"PLXML = \"Cześć, jestem <b>Krystian <i>Osiński</i></b> i mam <i>prawie 24</i> lata.\"\n",
"EN = \"Hi, I'm Krystian Osiński and I'm almost 24 years old.\"\n",
"transfer_tags(PLXML,EN)"
]
},
{
"cell_type": "code",
"execution_count": 675,
"id": "3ffb97dd-e806-4b28-8b49-25c7e044758f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"difference: 1.125\n"
]
},
{
"data": {
"text/plain": [
"'I like <b>eating </b>donuts and drinking very hot <i>coffee </i>'"
]
},
"execution_count": 675,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"PLXML = \"Lubię jeść <b>pączki</b> i pić bardzo gorącą <i>kawę</i>\"\n",
"EN = \"I like eating donuts and drinking very hot coffee\"\n",
"transfer_tags(PLXML,EN)"
]
}
],
@ -190,7 +748,7 @@
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -205,7 +763,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.9.2"
},
"subtitle": "6,7. Preprocessing i postprocessing",
"title": "Komputerowe wspomaganie tłumaczenia",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -52,13 +52,37 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 3,
"id": "german-dispute",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"['To jest przykładowy tekst.',\n",
" 'Nie wiem czym jest',\n",
" 'Python,',\n",
" 'ASCII i',\n",
" 'UNICODE.',\n",
" 'Ósmy raz sięgam ręką po borówkę.',\n",
" 'Żądło pszczoły jest kujące']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import regex\n",
"\n",
"def sentence_split(text):\n",
" return []"
" pattern = r'\\s(?=\\p{Lu})'\n",
" segments = regex.split(pattern, text)\n",
" return segments\n",
"\n",
"text = \"To jest przykładowy tekst. Nie wiem czym jest Python, ASCII i UNICODE. Ósmy raz sięgam ręką po borówkę. Żądło pszczoły jest kujące\"\n",
"sentence_split(text)"
]
},
{
@ -71,13 +95,251 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 4,
"id": "guilty-morocco",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Jeżeli chodzi o UNICODE czy ASCII to nie wiem co to jest',\n",
" 'Jestem S444820 [',\n",
" 'Krystian Osiński',\n",
" '] Lubię jeść pizze',\n",
" 'Mam konto w banku Peako S.A i jestem z niego zadowolony.']"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import regex as r\n",
"def sentence_split_enhanced(text):\n",
" #Ulepszenie algorytmu: szukam indexu znaku białego który jest poprzedzany znakiem .?! i następuje po nim duża litera, ale przed znakiem musi wystąpić litera a-z (nie może) A-Z\n",
" # Dltaego dodatkowmo nie dziele zdań gdy wystąpią skróty pokroju S.A. oraz w przypadku wystąpienia Dużej litery w środku zdania -> segment nie jest tworzony.\n",
" # W dodatku obsługuję nawiasy () i [] -> pobieram zdania występujące w nawiasie\n",
"\n",
" pattern = r'(?<![A-Z])[.!?]\\s+(?=\\p{Lu})|\\s*[\\(\\[](.*?)[\\)\\]]\\s+'\n",
" pattern = r'(?<![A-Z])[.!?]\\s+(?=\\p{Lu})|(?<=\\()|(?=\\))|(?<=\\[)|(?=\\])'\n",
" segments = r.split(pattern, text)\n",
" return segments\n",
" \n",
"sentence_split_enhanced(\"Jeżeli chodzi o UNICODE czy ASCII to nie wiem co to jest. Jestem S444820 [Krystian Osiński] Lubię jeść pizze. Mam konto w banku Peako S.A i jestem z niego zadowolony.\")\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "448e1c0f-9e25-48b1-b7d7-2ca96f70dde6",
"metadata": {},
"outputs": [],
"source": [
"def sentence_split_enhanced(text):\n",
" return []"
"import re\n",
"import requests\n",
"from bs4 import BeautifulSoup\n",
"\n",
"def get_text(url):\n",
"\n",
" page = requests.get(url)\n",
" soup = BeautifulSoup(page.content, 'html.parser')\n",
"\n",
" # usunięcie elementów script i style\n",
" for script in soup([\"script\", \"style\"]):\n",
" script.extract() # usuń element\n",
"\n",
" # pobierz tekst\n",
" text = soup.get_text()\n",
"\n",
" # usuń wielokrotne białe znaki\n",
" text = re.sub(r\"\\s+\", \" \", text)\n",
"\n",
" return(text)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "963380c7-ef58-402c-9fb3-05ce7058c681",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[' Spółka akcyjna podstawowe informacje | Biznes.gov.pl - Serwis informacyjno-usługowy dla przedsiebiorcy Przejdź do treści Przejdź do wyszukiwarki Przejdź do Centrum Pomocy gov.pl Serwis informacyjno-usługowy dla przedsiębiorcy × Zalogowany jako: e-Doręczenia Change language to English Ustawienia Wyloguj Logowanie Change language to English EN Biznes.gov.pl Informacje Katalog usług Wyszukiwarka firm Konto Przedsiębiorcy zamknij Konto Przedsiębiorcy Spółka akcyjna podstawowe informacje Obserwuj Przeczytaj podstawowe informacje o spółce akcyjnej',\n",
" 'Sprawdź jakie są jej najważniejsze cechy, jak powstaje, jaki ma majątek, kto reprezentuje spółkę oraz na czym polega odpowiedzialność wspólników',\n",
" 'Kluczowe cechy spółki akcyjnej Umowa założycielska spółki akcyjnej Statut spółki spółki akcyjnej Firma - oznaczenie spółki akcyjnej Rejestracja spółki akcyjnej w KRS Rejestracja w ZUS i zgłoszenie do ubezpieczeń Strona internetowa spółki Akcje i prawa z nich wynikające Kapitał zakładowy spółki akcyjnej Organy spółki akcyjnej Odpowiedzialność w spółce akcyjnej Podatki i księgowość w spółce akcyjnej Rozwiązanie spółki Kluczowe cechy spółki akcyjnej Spółka akcyjna jest kapitałową spółką handlową posiadającą osobowość prawną',\n",
" 'Założycielem spółki akcyjnej może być jeden lub większa liczba: osób fizycznych, osób prawnych, jednostek organizacyjnych nieposiadających osobowości prawnej, które posiadają zdolność prawną',\n",
" 'Spółki akcyjnej nie może założyć, jako jej jedyny akcjonariusz, jednoosobowa spółka z ograniczoną odpowiedzialnością',\n",
" 'Spółka akcyjna jest spółką prawa handlowego, w której wspólnicy uczestniczą w wyniku objęcia akcji wyemitowanych przez spółkę',\n",
" 'Kupno akcji spółki akcyjnej w wyniku objęcia akcji wyemitowanych przez spółkę (',\n",
" 'pierwotne',\n",
" '), lub w drodze nabycia istniejących już akcji, na przykład na podstawie umowy sprzedaży (',\n",
" 'wtórne',\n",
" ') powoduje, że właściciel akcji jest wspólnikiem spółki, czyli jej akcjonariuszem',\n",
" 'Spółka akcyjna to forma działalności, która: zapewnia anonimowość wspólników spółki akcyjnej, czyli jej akcjonariuszy jest odpowiednia dla dużych przedsięwzięć, w tym firm planujących wejście na giełdę jest obowiązkowa dla niektórych działalności, w tym banków oraz firm ubezpieczeniowych',\n",
" 'Wspólnikami spółki akcyjnej są akcjonariusze, którzy posiadają określoną liczbę akcji upoważniających do otrzymywania wyznaczonej części dywidendy',\n",
" 'Do założenia spółki akcyjnej wymagany jest kapitał 100 000 złotych',\n",
" 'Umowa założycielska spółki akcyjnej Pierwszym krokiem do powstania spółki akcyjnej jest zawarcie umowy założycielskiej, na którą składają się: statut jednostronne oświadczenia o przystąpieniu do spółki zgoda na brzmienie statutu oraz objęcie akcji',\n",
" 'Uwaga',\n",
" 'Statut spółki nie wywoła skutków prawnych bez złożenia oświadczeń zawierających zgodę na jego brzmienie oraz na objęcie akcji spółki',\n",
" 'Statut spółki spółki akcyjnej Statut spółki akcyjnej jest podstawowym dokumentem, w którym uregulowane są prawa i obowiązki założycieli, akcjonariuszy i organów spółki',\n",
" 'Do obowiązkowych elementów statutu należy określenie: firmy i siedziby spółki przedmiotu działalności spółki czasu trwania spółki, jeżeli jest oznaczony wysokości kapitału zakładowego kwoty, jaka została wpłacona przed zarejestrowaniem spółki na pokrycie kapitału zakładowego wartości nominalnej akcji i ich liczby ze wskazaniem, czy akcje imienne, czy na okaziciela liczby akcji poszczególnych rodzajów i związanych z nimi uprawnień, jeżeli w spółce będą występować akcje różnych rodzajów nazwisk i imion założycieli spółki liczby członków zarządu i rady nadzorczej albo co najmniej minimalnej lub maksymalnej liczby członków tych organów oraz podmiotu uprawnionego do ustalenia składu zarządu lub rady nadzorczej',\n",
" 'W statucie oprócz elementów obowiązkowych mogą znaleźć się również elementy fakultatywne: określenie minimalnej lub maksymalnej wysokości kapitału zakładowego określenie terminów i wysokości wpłat na akcje dodatkowe postanowienia dotyczące treści i formy dokumentu akcji ograniczenie możliwości rozporządzenia akcjami imiennymi określenie uprawnień rady nadzorczej utworzenie kapitałów rezerwowych',\n",
" 'Firma - oznaczenie spółki akcyjnej Firma spółki akcyjnej to jej nazwa, która może mieć charakter osobowy, przedmiotowy, fantazyjny lub mieszany',\n",
" 'W firmie spółki akcyjnej można umieścić nazwisko lub pseudonim osoby fizycznej, jeśli dzięki temu będzie można wyrazić związek tej osoby z powstaniem lub działalnością spółki akcyjnej',\n",
" 'Dodatkowo w firmie spółki musi znaleźć się określenie formy prawnej prowadzonej działalności, czyli słowa „spółka akcyjna” lub skrót „S.A”',\n",
" 'Rejestracja spółki akcyjnej w KRS Kolejnym warunkiem który musi zostać spełniony, aby spółka akcyjna zaczęła istnieć, jest wpis do rejestru przedsiębiorców',\n",
" 'Spółkę akcyjną rejestruje się w Krajowym Rejestrze Sadowym składając wniosek elektronicznie za pośrednictwem Portalu Rejestrów Sądowych',\n",
" 'Po rejestracji spółka zgłasza dane uzupełniające do urzędu skarbowego (',\n",
" 'formularz NIP-8',\n",
" ')',\n",
" 'To dane, których nie trzeba zgłaszać przy rejestracji, takie jak na przykład numery rachunków bankowych, przewidywana liczba pracowników, miejsca prowadzenia działalności oraz szczegółowe dane kontaktowe',\n",
" 'Dane te trafiają ZUS, GUS i urzędu skarbowego',\n",
" 'Spółka powinna je podać już po rozpoczęciu działalności w terminie 7 dni (',\n",
" 'dane dla ZUS',\n",
" ') lub w terminie 21 dni (',\n",
" 'dane dla GUS i urzędu skarbowego',\n",
" ') od dnia rejestracji spółki w KRS. Uwaga',\n",
" 'Każdy przedsiębiorca ma swój NIP (',\n",
" 'numer identyfikacji podatkowej, którym posługuje się w kontaktach z urzędem skarbowym',\n",
" ') i REGON (',\n",
" 'to numer w rejestrze Głównego Urzędu Statystycznego',\n",
" ')',\n",
" 'Te numery są nadawane są automatycznie, przy rejestracji spółki w KRS. Informacja o nadaniu NIP może zostać przekazana do KRS w terminie 3 dni',\n",
" 'Po zawiązaniu spółki akcyjnej, czyli po objęciu akcji w całości, ale przed wpisem do rejestru przedsiębiorców KRS powstaje spółka akcyjna w organizacji',\n",
" 'Organizująca się spółka akcyjna posiada zdolność prawną i zdolność do czynności prawnych',\n",
" 'Oznacza to, że może we własnym imieniu nabywać prawa, zaciągać zobowiązania, pozywać i być pozywana',\n",
" 'Spółkę w organizacji reprezentuje zarząd, a do chwili jego powołania ogół założycieli',\n",
" 'Spółka akcyjna w organizacji posiada własny majątek, którego wyłącznym właścicielem jest organizująca się spółka',\n",
" 'Jest to więc majątek odrębny od majątku akcjonariuszy',\n",
" 'Przeczytaj: jak zarejestrować spółkę akcyjną w KRS instrukcję wypełniania wniosków elektronicznych w PRS. Rejestracja w ZUS i zgłoszenie do ubezpieczeń Przy rejestracji, spółka zostanie automatycznie zarejestrowana z ZUS jako płatnik składek na ubezpieczenie społeczne',\n",
" 'Nie trzeba wysyłać do ZUS dodatkowych dokumentów',\n",
" 'Przeczytaj, jak zarejestrować się w ZUS i zgłosić do ubezpieczeń',\n",
" 'Strona internetowa spółki Każda spółka akcyjna ma obowiązek prowadzenia własnej strony internetowej przeznaczonej do komunikacji z akcjonariuszami',\n",
" 'Na stronie internetowej powinny znaleźć się takie informacje jak: firma, siedziba i adres spółki, numer KRS, oznaczenie właściwego sądu rejestrowego, NIP oraz wysokość kapitału zakładowego',\n",
" 'Ponadto, na stronie powinny się znaleźć wszelkie ogłoszenia spółek wymagane przez prawo oraz statuty tych spółek',\n",
" 'Akcje i prawa z nich wynikające Przez akcje należy rozumieć: ogół praw i obowiązków akcjonariusza wobec spółki akcyjnej wynikających z nabycia przez niego udziału w tej spółce papier wartościowy, czyli dokument potwierdzający prawa akcjonariusza',\n",
" 'Wspólnik spółki akcyjnej otrzymuje akcje za wkłady wnoszone do spółki',\n",
" 'Akcje mogą być obejmowane za wkłady pieniężne lub niepieniężne',\n",
" 'Wkład pieniężny to określona kwota przeniesiona na spółkę',\n",
" 'Wkładami niepieniężnymi (',\n",
" 'aporty',\n",
" ') są wszelkie wartości majątkowe wnoszone do spółki, które nie są wyrażone w pieniądzu',\n",
" 'Jako aport mogą być wnoszone: rzeczy ruchome, nieruchomości, użytkowanie wieczyste, ograniczone prawa rzeczowe, wierzytelności, udziały w spółkach i inne prawa majątkowe',\n",
" 'Uwaga',\n",
" 'Aportem nie mogą być prawa niezbywalne, na przykład użytkowanie',\n",
" 'Do zawiązania spółki akcyjnej konieczne jest: objęcie całości akcji, czyli zobowiązanie się do wniesienia określonych wkładów pokrycie ¼ akcji obejmowanych za wkłady pieniężne przed zarejestrowaniem spółki',\n",
" 'Pozostała część wkładów może być wniesiona po zarejestrowaniu spółki',\n",
" 'Natomiast wkłady niepieniężne należy wnieść przed upływem roku od dnia rejestracji spółki',\n",
" 'Z posiadaniem akcji w spółce akcyjnej wiąże się szereg uprawnień, które przysługują akcjonariuszowi',\n",
" 'Wśród tych uprawnień kluczowe są uprawnienia majątkowe i korporacyjne',\n",
" 'Do uprawnień majątkowych wynikających z akcji należą: udział w zysku spółki (',\n",
" 'prawo do dywidendy',\n",
" ') możliwość poboru akcji nowej emisji udział w masie likwidacyjnej spółki',\n",
" 'Do uprawnień korporacyjnych wynikających z akcji należą: prawo do uczestniczenia na walnym zgromadzeniu prawo do głosu na walnym zgromadzeniu prawo do informacji',\n",
" 'Podstawowym podziałem akcji w spółce akcyjnej jest podział na akcje imienne i akcje na okaziciela',\n",
" 'Podział akcji na akcje imienne oraz akcje na okaziciela nie jest podziałem na akcje różnego rodzaju, gdyż akcje imienne ucieleśniają takie same prawa pod względem, jak akcje na okaziciela',\n",
" 'Podział akcji ze względu na treść prawa z nich wynikającego, to podział na akcje zwykłe i akcje uprzywilejowane',\n",
" 'Uwaga',\n",
" 'Statut spółki powinien określać liczbę akcji zwykłych i uprzywilejowanych wraz z opisaniem związanych z nimi uprawnień',\n",
" 'Uprzywilejowanie akcji powoduje zwiększenie zakresu uprawnień w porównaniu z zakresem uprawnień akcji zwykłego rodzaju',\n",
" 'Uprzywilejowanie to może dotyczyć zarówno uprawnień majątkowych, jak i uprawnień korporacyjnych',\n",
" 'Kapitał zakładowy spółki akcyjnej Kapitał zakładowy stanowi warunek powstania i istnienia każdej spółki akcyjnej',\n",
" 'Jest to suma udziałów (',\n",
" 'akcji',\n",
" ') występujących w spółce',\n",
" 'Wszyscy wspólnicy spółki akcyjnej muszą wnieść wkłady do spółki, rozumiane jako określone wartości majątkowe, które zostają przeznaczone na pokrycie całości kapitału zakładowego',\n",
" 'Wysokość kapitału zakładowego powinna być ustalona w statucie spółki',\n",
" 'Dzięki wyodrębnieniu i pokryciu kapitału zakładowego akcjonariusze są wolni od odpowiedzialności za zobowiązania spółki',\n",
" 'Kapitał zakładowy podzielony jest na akcje o równej wartości nominalnej',\n",
" 'W praktyce oznacza to, że żadna spółka akcyjna nie może powstać bez zebrania kapitału zakładowego w wysokości wskazanej w statucie',\n",
" 'Wysokość kapitału zakładowego musi być wyrażona w walucie polskiej',\n",
" 'Uwaga',\n",
" 'Minimalna wysokość kapitału zakładowego spółki akcyjnej wynosi 100 tys. zł, a minimalna wartość jednej akcji wynosi 1 grosz',\n",
" 'Kapitał zakładowy w spółce akcyjnej realizuje trzy zasadnicze funkcje: funkcję prawną funkcję gospodarczą funkcję gwarancyjną',\n",
" 'Funkcja prawna kapitału zakładowego polega na określeniu wspólników (',\n",
" 'akcjonariuszy',\n",
" ') spółki w jej strukturze - kapitał zakładowy jest podstawą uczestniczenia każdego akcjonariusza w spółce',\n",
" 'Oznacza to, że akcjonariuszem spółki akcyjnej może zostać osoba, która ma swój udział w jej kapitale zakładowym',\n",
" 'Funkcja gospodarcza kapitału zakładowego spółki akcyjnej oznacza, że spółka dysponuje odpowiednimi środkami materialnymi, które pozwalają jej na podjęcie i rozwijanie działalności gospodarczej',\n",
" 'Ponadto, kapitał zakładowy pozwala na finansowanie funkcjonowania spółki, co przejawia się na przykład - w uzyskaniu zdolności kredytowej',\n",
" 'Funkcja gwarancyjna kapitału zakładowego spółki akcyjnej oznacza, że jego wysokość pozwala na ocenę pozycji spółki przez jej kontrahentów',\n",
" 'Organy spółki akcyjnej Każda spółka akcyjna musi mieć swoje organy',\n",
" 'Do obowiązkowych i zarazem najważniejszych organów należy zarząd, walne zgromadzenie akcjonariuszy oraz rada nadzorcza',\n",
" 'Ustanowienie pierwszych organów następuje w aktach notarialnych, w których akcjonariusze wyrażają zgodę na zawiązanie spółki, treść statutu oraz objęcie akcji',\n",
" 'Statut spółki albo późniejsza uchwała zarządu może wprowadzać podział kompetencji pomiędzy poszczególnymi członkami zarządu',\n",
" 'Liczba członków zarządu powinna być ustalona w statucie spółki',\n",
" 'Zarząd w spółce akcyjnej pełni dwie najważniejsze kompetencje: reprezentuje spółkę w stosunkach zewnętrznych prowadzi sprawy spółki',\n",
" 'Reprezentacja spółki przez zarząd polega na dokonywaniu i przyjmowaniu czynności prawnych za spółkę w stosunkach z osobami trzecimi',\n",
" 'Co do zasady każdy członek zarządu ma prawo reprezentować spółkę',\n",
" 'Poza zarządem spółkę mogą reprezentować inne osoby: kurator, syndyk masy upadłości, likwidator, a także pełnomocnicy oraz prokurenci',\n",
" 'Uwaga',\n",
" 'Działania polegające na dokonywaniu czynności prawnych przez zarząd są dokonywane za spółkę, a czynności dokonywane przez inne osoby są czynnościami dokonywanymi w imieniu spółki',\n",
" 'Członków zarządu w spółce akcyjnej powołuje i odwołuje rada nadzorcza, o ile statut spółki nie stanowi inaczej',\n",
" 'Zarząd może być jednoosobowy lub składać się z wielu członków',\n",
" 'Mogą to być osoby wybrane spośród akcjonariuszy lub spoza ich grona',\n",
" 'Funkcja członka zarządu może być pełniona za wynagrodzeniem lub nieodpłatnie',\n",
" 'Oprócz zarządu w każdej spółce akcyjnej, bez względu na wysokość kapitału zakładowego, czy liczbę akcjonariuszy, musi być ustanowiona rada nadzorcza',\n",
" 'Rada nadzorcza w spółce akcyjnej sprawuje nadzór nad działalnością spółki',\n",
" 'Rada składa się co najmniej z trzech członków, powoływanych i odwoływanych przez walne zgromadzenie akcjonariuszy, o ile statut spółki nie stanowi inaczej',\n",
" 'Ostatnim obligatoryjnym organem i zarazem stanowiącym w najważniejszych sprawach spółki akcyjnej jest walne zgromadzenie akcjonariuszy',\n",
" 'Walne zgromadzenie składa się ze wszystkich akcjonariuszy, którzy wspólnie decydują o sprawach strategicznych dla spółki',\n",
" 'Do podstawowych i najważniejszych kompetencji walnego zgromadzenia należy podejmowanie uchwał odnośnie do: rozpatrzenia i zatwierdzenia sprawozdania zarządu z działalności spółki udzielenia absolutorium członkom organów spółki z wykonania przez nich obowiązków nabycia i zbycia nieruchomości, użytkowania wieczystego lub udziału w nieruchomości decyzji co do dalszego istnienia spółki zmiany statutu spółki',\n",
" 'Odpowiedzialność w spółce akcyjnej Spółka akcyjna odpowiada całym swoim majątkiem za zobowiązania, które ja obciążają',\n",
" 'Zasadą jest, że w przypadku spółki akcyjnej nie ma odpowiedzialności po stronie akcjonariuszy (',\n",
" 'wyjątek spółka akcyjna w organizacji',\n",
" ')',\n",
" 'Akcjonariusze nie odpowiadają za zobowiązania spółki',\n",
" 'Akcjonariusz w praktyce ryzykuje jedynie utratą wniesionego wkładu',\n",
" 'Podatki i księgowość w spółce akcyjnej Spółka akcyjna jest podatnikiem VAT. Podatek dochodowy od osób prawnych (',\n",
" 'CIT',\n",
" ') płacony jest przez samą spółkę akcyjną od dochodów osiągniętych w danym roku podatkowym',\n",
" 'Ponadto akcjonariusze spółki płacą podatek (',\n",
" '19%',\n",
" ') od wypłacanych im dywidend i innych dochodów pochodzących z udziału w zyskach osób prawnych (',\n",
" 'na przykład dochód z umorzenia udziałów',\n",
" ')',\n",
" 'W spółce akcyjnej wymagane jest prowadzenie pełnej księgowości, publikowanie rocznych raportów finansowych oraz dokonywanie audytu',\n",
" 'Przeczytaj: więcej o podatku CIT kto i kiedy musi składać sprawozdania finansowe',\n",
" 'Rozwiązanie spółki Rozwiązanie spółki polega na tym, że wspólników przestaje wiązać dążenie do osiągnięcia wspólnego celu, jakim jest prowadzenie przedsiębiorstwa',\n",
" 'Po podjęciu decyzji o rozwiązaniu spółki celem wspólników powinno być zakończenie i podsumowanie prowadzonej działalności oraz rozliczenie zysków i strat poniesionych przez spółkę',\n",
" 'Przeczytaj więcej o rozwiązaniu i likwidacji spółek wpisanych do KRS. Powiązane treści Rozwiązanie i likwidacja spółek wpisanych do KRS Zakładanie spółki handlowej Podstawa prawna Art. 1, 4, 12, 301-490 Ustawa z dnia 15 września 2000 r',\n",
" 'Kodeks spółek handlowych',\n",
" 'Art. 1, 4a pkt 18, 19, 21, 7, 7b, 8-9, 12 Ustawa z dnia 15 lutego 1992 r. o podatku dochodowym od osób prawnych',\n",
" 'Art. 19, 36, 38 Ustawa z dnia 20 sierpnia 1997 r. o Krajowym Rejestrze Sądowym',\n",
" 'Ustawa z dnia 13 października 1998 r. o systemie ubezpieczeń społecznych',\n",
" 'Czy ta strona była przydatna? × Wyślij Metryka Opublikowano 27.06.2021 Zaktualizowano 22.09.2021 ID artykułu 00169 gov.pl / Mapa Biznes.gov.pl Centrum pomocy Punkty kontaktowe UE O nas Deklaracja dostępności Polityka prywatności Uwagi prawne Portal nadzorowany jest przez Ministerstwo Rozwoju i Technologii',\n",
" 'Partnerzy projektu: Sieć Badawcza Łukasiewicz - Poznański Instytut Technologiczny, Krajowa Izba Gospodarcza',\n",
" 'Projekt jest współfinansowany z Programu Polska Cyfrowa ze środków Unii Europejskiej z Europejskiego Funduszu Rozwoju Regionalnego i jest kontynuacją projektu pt.: \"Centralna Ewidencja i Informacja o Działalności Gospodarczej\" finansowanego z Programu Innowacyjna Gospodarka oraz projektu \"Uproszczenie i elektronizacja procedur\" finansowanego z Programu Kapitał Ludzki',\n",
" 'Artykuły zamieszczone w serwisie GOV.PL, w których nie podajemy żadnych dodatkowych informacji na temat praw autorskich, należą do informacji publicznych i udostępniamy je bezpłatnie',\n",
" 'Korzystanie z nich, niezależnie od celu i sposobu korzystania, nie wymaga zgody Ministerstwa',\n",
" 'Dostępne są w ramach licencji Creative Commons Uznanie Autorstwa 3.0 Polska',\n",
" 'Serwis Biznes.gov.pl używa plików cookies',\n",
" 'Kontynuując przeglądanie naszej witryny bez zmiany ustawień przeglądarki, wyrażasz zgodę na użycie plików cookie',\n",
" 'Zawsze możesz zmienić ustawienia przeglądarki i zablokować te pliki. × Zadaj pytanie Na wskazany w formularzu adres e-mail zostanie wysłane potwierdzenie zgłoszenia, informacja o zmianie statusu oraz odpowiedź',\n",
" 'Maksymalny termin odpowiedzi wynosi 7 dni kalendarzowych, 14 dni kalendarzowych w przypadku spraw wymagających konsultacji z innymi urzędami Pokaż więcej',\n",
" 'Formularz zapytania urzędowego jest częścią polskiego Pojedynczego Punktu Kontaktowego www.biznes.gov.pl',\n",
" 'Szczegółowy zakres zadań realizowanych przez Punkt Kontaktowy reguluje dział III ustawy o Centralnej Ewidencji i Informacji o Działalności Gospodarczej i Punktu Informacji dla Przedsiębiorcy',\n",
" 'Więcej informacji znajdziesz na stronie Uwagi Prawne',\n",
" 'Punkt Kontaktowy nie prowadzi doradztwa w indywidualnych sprawach',\n",
" 'Zgłaszający Wybierz Przedsiębiorca Obywatel Urzędnik E-mail Temat Wybierz prowadzenie firmy w Polsce prowadzenie firmy w Unii Europejskiej złożenie wniosku w CEIDG (',\n",
" 'założenie, zmiana, zawieszenie, wznowienie, zakończenie',\n",
" ') spory pomiędzy przedsiębiorcami, konsumentami i urzędami prawa i obowiązki pracowników i pracodawców eDoręczenia awaria/błąd Biznes.gov.pl lub CEIDG wsparcie techniczne Aplikacja urzędnika CEIDG Integracja dla banków Treść Jeśli podasz więcej szczegółowych informacji, np',\n",
" 'NIP, numer sprawy, numer wniosku, itp. możesz liczyć na szybszą analizę zgłoszenia',\n",
" 'Minimum 10 znaków Dodaj załącznik (',\n",
" 'Jeśli zgłoszenie dotyczy kwestii technicznych, załącz do niego zrzut ekranu',\n",
" ') Wielkość załącznika nie może przekraczać 5MB. Dozwolone formaty plików: .jpg, .jpeg, .png, .bmp, .gif, .pdf, .doc, .docx, .odt, .xls, .xlsx Wskaż plik dodaj kolejny załącznik Wyślij Wybierz ']"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentence_split_enhanced(get_text(\"https://www.biznes.gov.pl/pl/portal/00169\")) #podsatwowe info o spółce akcyjnej z portalu rządowego"
]
},
{
@ -174,28 +436,238 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 16,
"id": "remarkable-pillow",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dostęp do zawartości strony (kliknąć na \"Wejście\")\tAccess to page content (press \"Enter\")\tpl\n",
"\n",
"Bezpośredni dostęp do menu z językami (wciśnij „Enter”)\tDirect access to language menu (press \"Enter\")\tpl\n",
"\n",
"Bezpośredni dostęp do menu wyszukiwania (wciśnij „Enter”)\tDirect access to search menu (press \"Enter\")\tpl\n",
"\n",
"Zmiana języka przeglądania BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska\tChange the navigation language BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska\tpl\n",
"\n",
"Zmiana języka przeglądania\tChange the navigation language\tpl\n",
"\n",
"PL - polski\tEN - English\tpl\n",
"\n",
"BG - български\tBG - български\tpl\n",
"\n",
"ES - español\tES - español\tpl\n",
"\n",
"CS - čeština\tCS - čeština\tpl\n",
"\n",
"DA - dansk\tDA - dansk\tpl\n",
"\n",
"DE - Deutsch\tDE - Deutsch\tpl\n",
"\n",
"ET - eesti keel\tET - eesti keel\tpl\n",
"\n",
"EL - ελληνικά EN - English\tEL - ελληνικά EN - English\tpl\n",
"\n",
"FR - français\tFR - français\tpl\n",
"\n",
"GA - Gaeilge\tGA - Gaeilge\tpl\n",
"\n",
"HR - hrvatski\tHR - hrvatski\tpl\n",
"\n",
"IT - italiano\tIT - italiano\tpl\n",
"\n",
"LV - latviešu valoda\tLV - latviešu valoda\tpl\n",
"\n",
"LT - lietuvių kalba\tLT - lietuvių kalba\tpl\n",
"\n",
"HU - magyar\tHU - magyar\tpl\n",
"\n",
"MT - Malti\tMT - Malti\tpl\n",
"\n",
"NL - Nederlands PL - polski\tNL - Nederlands PL - polski\tpl\n",
"\n",
"PT - português\tPT - português\tpl\n",
"\n",
"RO - română\tRO - română\tpl\n",
"\n",
"SK - slovenčina\tSK - slovenčina\tpl\n",
"\n",
"SL - slovenščina\tSL - slovenščina\tpl\n",
"\n",
"FI - suomi\tFI - suomi\tpl\n",
"\n",
"SV - svenska\tSV - svenska\tpl\n",
"\n",
"Zobacz inne strony internetowe Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory Inne strony internetowe Media Strona przewodniczącego Sekretariat Generalny Think tank EP Newshub Do Waszych usług Wizyty Legislative train Zamówienia i dotacje Rejestr Portal otwartych danych Biura kontaktowe\tView other websites News Topics MEPs About Parliament Plenary Committees Delegations Elections Other websites Multimedia centre Presidents website Secretariat-General Think tank EP Newshub At your service Visits Legislative train Contracts and Grants Register Open data portal Liaison offices\tpl\n",
"\n",
"O Parlamencie Parlament Europejski\tAbout Parliament European Parliament\tpl\n",
"\n",
"Menu Strona główna Uprawnienia i procedury Strona główna Uprawnienia legislacyjne Uprawnienia budżetowe Uprawnienia kontrolne Parlamenty krajowe Traktat z Lizbony\tMenu Home Powers and procedures Home Legislative powers Budgetary powers Supervisory powers National parliaments The Lisbon Treaty\tpl\n",
"\n",
"Organizacja i praca Strona główna Organizacja Wszystko o sesjach plenarnych Budżet Parlamentu Wielojęzyczność w Parlamencie Europejskim Sekretariat Generalny Ślad ekologiczny\tOrganisation and rules Home Organisation How Plenary works Parliaments budget Multilingualism Secretariat Ecological footprint\tpl\n",
"\n",
"Demokracja i prawa człowieka Strona główna Prawa podstawowe w UE Prawa człowieka poza UE Demokracja w skali światowej\tDemocracy and human rights Home Fundamental rights in the EU Human rights outside the EU Global democracy\tpl\n",
"\n",
"Historia Strona główna PE i traktaty Archiwa Historyczne\tIn the past Home The Parliament and the treaties Historical archives\tpl\n",
"\n",
"Tekst łatwy do czytania\tEasy-to-read\tpl\n",
"\n",
"Dostęp do pola wyszukiwania Rozpocznij wyszukiwanie\tAccess to search field Launch the search\tpl\n",
"\n",
"Parlament Europejski\tEuropean Parliament\tpl\n",
"\n",
"Demokracja i prawa człowieka\tDemocracy and human rights\tpl\n",
"\n",
"Parlament Europejski zyskał sobie opinię zaangażowanego obrońcy praw podstawowych i demokracji.\tThe European Parliament has earned a reputation as a dedicated sponsor of peoples basic rights and of democracy.\tpl\n",
"\n",
"W jedynej instytucji UE, której członkowie są wyłaniani w wyborach bezpośrednich, posłowie prowadzą walkę z nowymi i trwającymi od dawna atakami na podstawowe wolności.\tWithin the EUs only directly-elected institution, MEPs fight against new and old attacks on essential liberties.\tpl\n",
"\n",
"Ochrona praw podstawowych w Unii\tProtecting fundamental rights in the EU\tpl\n",
"\n",
"Prawa podstawowe przysługują wszystkim ludziom w UE bez względu na ich status lub pochodzenie.\tFundamental rights apply to all people in the EU, no matter their status or origin.\tpl\n",
"\n",
"Niektóre z tych swobód są równie stare jak Europa: prawo do życia i wolności, swoboda myśli i wypowiedzi.\tSome of these freedoms are as old as Europe: life and liberty, thought and expression.\tpl\n",
"\n",
"Inne trzeba jednak ponownie zdefiniować, by iść z duchem czasu.\tBut others have had to be redefined to keep pace with the times.\tpl\n",
"\n",
"Ochrona danych osobowych lub zakaz klonowania ludzi nie były przedmiotem troski pierwszych posłów do PE wybranych blisko czterdzieści lat temu.\tProtecting personal data or prohibiting human cloning were far from the minds of the first elected MEPs, some four decades ago.\tpl\n",
"\n",
"Przejdź do tej strony : Ochrona praw podstawowych w Unii\tGo to the page : Protecting fundamental rights in the EU\tpl\n",
"\n",
"Obrona praw człowieka poza UE\tDefending human rights beyond the EU\tpl\n",
"\n",
"Parlament Europejski uważa, że podstawowe prawa człowieka obowiązują również poza granicami UE.\tThe European Parliament does not believe that peoples basic rights end at the EUs borders.\tpl\n",
"\n",
"Posłowie do PE regularnie zabierają głos, indywidualnie lub wspólnie, w sprawie kwestii związanych z prawami człowieka w państwach spoza UE.\tMEPs regularly speak out individually and in unison about human rights issues in non-EU countries.\tpl\n",
"\n",
"Z uwagi na to, że wspomniane prawa są uznawane za powszechne, reakcja jest taka sama, niezależnie od tego, czy do naruszenia dochodzi w Mjanmie/Birmie, oddalonej o 8000 km, czy na Białorusi, która graniczy z UE.\tBecause these rights are considered universal, the response is the same whether the violation takes place in Myanmar/Burma, some 8 000 kilometres away, or in Belarus, which borders on the Union.\tpl\n",
"\n",
"Walka o prawa człowieka przywiodła także do Parlamentu Europejskiego wielu wybitnych obrońców tych praw.\tThe battle for human rights has also brought many prominent defenders to the European Parliament.\tpl\n",
"\n",
"Malala Yousafzai, pakistańska działaczka walcząca o prawo dzieci do nauki, jazydzkie kobiety więzione przez Państwo Islamskie w Iraku, lekarz z Demokratycznej Republiki Konga, więźniowie polityczni z Ameryki Łacińskiej: wszyscy zabrali głos w Parlamencie.\tMalala Yousafzai, the Pakistani campaigner for childrens education, Yazidi women who had been prisoners of the Islamic State in Iraq, a doctor from the Democratic Republic of the Congo, political prisoners from Latin America: all have found a voice on the European Parliaments stage.\tpl\n",
"\n",
"Przejdź do tej strony : Obrona praw człowieka poza UE\tGo to the page : Defending human rights beyond the EU\tpl\n",
"\n",
"Wspieranie demokracji na całym świecie\tSupporting democracy around the globe\tpl\n",
"\n",
"Wspieranie demokracji jest kluczowym elementem tych działań wyrażonym w Powszechnej deklaracji praw człowieka: „Wola ludu jest podstawą władzy rządu.”\tSustaining democracy is a key element of this effort, spelled out in the Universal Declaration of Human Rights: “ The will of the people shall be the basis of the authority of government .”\tpl\n",
"\n",
"Posłowie do PE bronią systemów demokratycznych na całym świecie.\tMEPs defend democratic systems around the globe.\tpl\n",
"\n",
"Niektórzy z nich podróżują w odległe regiony, by obserwować wybory, prowadzić mediacje w konfliktach i wspierać nowo powstałe parlamenty.\tSome have travelled far to observe elections, mediate in conflicts and support fledgling parliaments.\tpl\n",
"\n",
"Akty założycielskie UE wymagają, by Unia jako całość broniła zasad demokratycznych w ramach swojej polityki zagranicznej.\tThe EUs own founding texts require that the Union as a whole defends democratic principles in its foreign affairs.\tpl\n",
"\n",
"Jednak starania te są jeszcze bliższe Parlamentowi Europejskiemu: dla posłów do PE, którzy uczestniczyli w wyborach i kampaniach, demokracja jest sprawą osobistą.\tBut in the European Parliament, this effort strikes closer to home: for MEPs, who have experienced elections and campaigns, democracy is a personal matter.\tpl\n",
"\n",
"Przejdź do tej strony : Wspieranie demokracji na całym świecie\tGo to the page : Supporting democracy around the globe\tpl\n",
"\n",
"Nagroda im. Sacharowa\tSakharov Prize\tpl\n",
"\n",
"Zapoznaj się z informacjami o laureatach nagrody im. Sacharowa przyznawanej od 1988 r. przez Parlament Europejski osobom, które wyróżniły się jako obrońcy praw człowieka.\tRead about the winners of the Parliament's Sakharov Prize, which has recongnised outstanding human rights defenders since 1988\tpl\n",
"\n",
"Przejdź do strony internetowej\tVisit the website\tpl\n",
"\n",
"Udostępnij tę stronę:\tShare this page:\tpl\n",
"\n",
"Udostępnij tę stronę Facebook (otwiera się w nowym oknie)\tShare this page on Facebook (opens in a new window)\tpl\n",
"\n",
"Udostępnij tę stronę Twitter (otwiera się w nowym oknie)\tShare this page on Twitter (opens in a new window)\tpl\n",
"\n",
"Udostępnij tę stronę LinkedIn (otwiera się w nowym oknie)\tShare this page on LinkedIn (opens in a new window)\tpl\n",
"\n",
"Zamów powiadomienia mailowe\tSign up for mail updates\tpl\n",
"\n",
"Footer\tFooter\tpl\n",
"\n",
"O Parlamencie\tAbout Parliament\tpl\n",
"\n",
"Pokaż menu: aktualności\tView menu: News\tpl\n",
"\n",
"Przewodniczący Parlamentu Europejskiego Sekretarz Generalny Parlamentu Europejskiego Wizyty Europejski Rzecznik Praw Obywatelskich Informacje o Unii Europejskiej\tThe President of the European Parliament Secretary-General of the European Parliament Visits European Ombudsman About the European Union\tpl\n",
"\n",
"Ukryj menu: Aktualności\tHide menu: News\tpl\n",
"\n",
"Parlament Europejski\tEuropean Parliament\tpl\n",
"\n",
"Pokaż menu: Parlament Europejski\tView menu: European Parliament\tpl\n",
"\n",
"Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory\tNews Topics MEPs About Parliament Plenary Committees Delegations Elections\tpl\n",
"\n",
"Ukryj menu: Parlament Europejski\tHide menu: European Parliament\tpl\n",
"\n",
"Parlament w mediach społecznościowych\tThe Parliament on social media\tpl\n",
"\n",
"Sprawdź aktualności w Parlamencie Facebook (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Twitter (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Flickr (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie LinkedIn (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie YouTube (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Instagram (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Pinterest (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Snapchat (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Reddit (otwiera się w nowym oknie)\tCheck out Parliament on Facebook (opens in a new window) Check out Parliament on Twitter (opens in a new window) Check out Parliament on Flickr (opens in a new window) Check out Parliament on LinkedIn (opens in a new window) Check out Parliament on YouTube (opens in a new window) Check out Parliament on Instagram (opens in a new window) Check out Parliament on Pinterest (opens in a new window) Check out Parliament on Snapchat (opens in a new window) Check out Parliament on Reddit (opens in a new window)\tpl\n",
"\n",
"Linki do informacji\tInformation links\tpl\n",
"\n",
"Kontakt RSS Mapa witryny Informacja prawna Polityka ochrony prywatności Dostęp\tContact RSS Sitemap Legal notice Privacy policy Accessibility\tpl\n"
]
},
{
"ename": "UnicodeEncodeError",
"evalue": "'charmap' codec can't encode characters in position 1490-1498: character maps to <undefined>",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mUnicodeEncodeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[16], line 35\u001b[0m\n\u001b[0;32m 30\u001b[0m xml_file\u001b[38;5;241m.\u001b[39mwrite(text)\n\u001b[0;32m 33\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m---> 35\u001b[0m \u001b[43mconvert2xliff\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43maligned_pl-en.txt\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mxliff_pl_en\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n",
"Cell \u001b[1;32mIn[16], line 30\u001b[0m, in \u001b[0;36mconvert2xliff\u001b[1;34m(hunalign_file_name, new_xliff_file_name)\u001b[0m\n\u001b[0;32m 25\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\"\"\u001b[39m\u001b[38;5;124m</body>\u001b[39m\n\u001b[0;32m 26\u001b[0m \u001b[38;5;124m </file>\u001b[39m\n\u001b[0;32m 27\u001b[0m \u001b[38;5;124m </xliff>\u001b[39m\u001b[38;5;124m\"\"\"\u001b[39m\n\u001b[0;32m 29\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mopen\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124moutput_xml_file.xml\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mas\u001b[39;00m xml_file:\n\u001b[1;32m---> 30\u001b[0m \u001b[43mxml_file\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtext\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 33\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n",
"File \u001b[1;32mc:\\Users\\osins\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\encodings\\cp1250.py:19\u001b[0m, in \u001b[0;36mIncrementalEncoder.encode\u001b[1;34m(self, input, final)\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mencode\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m, final\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m):\n\u001b[1;32m---> 19\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcodecs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcharmap_encode\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\u001b[43mencoding_table\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;241m0\u001b[39m]\n",
"\u001b[1;31mUnicodeEncodeError\u001b[0m: 'charmap' codec can't encode characters in position 1490-1498: character maps to <undefined>"
]
}
],
"source": [
"def convert2xliff(hunalign_file_name):\n",
" return 0"
"#mi osobiście dedykowana aplikacja zwracała jako wynik plik .txt + umożliwiała wybranie formatu który jest możlwiy do otworzenia w CAT\n",
"# pracuję na zestawie danych \n",
"# pl -> https://www.europarl.europa.eu/about-parliament/en/democracy-and-human-rights\n",
"# en -> https://www.europarl.europa.eu/about-parliament/en/democracy-and-human-rights\n",
"# plik wygenerowany: aligned_pl-en.txt\n",
"def convert2xliff(hunalign_file_name,new_xliff_file_name):\n",
" text = \"\"\"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
" <xliff xmlns=\"urn:oasis:names:tc:xliff:document:1.2\" version=\"1.2\">\n",
" <file datatype=\"plaintext\" original=\"self\" source-language=\"pl\" target-language=\"en\">\n",
" <header>\n",
" <sxmd:metadata xmlns:sxmd=\"urn:x-sap:mlt:xliff12:metadata:1.0\" xmlns=\"urn:x-sap:mlt:tsmetadata:1.0\">\n",
" <developer>Krystian Osinski</developer>\n",
" </sxmd:metadata>\n",
" </header>\n",
" <body>\"\"\"\n",
" with open(hunalign_file_name, 'r', encoding='utf-8') as file:\n",
" lines = file.readlines()\n",
" for line in lines:\n",
" source, target, pl = line.strip().split('\\t')\n",
" text += f\"\"\"<trans-unit>\n",
" <source>{source}</source>\n",
" <target>{target}</target>\n",
" </trans-unit>\"\"\"\n",
" text += r\"\"\"</body>\n",
" </file>\n",
" </xliff>\"\"\"\n",
" \n",
" with open('output_xml_file.xml', 'w', encoding='utf-8') as xml_file:\n",
" xml_file.write(text)\n",
" \n",
" \n",
" return 0\n",
"\n",
"convert2xliff(\"aligned_pl-en.txt\",\"xliff_pl_en\")"
]
}
],
"metadata": {
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"lang": "pl",
"subtitle": "11. Urównoleglanie",
"title": "Komputerowe wspomaganie tłumaczenia",
"year": "2021",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
@ -206,8 +678,11 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
"version": "3.12.1"
},
"subtitle": "11. Urównoleglanie",
"title": "Komputerowe wspomaganie tłumaczenia",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 5

View File

@ -56,25 +56,86 @@
]
},
{
"cell_type": "markdown",
"id": "arctic-horror",
"cell_type": "code",
"execution_count": 1,
"id": "c5c37655",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting keyboard\n",
" Downloading keyboard-0.13.5-py3-none-any.whl.metadata (4.0 kB)\n",
"Downloading keyboard-0.13.5-py3-none-any.whl (58 kB)\n",
" ---------------------------------------- 0.0/58.1 kB ? eta -:--:--\n",
" ------- -------------------------------- 10.2/58.1 kB ? eta -:--:--\n",
" -------------- ------------------------- 20.5/58.1 kB 320.0 kB/s eta 0:00:01\n",
" --------------------- ------------------ 30.7/58.1 kB 259.2 kB/s eta 0:00:01\n",
" ---------------------------------------- 58.1/58.1 kB 382.9 kB/s eta 0:00:00\n",
"Installing collected packages: keyboard\n",
"Successfully installed keyboard-0.13.5\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"`sudo pip3 install keyboard`"
"pip install keyboard"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"id": "broken-workstation",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"KeyboardEvent(K up)\n",
"KeyboardEvent(R up)\n",
"KeyboardEvent(Y up)\n",
"KeyboardEvent(S up)\n",
"KeyboardEvent(T up)\n",
"KeyboardEvent(I up)\n",
"KeyboardEvent(A up)\n",
"KeyboardEvent(N up)\n"
]
}
],
"source": [
"import keyboard\n",
"\n",
"\n",
"def report_key(event):\n",
" print(event)\n",
" print(event.scan_code)\n",
"\n",
"keyboard.on_release(callback=report_key)\n",
"keyboard.wait()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "abb08f92",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"75\n",
"77\n"
]
}
],
"source": [
"import keyboard\n",
"\n",
"\n",
"def report_key(event):\n",
" print(event.scan_code)\n",
"\n",
"keyboard.on_release(callback=report_key)\n",
"keyboard.wait()"
@ -96,6 +157,37 @@
"### Ćwiczenie 1: Wykorzystując powyższy kod napisz keylogger, który zapisuje wszystkie uderzenia w klawisze do pliku. Format pliku jest dowolny, każdy wpis musi zawierać precyzyjną godzinę uderzenia oraz uderzony klawisz. Uruchom program i przepisz paragraf dowolnie wybranego tekstu."
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "15ff8fa5",
"metadata": {},
"outputs": [],
"source": [
"import keyboard\n",
"import datetime\n",
"\n",
"def report_key(event):\n",
" with open('pause.txt', 'a') as f:\n",
" timestamp = datetime.datetime.now().strftime('%H:%M:%S')\n",
" f.write(f'{timestamp}\\t{event.name}\\t{event.scan_code}\\n')\n",
" \n",
"\n",
"keyboard.on_release(callback=report_key)\n",
"keyboard.wait()\n",
"\n",
"#https://www.netia.pl/pl/blog/co-to-jest-keylogger-i-jak-go-wykryc\n",
"# wynik pierwszego paragraphu po drugim nagłówki w pliku keylogger.txt"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0d90b504",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "valuable-bearing",
@ -114,13 +206,79 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 78,
"id": "possible-holder",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Łączny czas pisania = 2:14 \n",
"Napisano 256 znaków na minutę\n",
"Napisano 37 słów na minutę\n"
]
}
],
"source": [
"from datetime import datetime\n",
"\n",
"def calculate_typing_speed():\n",
" return 0"
" with open('keylogger.txt', 'r') as f:\n",
" start_time = None\n",
" end_time = None\n",
" chars = 0\n",
" words = 0\n",
" \n",
" break_time = 0\n",
" last_time = None\n",
"\n",
" lines = f.readlines()\n",
" length = len(lines)\n",
" for i in range(length):\n",
"\n",
" time, key, code = lines[i].strip().split('\\t')\n",
"\n",
" if start_time is None:\n",
" start_time = time\n",
" elif i == length - 1:\n",
" end_time = time\n",
"\n",
" if code in \"42, 54, 541, 75 , 77\": #shift, alt, left, right,\n",
" pass\n",
" elif code == '14': #backspace\n",
" chars -= 1\n",
" elif code == '57' or code == '28': #space, enter\n",
" words += 1\n",
" else:\n",
" chars += 1\n",
" \n",
" if last_time:\n",
" s = datetime.strptime(time, \"%H:%M:%S\")\n",
" e = datetime.strptime(last_time, \"%H:%M:%S\") \n",
" time_difference = e - s\n",
" \n",
" if last_time and time_difference.total_seconds() > 5:\n",
" break_time += time_difference.total_seconds()\n",
" \n",
" last_time = time\n",
" \n",
" s = datetime.strptime(start_time, \"%H:%M:%S\")\n",
" e = datetime.strptime(end_time, \"%H:%M:%S\")\n",
" time_difference = e - s\n",
" seconds = time_difference.total_seconds() - break_time \n",
" \n",
" chars_per_m = chars / (seconds // 60) \n",
" words_per_m = words / (seconds // 60) \n",
"\n",
" return (seconds,int(chars_per_m), int(words_per_m))\n",
"\n",
"seconds, chars, words = calculate_typing_speed()\n",
"\n",
"print(f'Łączny czas pisania = {int(seconds//60)}:{int(seconds%60)} ')\n",
"print(f'Napisano {chars} znaków na minutę')\n",
"print(f'Napisano {words} słów na minutę')\n",
"\n"
]
},
{
@ -141,28 +299,85 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 5,
"id": "close-riverside",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pauza: 6.0s Ilość wciśniętych klawiszy do pauzy: 331 -> text: dzania baza danych (D|H|BMS). Historia SQL\n",
"Pauza: 8.0s Ilość wciśniętych klawiszy do pauzy: 680 -> text: z dnych to korzystani|P|e z SQl-a. Pierwsza\n",
"Pauza: 12.0s Ilość wciśniętych klawiszy do pauzy: 341 -> text: za danych (DBMS). Hi|S|storia SQL zostal o\n",
"Pauza: 13.0s Ilość wciśniętych klawiszy do pauzy: 1327 -> text: SQL: . SQL DML2. SQL|enter| DDL . SQL DCL .tab\n",
"Pauza: 15.0s Ilość wciśniętych klawiszy do pauzy: 1147 -> text: zona przez brytyjskďż|S|˝ wytwornIe lotnicz\n"
]
}
],
"source": [
"from datetime import datetime\n",
"\n",
"def find_pauses():\n",
" return []"
" with open('pause.txt', 'r') as f:\n",
" breaks = []\n",
" \n",
" last_time = None\n",
" lines = f.readlines()\n",
" length = len(lines)\n",
" text = \"\"\n",
" q = 0\n",
" for i in range(length):\n",
"\n",
" time, key, code = lines[i].strip().split('\\t')\n",
" if code in \"42, 54, 541, 75 , 77\": #shift, alt, left, right,\n",
" q += 1\n",
" elif code == '14': #backspace\n",
" text = text[:-1]\n",
" q += 2\n",
" elif code == '57' or code == '28': #space, enter\n",
" text += \" \"\n",
" else:\n",
" text += key\n",
" \n",
" \n",
" if last_time:\n",
" s = datetime.strptime(time, \"%H:%M:%S\")\n",
" e = datetime.strptime(last_time, \"%H:%M:%S\") \n",
" time_difference = (s-e).total_seconds()\n",
" \n",
" if last_time and time_difference > 5:\n",
" if i-20 >= 0:\n",
" breaks.append([time_difference, [text[i-q-20:i+1-q],key,\"\"],i-q,i])\n",
" else:\n",
" breaks.append([time_difference, [text[:i+1-q],key,\"\"],i-q,i])\n",
" last_time = time\n",
" \n",
" for break_ in breaks:\n",
" i = break_[2]\n",
" if i+20 <= length:\n",
" break_[1][2] = text[i+1:i+20]\n",
" else:\n",
" break_[1][2] = text[i+1:] \n",
" \n",
" breaks = sorted(breaks, key=lambda x: x[0])\n",
" return breaks\n",
"\n",
"\n",
"for pause in find_pauses():\n",
" print(f\"Pauza: {pause[0]}s Ilość wciśniętych klawiszy do pauzy: {pause[3]} -> text: {pause[1][0]}|{pause[1][1]}|{pause[1][2]}\")"
]
}
],
"metadata": {
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"lang": "pl",
"subtitle": "12. Key logging",
"title": "Komputerowe wspomaganie tłumaczenia",
"year": "2021",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
@ -173,8 +388,11 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
"version": "3.12.1"
},
"subtitle": "12. Key logging",
"title": "Komputerowe wspomaganie tłumaczenia",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 5

View File

@ -44,7 +44,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 2,
"id": "familiar-terrace",
"metadata": {
"scrolled": true
@ -120,13 +120,39 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 33,
"id": "economic-southeast",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[True, False, True]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from zipfile import ZipFile\n",
"def correct_text(text):\n",
" return []"
" text = text.rstrip().split(\" \")\n",
" isCorrect = [False] * len(text)\n",
" with ZipFile('data/hunspell_pl.zip') as zipped_dictionary:\n",
" with zipped_dictionary.open('hunspell_pl.txt') as dictionary_file:\n",
" for line_bytes in dictionary_file:\n",
" bline = line_bytes.decode('utf-8').rstrip()\n",
" i = 0\n",
" for _ in range(len(text)):\n",
" if bline == text[i]:\n",
" isCorrect[i] = True\n",
" i += 1\n",
" \n",
" return isCorrect\n",
"\n",
"correct_text(\"Nadia jestr super\")"
]
},
{
@ -168,13 +194,64 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 62,
"id": "built-sally",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{'coda',\n",
" 'doda',\n",
" 'koda',\n",
" 'moda',\n",
" 'roda',\n",
" 'soda',\n",
" 'wada',\n",
" 'weda',\n",
" 'wodan',\n",
" 'wola',\n",
" 'wota',\n",
" 'woza',\n",
" 'woła',\n",
" 'wóda',\n",
" 'węda'}"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from zipfile import ZipFile\n",
"\n",
"def L1(w):\n",
" return []"
" w.lower()\n",
" word_len = len(w)\n",
" words = set()\n",
" with ZipFile('data/hunspell_pl.zip') as zipped_dictionary:\n",
" with zipped_dictionary.open('hunspell_pl.txt') as dictionary_file:\n",
" for line_bytes in dictionary_file:\n",
" cost = 0\n",
" bline = line_bytes.decode('utf-8').rstrip().lower()\n",
" if len(bline) < word_len - 1 or len(bline) > word_len + 1:\n",
" continue\n",
" elif len(bline) == word_len:\n",
" for i in range(word_len):\n",
" if cost > 1:\n",
" continue\n",
" if w[i] != bline[i]:\n",
" cost += 1\n",
" if cost == 1:\n",
" words.add(bline)\n",
" else:\n",
" if w in bline:\n",
" words.add(bline)\n",
" \n",
" return words\n",
"\n",
"L1(\"woda\")"
]
},
{
@ -187,13 +264,32 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 69,
"id": "coordinated-cooperation",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"{'jeść', 'ujeść', 'zjeść'}"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def generate_suggestions(w):\n",
" return []"
" S1 = L1(w)\n",
" S2 = set()\n",
" for word in S1:\n",
" sugestions = L1(word)\n",
" for sug in sugestions:\n",
" S2.add(sug)\n",
" return set.union(S1, S2).difference({w})\n",
"\n",
"generate_suggestions(\"teść\")"
]
}
],
@ -216,7 +312,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.12.1"
},
"subtitle": "13,14. Korekta pisowni",
"title": "Komputerowe wspomaganie tłumaczenia",

View File

@ -64,9 +64,13 @@
{
"cell_type": "raw",
"id": "academic-crest",
"metadata": {},
"metadata": {
"vscode": {
"languageId": "raw"
}
},
"source": [
"pip3 install language_tool_python"
"pip install language_tool_python"
]
},
{
@ -79,16 +83,25 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 2,
"id": "relative-anaheim",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Downloading LanguageTool 6.4: 100%|██████████| 246M/246M [00:03<00:00, 62.9MB/s] \n",
"Unzipping C:\\Users\\osins\\AppData\\Local\\Temp\\tmptnrydd9g.zip to C:\\Users\\osins\\.cache\\language_tool_python.\n",
"Downloaded https://www.languagetool.org/download/LanguageTool-6.4.zip to C:\\Users\\osins\\.cache\\language_tool_python.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Match({'ruleId': 'EN_A_VS_AN', 'message': 'Use “an” instead of a if the following word starts with a vowel sound, e.g. an article, an hour.', 'replacements': ['an'], 'offsetInContext': 16, 'context': 'A sentence with a error in the Hitchhikers Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhikers Guide tot he Galaxy'}),\n",
" Match({'ruleId': 'TOT_HE', 'message': 'Did you mean “to the”?', 'replacements': ['to the'], 'offsetInContext': 43, 'context': '... with a error in the Hitchhikers Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': 'A sentence with a error in the Hitchhikers Guide tot he Galaxy'})]\n"
"[Match({'ruleId': 'EN_A_VS_AN', 'message': 'Use “an” instead of a if the following word starts with a vowel sound, e.g. an article, an hour.', 'replacements': ['an'], 'offsetInContext': 16, 'context': 'A sentence with a error in the Hitchhikers Guide tot he ...', 'offset': 16, 'errorLength': 1, 'category': 'MISC', 'ruleIssueType': 'misspelling', 'sentence': \"A sentence with a error in the Hitchhiker's Guide tot he Galaxy\"}),\n",
" Match({'ruleId': 'TOT_HE', 'message': 'Did you mean “to the”?', 'replacements': ['to the'], 'offsetInContext': 43, 'context': '... with a error in the Hitchhikers Guide tot he Galaxy', 'offset': 50, 'errorLength': 6, 'category': 'TYPOS', 'ruleIssueType': 'misspelling', 'sentence': \"A sentence with a error in the Hitchhiker's Guide tot he Galaxy\"})]\n"
]
}
],
@ -122,13 +135,217 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 18,
"id": "sound-teaching",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"półkolonieróżne\"?', 'replacements': ['półkolonieróżne'], 'offsetInContext': 43, 'context': '...dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty po...', 'offset': 316, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '- Sky Blue Education Blog Półkolonie Kontakt O nas Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty podczas półkolonii Sky Blue?'}),\n",
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Zobacz'], 'offsetInContext': 43, 'context': '... warsztaty podczas półkolonii Sky Blue? zobacz także: Jak skutecznie wpłynąć na efekty...', 'offset': 398, 'errorLength': 6, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'zobacz także: Jak skutecznie wpłynąć na efektywność nauki u uczniów (osiem teorii motywacyjnych)?'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („bierzemy”) a drugim („planując”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wacyjnych)? Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci. Po pierwsze i najważniejsze, szukamy fo...', 'offset': 524, 'errorLength': 50, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („widział”) a drugim („jest”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe. Często rezygnujemy z różnych pomysłów, ...', 'offset': 919, 'errorLength': 35, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Dodatkowo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („planując”) a drugim („tworzymy”).', 'replacements': [], 'offsetInContext': 43, 'context': '...z będą mieć z niego frajdę. Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów. Te wymagające komputera mieszamy z krea...', 'offset': 1856, 'errorLength': 78, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („Układając”) a drugim („dbamy”).', 'replacements': [], 'offsetInContext': 43, 'context': '... z kreatywnymi i manualnymi wyzwaniami. Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.Po czwarte, por...', 'offset': 2007, 'errorLength': 63, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.'}),\n",
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Po czwarte poruszamy\".', 'replacements': ['Po czwarte poruszamy'], 'offsetInContext': 43, 'context': '...ednią dynamikę, propocję i różnorodność.Po czwarte, poruszamy się w świecie nowych technologii. Z jed...', 'offset': 2095, 'errorLength': 21, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po czwarte, poruszamy się w świecie nowych technologii.'}),\n",
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Poza rzeczamy typowo technologicznymi dodatkowo\".', 'replacements': ['Poza rzeczamy typowo technologicznymi dodatkowo'], 'offsetInContext': 43, 'context': '...o wielu aktywności, które organizujemy. Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki,...', 'offset': 2428, 'errorLength': 48, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...my, majsterkujemy i oczywiście brudzimy się. Nie ukrywamy, że oprócz bezpieczeństwa...', 'offset': 2581, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Półkolonie'], 'offsetInContext': 43, 'context': '...wodniego i wprowadzają wyjątkowy klimat.Półkolonie, które organizujemy w Oleśnicy, Kiełczo...', 'offset': 3019, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Półkolonie, które organizujemy w Oleśnicy, Kiełczowie i Wrocławiu są skierowane przede wszystkim do rodziców, którzy szukają czegoś więcej niż przechowania dzieci.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"KATEGORIEB-log\".', 'replacements': ['KATEGORIEB-log'], 'offsetInContext': 43, 'context': '...ducation Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolo...', 'offset': 3453, 'errorLength': 13, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"OFERTAP-ółkolonie\".', 'replacements': ['OFERTAP-ółkolonie'], 'offsetInContext': 43, 'context': '...KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce d...', 'offset': 3493, 'errorLength': 16, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"BEZPIECZEŃSTWOR-egulamin\".', 'replacements': ['BEZPIECZEŃSTWOR-egulamin'], 'offsetInContext': 43, 'context': '...bce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020. A...', 'offset': 3584, 'errorLength': 23, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'})]\n"
]
},
{
"data": {
"text/plain": [
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"półkolonieróżne\"?', 'replacements': ['półkolonieróżne'], 'offsetInContext': 43, 'context': '...dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty po...', 'offset': 316, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': '- Sky Blue Education Blog Półkolonie Kontakt O nas Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Programowanie Minecraft Python Tworzenie stron Języki obce Dla dzieci Dla dorosłych Półkolonie Blog O nas Kontakt PółkolonieRóżne Jak wyglądają aktywności i warsztaty podczas półkolonii Sky Blue?'}),\n",
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Zobacz'], 'offsetInContext': 43, 'context': '... warsztaty podczas półkolonii Sky Blue? zobacz także: Jak skutecznie wpłynąć na efekty...', 'offset': 398, 'errorLength': 6, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'zobacz także: Jak skutecznie wpłynąć na efektywność nauki u uczniów (osiem teorii motywacyjnych)?'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („bierzemy”) a drugim („planując”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wacyjnych)? Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci. Po pierwsze i najważniejsze, szukamy fo...', 'offset': 524, 'errorLength': 50, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Jest kilka elementów, które bierzemy pod uwagę planując aktywności dla dzieci.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („widział”) a drugim („jest”).', 'replacements': [], 'offsetInContext': 43, 'context': '...wo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe. Często rezygnujemy z różnych pomysłów, ...', 'offset': 919, 'errorLength': 35, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Dodatkowo znalezienie seansu, którego nikt nie widział jest w zasadzie niemożliwe.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („planując”) a drugim („tworzymy”).', 'replacements': [], 'offsetInContext': 43, 'context': '...z będą mieć z niego frajdę. Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów. Te wymagające komputera mieszamy z krea...', 'offset': 1856, 'errorLength': 78, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po trzecie, planując każdy dzień tworzymy odpowiedni balans pomiędzy rodzajami warsztatów.'}),\n",
" Match({'ruleId': 'ZDANIA_ZLOZONE', 'message': 'W tym zdaniu złożonym brakuje przecinka lub spójnika między jednym czasownikiem („Układając”) a drugim („dbamy”).', 'replacements': [], 'offsetInContext': 43, 'context': '... z kreatywnymi i manualnymi wyzwaniami. Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.Po czwarte, por...', 'offset': 2007, 'errorLength': 63, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Układając szczegółowy harmonogram dbamy o odpowiednią dynamikę, propocję i różnorodność.'}),\n",
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Po czwarte poruszamy\".', 'replacements': ['Po czwarte poruszamy'], 'offsetInContext': 43, 'context': '...ednią dynamikę, propocję i różnorodność.Po czwarte, poruszamy się w świecie nowych technologii. Z jed...', 'offset': 2095, 'errorLength': 21, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Po czwarte, poruszamy się w świecie nowych technologii.'}),\n",
" Match({'ruleId': 'POZA_TYM', 'message': 'Prawdopodobnie zbędny przecinek. Poprawnie: \"Poza rzeczamy typowo technologicznymi dodatkowo\".', 'replacements': ['Poza rzeczamy typowo technologicznymi dodatkowo'], 'offsetInContext': 43, 'context': '...o wielu aktywności, które organizujemy. Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki,...', 'offset': 2428, 'errorLength': 48, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...my, majsterkujemy i oczywiście brudzimy się. Nie ukrywamy, że oprócz bezpieczeństwa...', 'offset': 2581, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Poza rzeczamy typowo technologicznymi, dodatkowo eksperymentujemy, rozwiązujemy zagadki, malujemy, kleimy, wycinamy, majsterkujemy i oczywiście brudzimy się.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Półkolonie'], 'offsetInContext': 43, 'context': '...wodniego i wprowadzają wyjątkowy klimat.Półkolonie, które organizujemy w Oleśnicy, Kiełczo...', 'offset': 3019, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Półkolonie, które organizujemy w Oleśnicy, Kiełczowie i Wrocławiu są skierowane przede wszystkim do rodziców, którzy szukają czegoś więcej niż przechowania dzieci.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"KATEGORIEB-log\".', 'replacements': ['KATEGORIEB-log'], 'offsetInContext': 43, 'context': '...ducation Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolo...', 'offset': 3453, 'errorLength': 13, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"OFERTAP-ółkolonie\".', 'replacements': ['OFERTAP-ółkolonie'], 'offsetInContext': 43, 'context': '...KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce d...', 'offset': 3493, 'errorLength': 16, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'}),\n",
" Match({'ruleId': 'SKROTOWCE_BEZ_DYWIZU', 'message': 'Prawdopodobny błąd zapisu odmiany; skrótowce odmieniamy z dywizem:\"BEZPIECZEŃSTWOR-egulamin\".', 'replacements': ['BEZPIECZEŃSTWOR-egulamin'], 'offsetInContext': 43, 'context': '...bce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020. A...', 'offset': 3584, 'errorLength': 23, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'ZAPISY NA PÓŁKOLONIE 727 936 890 biuro@skyblue.education Rynek 48/111, 56-400 Oleśnica #KATEGORIEBlog Półkolonie Kontakt O nas #OFERTAPółkolonie Programowanie Minecraft Języki obce dla dorosłych Angielski dla dzieci #BEZPIECZEŃSTWORegulamin Polityka prywatności © SKY BLUE 2020.'})]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import re\n",
"import requests\n",
"from bs4 import BeautifulSoup\n",
"import language_tool_python\n",
"import pprint\n",
"\n",
"\n",
"def get_text(url):\n",
"\n",
" page = requests.get(url)\n",
" soup = BeautifulSoup(page.content, 'html.parser')\n",
"\n",
" # usunięcie elementów script i style\n",
" for script in soup([\"script\", \"style\"]):\n",
" script.extract() # usuń element\n",
"\n",
" # pobierz tekst\n",
" text = soup.get_text()\n",
"\n",
" # usuń wielokrotne białe znaki\n",
" text = re.sub(r\"\\s+\", \" \", text)\n",
"\n",
" return(text)\n",
"\n",
"\n",
"def find_errors(website_url):\n",
" return []"
" err = []\n",
" text = get_text(website_url)\n",
" tool = language_tool_python.LanguageTool('pl')\n",
" errors = tool.check(text)\n",
" for error in errors:\n",
" if error.ruleId != 'MORFOLOGIK_RULE_PL_PL':\n",
" err.append(error) \n",
" \n",
" pp.pprint(err)\n",
" return err\n",
"\n",
"find_errors('https://skyblue.education/blog/2022/05/23/jak-wygladaja-aktywnosci-i-warsztaty-podczas-polkolonii-sky-blue/') #firma w której pracowałem"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "dcf4d14b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"treśćprzejdź\"?', 'replacements': ['treśćprzejdź'], 'offsetInContext': 43, 'context': '...rzeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPr...', 'offset': 264, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"główneprzejdź\"?', 'replacements': ['główneprzejdź'], 'offsetInContext': 43, 'context': '...z tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A ...', 'offset': 285, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...o TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en p...', 'offset': 302, 'errorLength': 4, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"serwisuprzejdź\"?', 'replacements': ['serwisuprzejdź'], 'offsetInContext': 43, 'context': '...śćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wysz...', 'offset': 307, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja...', 'offset': 325, 'errorLength': 10, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['A'], 'offsetInContext': 43, 'context': '...dź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mob...', 'offset': 336, 'errorLength': 3, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'SKROTY_Z_KROPKA', 'message': 'Ten skrót piszemy z kropką: \"pl.\"', 'replacements': ['pl.'], 'offsetInContext': 43, 'context': '...a serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wyd...', 'offset': 345, 'errorLength': 2, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['Wyszukaj'], 'offsetInContext': 43, 'context': '...erwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Mat...', 'offset': 348, 'errorLength': 17, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"Wydział-Wydział\"; jeśli to miał być myślnik, to należy napisać \"Wydział — Wydział\".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '... pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydz...', 'offset': 384, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"Wydział-Wydział\"; jeśli to miał być myślnik, to należy napisać \"Wydział — Wydział\".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '...ział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wy...', 'offset': 427, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"poznaniuintranet\"?', 'replacements': ['poznaniuintranet'], 'offsetInContext': 43, 'context': '...óry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tuta...', 'offset': 1684, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"pracownikaintranet\"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...m. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandyda...', 'offset': 1701, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kandydatastudia\"?', 'replacements': ['kandydatastudia'], 'offsetInContext': 43, 'context': '...atematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie...', 'offset': 1830, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"stopniamatematykainformatykanauczanie\"?', 'replacements': ['stopniamatematykainformatykanauczanie'], 'offsetInContext': 43, 'context': '...atyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwa...', 'offset': 1848, 'errorLength': 37, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"informatykiinformatyka\"?', 'replacements': ['informatykiinformatyka'], 'offsetInContext': 43, 'context': '...matykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informa...', 'offset': 1899, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Czas'], 'offsetInContext': 43, 'context': '...formatyki Tryb studiowania: stacjonarny.Czas trwania: 3 lata (6 semestrów).Koszt: st...', 'offset': 1996, 'errorLength': 4, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Czas trwania: 3 lata (6 semestrów).'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Koszt'], 'offsetInContext': 43, 'context': '...arny.Czas trwania: 3 lata (6 semestrów).Koszt: studia stacjonarne - nieodpłatne. Z my...', 'offset': 2031, 'errorLength': 5, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Koszt: studia stacjonarne - nieodpłatne.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"stacjonarne-nieodpłatne\"; jeśli to miał być myślnik, to należy napisać \"stacjonarne — nieodpłatne\".', 'replacements': ['stacjonarne-nieodpłatne', 'stacjonarne — nieodpłatne'], 'offsetInContext': 43, 'context': '...nia: 3 lata (6 semestrów).Koszt: studia stacjonarne - nieodpłatne. Z myślą o osobach, które chcą połączyć...', 'offset': 2045, 'errorLength': 25, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Koszt: studia stacjonarne - nieodpłatne.'}),\n",
" Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: \"informatyki, by\".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia! prof. UAM d...', 'offset': 2738, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}),\n",
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Prof'], 'offsetInContext': 43, 'context': '...ormatyki by edukować kolejne pokolenia! prof. UAM dr Edyta Juskowiak Potrzebujemy dz...', 'offset': 2781, 'errorLength': 4, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'prof. UAM dr Edyta Juskowiak Potrzebujemy dziś w szkołach nauczyciela refleksyjnego praktyka, który potrafi poradzić sobie z problemem, ma do tego wiedzę oraz doświadczenie, a jeżeli jeszcze go nie posiada, na pewno wyposażony jest w umiejętności służące uruchomieniu odpowiednich procedur.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"karierajako\"?', 'replacements': ['karierajako'], 'offsetInContext': 43, 'context': '...ogiczno-pedagogiczne i interpersonalne. KarieraJako absolwent tego kierunku będziesz komple...', 'offset': 3298, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'KarieraJako absolwent tego kierunku będziesz kompleksowo przygotowany do wykonywania zawodu nauczyciela, wyróżniając się szeroką wiedzą z zakresu innowacyjnych metod i form pracy wychowawczo-dydaktycznej.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"studiówstudia\"?', 'replacements': ['studiówstudia'], 'offsetInContext': 43, 'context': '...wszystkich szczeblach edukacji. Program studiówStudia I stopnia na kierunku nauczanie matemat...', 'offset': 3726, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Program studiówStudia I stopnia na kierunku nauczanie matematyki i informatyki trwają 3 lata, czyli 6 semestrów.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Zapoznaj'], 'offsetInContext': 43, 'context': '...eniu uzyskasz tytuł zawodowy licencjata.Zapoznaj się:siatka godzin studia stacjonarne St...', 'offset': 3884, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'BRAK_SPACJI', 'message': 'Brak spacji po tym znaku interpunkcyjnym. Powinno być: \": \".', 'replacements': [': '], 'offsetInContext': 43, 'context': '...z tytuł zawodowy licencjata.Zapoznaj się:siatka godzin studia stacjonarne Stypend...', 'offset': 3896, 'errorLength': 1, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"olimpijczykówo\"?', 'replacements': ['olimpijczykówo'], 'offsetInContext': 43, 'context': '...odzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się stu...', 'offset': 3945, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Zapoznaj'], 'offsetInContext': 43, 'context': '...m lub finalistą olimpiady przedmiotowej.Zapoznaj się ze stawkami stypendium w roku akade...', 'offset': 4154, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się ze stawkami stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przeliczenia wyników na świadectwie dojrzałości.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"rekrutacjarekrutacja\"?', 'replacements': ['rekrutacjarekrutacja'], 'offsetInContext': 43, 'context': '...stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przel...', 'offset': 4219, 'errorLength': 20, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Zapoznaj się ze stawkami stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przeliczenia wyników na świadectwie dojrzałości.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Laureaci'], 'offsetInContext': 43, 'context': '...enia wyników na świadectwie dojrzałości.Laureaci ogólnopolskich olimpiad i konkursów otr...', 'offset': 4322, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Laureaci ogólnopolskich olimpiad i konkursów otrzymują maksymalną liczbę punktów w postępowaniu kwalifikacyjnym.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Szczegółowe'], 'offsetInContext': 43, 'context': '...jnym. Poznaj listę olimpiad i konkursów.Szczegółowe zasady rekrutacji.Rekrutacja krok po kr...', 'offset': 4469, 'errorLength': 11, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Szczegółowe zasady rekrutacji.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Rekrutacja'], 'offsetInContext': 43, 'context': '...konkursów.Szczegółowe zasady rekrutacji.Rekrutacja krok po krokuUtwórz konto w Systemie In...', 'offset': 4499, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"krokuutwórz\"?', 'replacements': ['krokuutwórz'], 'offsetInContext': 43, 'context': '...we zasady rekrutacji.Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej Rekrutacj...', 'offset': 4518, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"rekrutacjizapisz\"?', 'replacements': ['rekrutacjizapisz'], 'offsetInContext': 43, 'context': '...okuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupe...', 'offset': 4560, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kierunekopłać\"?', 'replacements': ['kierunekopłać'], 'offsetInContext': 43, 'context': '...netowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z ...', 'offset': 4592, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"zapisuzupełnij\"?', 'replacements': ['zapisuzupełnij'], 'offsetInContext': 43, 'context': '...acjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu matura...', 'offset': 4606, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"maturalnegowypełnij\"?', 'replacements': ['maturalnegowypełnij'], 'offsetInContext': 43, 'context': '...pełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane d...', 'offset': 4654, 'errorLength': 19, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"zdjęciezłóż\"?', 'replacements': ['zdjęciezłóż'], 'offsetInContext': 43, 'context': '...nu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postęp...', 'offset': 4691, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"dokumentysprawdź\"?', 'replacements': ['dokumentysprawdź'], 'offsetInContext': 43, 'context': '...j ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZap...', 'offset': 4712, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kwalifikacyjnegozapisz\"?', 'replacements': ['kwalifikacyjnegozapisz'], 'offsetInContext': 43, 'context': '...ne dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do n...', 'offset': 4749, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...iki postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do nas n...', 'offset': 4772, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Chcesz'], 'offsetInContext': 43, 'context': '...postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do nas na adres...', 'offset': 4776, 'errorLength': 6, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Chcesz wiedzieć więcej?'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"tutajfacebookfacebookyoutubeyoutuberssrssbipbip\"?', 'replacements': ['tutajfacebookfacebookyoutubeyoutuberssrssbipbip'], 'offsetInContext': 43, 'context': '...krutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwers...', 'offset': 4865, 'errorLength': 47, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"informatykiuniwersytet\"?', 'replacements': ['informatykiuniwersytet'], 'offsetInContext': 43, 'context': '...ouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Un...', 'offset': 4934, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"wydziałżycie\"?', 'replacements': ['wydziałżycie'], 'offsetInContext': 43, 'context': '...x +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownika...', 'offset': 5096, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"naukowedla\"?', 'replacements': ['naukowedla'], 'offsetInContext': 43, 'context': '...5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet st...', 'offset': 5109, 'errorLength': 10, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kandydataintranet\"?', 'replacements': ['kandydataintranet'], 'offsetInContext': 43, 'context': '... wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisu...', 'offset': 5120, 'errorLength': 17, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"pracownikaintranet\"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...działŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweD...', 'offset': 5138, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"studentamapa\"?', 'replacements': ['studentamapa'], 'offsetInContext': 43, 'context': '...la KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dos...', 'offset': 5157, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"serwisuzapytania\"?', 'replacements': ['serwisuzapytania'], 'offsetInContext': 43, 'context': '...ntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKo...', 'offset': 5170, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"ofertowedeklaracja\"?', 'replacements': ['ofertowedeklaracja'], 'offsetInContext': 43, 'context': '...aIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza j...', 'offset': 5187, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"dostępnościkontaktkontakt\"?', 'replacements': ['dostępnościkontaktkontakt'], 'offsetInContext': 43, 'context': '...apa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersyt...', 'offset': 5206, 'errorLength': 25, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'})]\n"
]
},
{
"data": {
"text/plain": [
"[Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"treśćprzejdź\"?', 'replacements': ['treśćprzejdź'], 'offsetInContext': 43, 'context': '...rzeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPr...', 'offset': 264, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"główneprzejdź\"?', 'replacements': ['główneprzejdź'], 'offsetInContext': 43, 'context': '...z tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A ...', 'offset': 285, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...o TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en p...', 'offset': 302, 'errorLength': 4, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"serwisuprzejdź\"?', 'replacements': ['serwisuprzejdź'], 'offsetInContext': 43, 'context': '...śćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wysz...', 'offset': 307, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'PREP_CASUS', 'message': 'Przyimek „do” jest używany z dopełniaczem.', 'replacements': [], 'offsetInContext': 43, 'context': '...głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja...', 'offset': 325, 'errorLength': 10, 'category': 'SYNTAX', 'ruleIssueType': 'grammar', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['A'], 'offsetInContext': 43, 'context': '...dź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mob...', 'offset': 336, 'errorLength': 3, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'SKROTY_Z_KROPKA', 'message': 'Ten skrót piszemy z kropką: \"pl.\"', 'replacements': ['pl.'], 'offsetInContext': 43, 'context': '...a serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wyd...', 'offset': 345, 'errorLength': 2, 'category': 'SPELLING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'WORD_REPEAT_RULE', 'message': 'Prawdopodobna literówka: powtórzony wyraz', 'replacements': ['Wyszukaj'], 'offsetInContext': 43, 'context': '...erwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Mat...', 'offset': 348, 'errorLength': 17, 'category': 'MISC', 'ruleIssueType': 'duplication', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"Wydział-Wydział\"; jeśli to miał być myślnik, to należy napisać \"Wydział — Wydział\".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '... pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydz...', 'offset': 384, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"Wydział-Wydział\"; jeśli to miał być myślnik, to należy napisać \"Wydział — Wydział\".', 'replacements': ['Wydział-Wydział', 'Wydział — Wydział'], 'offsetInContext': 43, 'context': '...ział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wy...', 'offset': 427, 'errorLength': 17, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"poznaniuintranet\"?', 'replacements': ['poznaniuintranet'], 'offsetInContext': 43, 'context': '...óry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tuta...', 'offset': 1684, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"pracownikaintranet\"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...m. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandyda...', 'offset': 1701, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kandydatastudia\"?', 'replacements': ['kandydatastudia'], 'offsetInContext': 43, 'context': '...atematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie...', 'offset': 1830, 'errorLength': 15, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"stopniamatematykainformatykanauczanie\"?', 'replacements': ['stopniamatematykainformatykanauczanie'], 'offsetInContext': 43, 'context': '...atyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwa...', 'offset': 1848, 'errorLength': 37, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"informatykiinformatyka\"?', 'replacements': ['informatykiinformatyka'], 'offsetInContext': 43, 'context': '...matykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informa...', 'offset': 1899, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Nauczanie matematyki i informatyki | Wydział Matematyki i Informatyki Brak obsługi JavaScript Do pełnej funkcjonalności strony potrzebujesz włączonej obsługi skryptów. Instrukcje, które pozwolą Ci włączyć skrypty w Twojej przeglądarce znajdziesz tutaj Przejdź do TreśćPrzejdź do Menu głównePrzejdź do Mapa serwisuPrzejdź do Dostępność A A A en pl Wyszukaj Wyszukaj Nawigacja mobilna Wydział - Wydział Matematyki i Informatyki Wydział - Wydział Matematyki i Informatyki NO XML TR1A Wydział Pokaż menu szczegółowe Powrót do głównego menu O wydziale Władze wydziału Struktura wydziału Rada Naukowa Dyscyplin Rady programowe Pracownicy Projekty Historia Biblioteka wydziałowa Informator WMI w mediach Wybory 2024 Kontakt Życie naukowe Pokaż menu szczegółowe Powrót do głównego menu Awanse naukowe Wykłady i seminaria Cykle wykładów Towarzystwa i redakcje Konferencje Doktorzy honoris causa Profesorowie Członkowie Akademii Konkurs im. Edyty Szymańskiej Dla Kandydata Pokaż menu szczegółowe Powrót do głównego menu Rekrutacja krok po kroku Studia I stopnia Studia II stopnia Studia doktoranckie Studia podyplomowe Akademia CISCO Samorząd studencki Koła i organizacje studenckie Uniwersytet Otwarty Dla Studenta Dla Pracownika Dla szkół Pokaż menu szczegółowe Powrót do głównego menu Edukacja matematyczno-informatyczna Współpraca ze szkołami Współpraca Pokaż menu szczegółowe Powrót do głównego menu Współpraca z biznesem Współpraca ze szkołami Targi pracy i staży branży IT Oferty pracy 30-LECIE Pokaż menu szczegółowe Powrót do głównego menu Harmonogram Wykłady naukowe z okazji 30-lecia WMI Wydarzenia KWUMI Galeria Zjazd Absolwentów powrót do góry Uniwersytet im. Adama Mickiewicza w PoznaniuIntranet pracownikaIntranet studenta Jesteś tutaj Start Dla Kandydata Studia I stopnia Nauczanie matematyki i informatyki Menu boczne Dla KandydataStudia I stopniaMatematykaInformatykaNauczanie matematyki i informatykiInformatyka kwantowa Nauczanie matematyki i informatyki Tryb studiowania: stacjonarny.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Czas'], 'offsetInContext': 43, 'context': '...formatyki Tryb studiowania: stacjonarny.Czas trwania: 3 lata (6 semestrów).Koszt: st...', 'offset': 1996, 'errorLength': 4, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Czas trwania: 3 lata (6 semestrów).'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Koszt'], 'offsetInContext': 43, 'context': '...arny.Czas trwania: 3 lata (6 semestrów).Koszt: studia stacjonarne - nieodpłatne. Z my...', 'offset': 2031, 'errorLength': 5, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Koszt: studia stacjonarne - nieodpłatne.'}),\n",
" Match({'ruleId': 'DYWIZ', 'message': 'Spacje wokół dywizu (w przeciwieństwie do myślnika) są zbędne: \"stacjonarne-nieodpłatne\"; jeśli to miał być myślnik, to należy napisać \"stacjonarne — nieodpłatne\".', 'replacements': ['stacjonarne-nieodpłatne', 'stacjonarne — nieodpłatne'], 'offsetInContext': 43, 'context': '...nia: 3 lata (6 semestrów).Koszt: studia stacjonarne - nieodpłatne. Z myślą o osobach, które chcą połączyć...', 'offset': 2045, 'errorLength': 25, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'typographical', 'sentence': 'Koszt: studia stacjonarne - nieodpłatne.'}),\n",
" Match({'ruleId': 'BRAK_PRZECINKA_ZEBY', 'message': 'Przed tym spójnikiem prawdopodobnie należy postawić przecinek: \"informatyki, by\".', 'replacements': ['informatyki, by'], 'offsetInContext': 43, 'context': '...Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia! prof. UAM d...', 'offset': 2738, 'errorLength': 14, 'category': 'PUNCTUATION', 'ruleIssueType': 'typographical', 'sentence': 'Wybierz kierunek Nauczanie matematyki i informatyki by edukować kolejne pokolenia!'}),\n",
" Match({'ruleId': 'UPPERCASE_SENTENCE_START', 'message': 'To zdanie nie zaczyna się wielką literą', 'replacements': ['Prof'], 'offsetInContext': 43, 'context': '...ormatyki by edukować kolejne pokolenia! prof. UAM dr Edyta Juskowiak Potrzebujemy dz...', 'offset': 2781, 'errorLength': 4, 'category': 'CASING', 'ruleIssueType': 'typographical', 'sentence': 'prof. UAM dr Edyta Juskowiak Potrzebujemy dziś w szkołach nauczyciela refleksyjnego praktyka, który potrafi poradzić sobie z problemem, ma do tego wiedzę oraz doświadczenie, a jeżeli jeszcze go nie posiada, na pewno wyposażony jest w umiejętności służące uruchomieniu odpowiednich procedur.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"karierajako\"?', 'replacements': ['karierajako'], 'offsetInContext': 43, 'context': '...ogiczno-pedagogiczne i interpersonalne. KarieraJako absolwent tego kierunku będziesz komple...', 'offset': 3298, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'KarieraJako absolwent tego kierunku będziesz kompleksowo przygotowany do wykonywania zawodu nauczyciela, wyróżniając się szeroką wiedzą z zakresu innowacyjnych metod i form pracy wychowawczo-dydaktycznej.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"studiówstudia\"?', 'replacements': ['studiówstudia'], 'offsetInContext': 43, 'context': '...wszystkich szczeblach edukacji. Program studiówStudia I stopnia na kierunku nauczanie matemat...', 'offset': 3726, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Program studiówStudia I stopnia na kierunku nauczanie matematyki i informatyki trwają 3 lata, czyli 6 semestrów.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Zapoznaj'], 'offsetInContext': 43, 'context': '...eniu uzyskasz tytuł zawodowy licencjata.Zapoznaj się:siatka godzin studia stacjonarne St...', 'offset': 3884, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'BRAK_SPACJI', 'message': 'Brak spacji po tym znaku interpunkcyjnym. Powinno być: \": \".', 'replacements': [': '], 'offsetInContext': 43, 'context': '...z tytuł zawodowy licencjata.Zapoznaj się:siatka godzin studia stacjonarne Stypend...', 'offset': 3896, 'errorLength': 1, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"olimpijczykówo\"?', 'replacements': ['olimpijczykówo'], 'offsetInContext': 43, 'context': '...odzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się stu...', 'offset': 3945, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Zapoznaj się:siatka godzin studia stacjonarne Stypendium dla olimpijczykówO stypendium rektora może ubiegać się student przyjęty na pierwszy rok studiów pierwszego stopnia, w roku złożenia egzaminu maturalnego, który jest laureatem lub finalistą olimpiady przedmiotowej.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Zapoznaj'], 'offsetInContext': 43, 'context': '...m lub finalistą olimpiady przedmiotowej.Zapoznaj się ze stawkami stypendium w roku akade...', 'offset': 4154, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Zapoznaj się ze stawkami stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przeliczenia wyników na świadectwie dojrzałości.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"rekrutacjarekrutacja\"?', 'replacements': ['rekrutacjarekrutacja'], 'offsetInContext': 43, 'context': '...stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przel...', 'offset': 4219, 'errorLength': 20, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Zapoznaj się ze stawkami stypendium w roku akademickim 2023/2024 RekrutacjaRekrutacja na studia odbywa się na podstawie przeliczenia wyników na świadectwie dojrzałości.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Laureaci'], 'offsetInContext': 43, 'context': '...enia wyników na świadectwie dojrzałości.Laureaci ogólnopolskich olimpiad i konkursów otr...', 'offset': 4322, 'errorLength': 8, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Laureaci ogólnopolskich olimpiad i konkursów otrzymują maksymalną liczbę punktów w postępowaniu kwalifikacyjnym.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Szczegółowe'], 'offsetInContext': 43, 'context': '...jnym. Poznaj listę olimpiad i konkursów.Szczegółowe zasady rekrutacji.Rekrutacja krok po kr...', 'offset': 4469, 'errorLength': 11, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Szczegółowe zasady rekrutacji.'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Rekrutacja'], 'offsetInContext': 43, 'context': '...konkursów.Szczegółowe zasady rekrutacji.Rekrutacja krok po krokuUtwórz konto w Systemie In...', 'offset': 4499, 'errorLength': 10, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"krokuutwórz\"?', 'replacements': ['krokuutwórz'], 'offsetInContext': 43, 'context': '...we zasady rekrutacji.Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej Rekrutacj...', 'offset': 4518, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"rekrutacjizapisz\"?', 'replacements': ['rekrutacjizapisz'], 'offsetInContext': 43, 'context': '...okuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupe...', 'offset': 4560, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kierunekopłać\"?', 'replacements': ['kierunekopłać'], 'offsetInContext': 43, 'context': '...netowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z ...', 'offset': 4592, 'errorLength': 13, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"zapisuzupełnij\"?', 'replacements': ['zapisuzupełnij'], 'offsetInContext': 43, 'context': '...acjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu matura...', 'offset': 4606, 'errorLength': 14, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"maturalnegowypełnij\"?', 'replacements': ['maturalnegowypełnij'], 'offsetInContext': 43, 'context': '...pełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane d...', 'offset': 4654, 'errorLength': 19, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"zdjęciezłóż\"?', 'replacements': ['zdjęciezłóż'], 'offsetInContext': 43, 'context': '...nu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postęp...', 'offset': 4691, 'errorLength': 11, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"dokumentysprawdź\"?', 'replacements': ['dokumentysprawdź'], 'offsetInContext': 43, 'context': '...j ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZap...', 'offset': 4712, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kwalifikacyjnegozapisz\"?', 'replacements': ['kwalifikacyjnegozapisz'], 'offsetInContext': 43, 'context': '...ne dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do n...', 'offset': 4749, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'SIE_SENT_END', 'message': 'Zaimek „się” nie powinien znajdować się na końcu zdania.', 'replacements': [], 'offsetInContext': 43, 'context': '...iki postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do nas n...', 'offset': 4772, 'errorLength': 3, 'category': 'WORD_ORDER', 'ruleIssueType': 'style', 'sentence': 'Rekrutacja krok po krokuUtwórz konto w Systemie Internetowej RekrutacjiZapisz się na wybrany kierunekOpłać zapisUzupełnij informacje o wynikach z egzaminu maturalnegoWypełnij ankietę i załącz zdjęcieZłóż wymagane dokumentySprawdź wyniki postępowania kwalifikacyjnegoZapisz się!'}),\n",
" Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Dodaj spację między zdaniami', 'replacements': [' Chcesz'], 'offsetInContext': 43, 'context': '...postępowania kwalifikacyjnegoZapisz się!Chcesz wiedzieć więcej? Napisz do nas na adres...', 'offset': 4776, 'errorLength': 6, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'Chcesz wiedzieć więcej?'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"tutajfacebookfacebookyoutubeyoutuberssrssbipbip\"?', 'replacements': ['tutajfacebookfacebookyoutubeyoutuberssrssbipbip'], 'offsetInContext': 43, 'context': '...krutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwers...', 'offset': 4865, 'errorLength': 47, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"informatykiuniwersytet\"?', 'replacements': ['informatykiuniwersytet'], 'offsetInContext': 43, 'context': '...ouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Un...', 'offset': 4934, 'errorLength': 22, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"wydziałżycie\"?', 'replacements': ['wydziałżycie'], 'offsetInContext': 43, 'context': '...x +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownika...', 'offset': 5096, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"naukowedla\"?', 'replacements': ['naukowedla'], 'offsetInContext': 43, 'context': '...5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet st...', 'offset': 5109, 'errorLength': 10, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"kandydataintranet\"?', 'replacements': ['kandydataintranet'], 'offsetInContext': 43, 'context': '... wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisu...', 'offset': 5120, 'errorLength': 17, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"pracownikaintranet\"?', 'replacements': ['pracownikaintranet'], 'offsetInContext': 43, 'context': '...działŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweD...', 'offset': 5138, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"studentamapa\"?', 'replacements': ['studentamapa'], 'offsetInContext': 43, 'context': '...la KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dos...', 'offset': 5157, 'errorLength': 12, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"serwisuzapytania\"?', 'replacements': ['serwisuzapytania'], 'offsetInContext': 43, 'context': '...ntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKo...', 'offset': 5170, 'errorLength': 16, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"ofertowedeklaracja\"?', 'replacements': ['ofertowedeklaracja'], 'offsetInContext': 43, 'context': '...aIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza j...', 'offset': 5187, 'errorLength': 18, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'}),\n",
" Match({'ruleId': 'NIETYPOWA_KOMBINACJA_DUZYCH_I_MALYCH_LITER', 'message': 'Nietypowa kombinacja małych i dużych liter. Czy nie powinno być: \"dostępnościkontaktkontakt\"?', 'replacements': ['dostępnościkontaktkontakt'], 'offsetInContext': 43, 'context': '...apa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersyt...', 'offset': 5206, 'errorLength': 25, 'category': 'CASING', 'ruleIssueType': 'misspelling', 'sentence': 'Napisz do nas na adres rekrutacja@wmi.amu.edu.pl, Znajdziesz nas tutajFacebookFacebookYouTubeYouTubeRSSrssBIPbip Wydział Matematyki i InformatykiUniwersytet im. Adama Mickiewicza w Poznaniu ul. Uniwersytetu Poznańskiego 461-614 Poznańtel. +48 61 829 5308fax +48 61 829 5315e-mail: wmi@amu.edu.pl WydziałŻycie naukoweDla KandydataIntranet pracownikaIntranet studentaMapa serwisuZapytania ofertoweDeklaracja dostępnościKontaktKontakt do tłumacza języka migowego © Uniwersytet im. Adama Mickiewicza w Poznaniu Ten serwis używa plików \"cookies\" zgodnie z Polityka prywatności.'})]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"find_errors('https://wmi.amu.edu.pl/dla-kandydata/studia-i-stopnia/nauczanie-matematyki-i-informatyki')"
]
},
{
@ -141,13 +358,89 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 44,
"id": "cb2e1d12",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'kom tag tekst link.'"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def x(text):\n",
" \n",
" text = re.sub(r'<[^>]+>', '', text)\n",
" text = re.sub(r'@[a-z]+', '', text)\n",
" text = re.sub(r'\\*', '', text)\n",
" text = re.sub(r'\\\\', '', text)\n",
" text = re.sub(r' \\s+', ' ', text)\n",
" return text.strip()\n",
"\n",
"delete_tags_and_params('* \\\\kom <p>tag <b>tekst</b> @parametr <a href=\"#\">link</a>.</p>')"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "settled-armor",
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[Match({'ruleId': 'SENTENCE_WHITESPACE', 'message': 'Add a space between sentences.', 'replacements': [' BeanOps'], 'offsetInContext': 43, 'context': '... will be generated which Is named [...]BeanOps where [...] is the name of the class. I...', 'offset': 183, 'errorLength': 7, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': 'BeanOps where [...] is the name of the class.'}),\n",
" Match({'ruleId': 'COMMA_PARENTHESIS_WHITESPACE', 'message': 'Dont put a space after the opening parenthesis.', 'replacements': ['{'], 'offsetInContext': 43, 'context': '...tentionPolicy.SOURCE) public MagicBean { / Whether to generate an all args stat...', 'offset': 1071, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '/\\n @Target({ElementType.TYPE})\\n @Retention(RetentionPolicy.SOURCE)\\n public MagicBean {\\n /\\n Whether to generate an all args static factory method.'}),\n",
" Match({'ruleId': 'A_NNS', 'message': 'The plural noun “equals” cannot be used with the article “an”. Did you mean “an equal” or “equals”?', 'replacements': ['an equal', 'equals'], 'offsetInContext': 43, 'context': '... default false; / Whether to generate an equals and hash code implementation. / boole...', 'offset': 1206, 'errorLength': 9, 'category': 'GRAMMAR', 'ruleIssueType': 'grammar', 'sentence': '/\\n boolean allArgsStaticFactory() default false;\\n /\\n Whether to generate an equals and hash code implementation.'}),\n",
" Match({'ruleId': 'COMMA_PARENTHESIS_WHITESPACE', 'message': 'Dont put a space before the closing parenthesis.', 'replacements': ['}'], 'offsetInContext': 43, 'context': '.../ Class extend() default Object.class; }', 'offset': 1598, 'errorLength': 2, 'category': 'TYPOGRAPHY', 'ruleIssueType': 'whitespace', 'sentence': '/\\n Class extend() default Object.class;\\n }'})]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import re\n",
"import language_tool_python\n",
" \n",
"def correct_java_grammar(java_file_path):\n",
" return []"
" tool = language_tool_python.LanguageTool('en-US')\n",
" lineToAnalyze = \"\"\n",
" with open(java_file_path, 'r') as file:\n",
" javadoc_mode = False\n",
" for line in file:\n",
" line.strip()\n",
" #print(line)\n",
" if line.startswith('//'):\n",
" lineToAnalyze += line + \" \"\n",
" elif line.startswith('/*') and line.endswith('*/'):\n",
" lineToAnalyze += line + \" \"\n",
" elif line.startswith('/*') and not line.endswith('*/'):\n",
" lineToAnalyze += line + \" \"\n",
" javadoc_mode = True\n",
" \n",
" elif javadoc_mode:\n",
" if line.endswith('*/'):\n",
" javadoc_mode = False\n",
" lineToAnalyze += line + \" \"\n",
" else:\n",
" lineToAnalyze += line + \" \"\n",
"\n",
" #print(x(lineToAnalyze))\n",
" errors = tool.check(x(lineToAnalyze))\n",
" \n",
"\n",
" return [errors for errors in errors if errors.ruleId != 'MORFOLOGIK_RULE_EN_US']\n",
"\n",
"correct_java_grammar(\"./class.java\") # kod przekopiowany z \n",
"# https://github.com/bowbahdoe/magic-bean/blob/main/src/main/java/dev/mccue/magicbean/MagicBean.java"
]
}
],
@ -155,7 +448,7 @@
"author": "Rafał Jaworski",
"email": "rjawor@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@ -170,7 +463,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.12.1"
},
"subtitle": "15. Korekta gramatyczna",
"title": "Komputerowe wspomaganie tłumaczenia",

254
lab/output_xml_file.xml Normal file
View File

@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file datatype="plaintext" original="self" source-language="pl" target-language="en">
<header>
<sxmd:metadata xmlns:sxmd="urn:x-sap:mlt:xliff12:metadata:1.0" xmlns="urn:x-sap:mlt:tsmetadata:1.0">
<developer>Krystian Osinski</developer>
</sxmd:metadata>
</header>
<body><trans-unit>
<source>Dostęp do zawartości strony (kliknąć na "Wejście")</source>
<target>Access to page content (press "Enter")</target>
</trans-unit><trans-unit>
<source>Bezpośredni dostęp do menu z językami (wciśnij „Enter”)</source>
<target>Direct access to language menu (press "Enter")</target>
</trans-unit><trans-unit>
<source>Bezpośredni dostęp do menu wyszukiwania (wciśnij „Enter”)</source>
<target>Direct access to search menu (press "Enter")</target>
</trans-unit><trans-unit>
<source>Zmiana języka przeglądania BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska</source>
<target>Change the navigation language BG - български ES - español CS - čeština DA - dansk DE - Deutsch ET - eesti keel EL - ελληνικά EN - English FR - français GA - Gaeilge HR - hrvatski IT - italiano LV - latviešu valoda LT - lietuvių kalba HU - magyar MT - Malti NL - Nederlands PL - polski PT - português RO - română SK - slovenčina SL - slovenščina FI - suomi SV - svenska</target>
</trans-unit><trans-unit>
<source>Zmiana języka przeglądania</source>
<target>Change the navigation language</target>
</trans-unit><trans-unit>
<source>PL - polski</source>
<target>EN - English</target>
</trans-unit><trans-unit>
<source>BG - български</source>
<target>BG - български</target>
</trans-unit><trans-unit>
<source>ES - español</source>
<target>ES - español</target>
</trans-unit><trans-unit>
<source>CS - čeština</source>
<target>CS - čeština</target>
</trans-unit><trans-unit>
<source>DA - dansk</source>
<target>DA - dansk</target>
</trans-unit><trans-unit>
<source>DE - Deutsch</source>
<target>DE - Deutsch</target>
</trans-unit><trans-unit>
<source>ET - eesti keel</source>
<target>ET - eesti keel</target>
</trans-unit><trans-unit>
<source>EL - ελληνικά EN - English</source>
<target>EL - ελληνικά EN - English</target>
</trans-unit><trans-unit>
<source>FR - français</source>
<target>FR - français</target>
</trans-unit><trans-unit>
<source>GA - Gaeilge</source>
<target>GA - Gaeilge</target>
</trans-unit><trans-unit>
<source>HR - hrvatski</source>
<target>HR - hrvatski</target>
</trans-unit><trans-unit>
<source>IT - italiano</source>
<target>IT - italiano</target>
</trans-unit><trans-unit>
<source>LV - latviešu valoda</source>
<target>LV - latviešu valoda</target>
</trans-unit><trans-unit>
<source>LT - lietuvių kalba</source>
<target>LT - lietuvių kalba</target>
</trans-unit><trans-unit>
<source>HU - magyar</source>
<target>HU - magyar</target>
</trans-unit><trans-unit>
<source>MT - Malti</source>
<target>MT - Malti</target>
</trans-unit><trans-unit>
<source>NL - Nederlands PL - polski</source>
<target>NL - Nederlands PL - polski</target>
</trans-unit><trans-unit>
<source>PT - português</source>
<target>PT - português</target>
</trans-unit><trans-unit>
<source>RO - română</source>
<target>RO - română</target>
</trans-unit><trans-unit>
<source>SK - slovenčina</source>
<target>SK - slovenčina</target>
</trans-unit><trans-unit>
<source>SL - slovenščina</source>
<target>SL - slovenščina</target>
</trans-unit><trans-unit>
<source>FI - suomi</source>
<target>FI - suomi</target>
</trans-unit><trans-unit>
<source>SV - svenska</source>
<target>SV - svenska</target>
</trans-unit><trans-unit>
<source>Zobacz inne strony internetowe Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory Inne strony internetowe Media Strona przewodniczącego Sekretariat Generalny Think tank EP Newshub Do Waszych usług Wizyty Legislative train Zamówienia i dotacje Rejestr Portal otwartych danych Biura kontaktowe</source>
<target>View other websites News Topics MEPs About Parliament Plenary Committees Delegations Elections Other websites Multimedia centre Presidents website Secretariat-General Think tank EP Newshub At your service Visits Legislative train Contracts and Grants Register Open data portal Liaison offices</target>
</trans-unit><trans-unit>
<source>O Parlamencie Parlament Europejski</source>
<target>About Parliament European Parliament</target>
</trans-unit><trans-unit>
<source>Menu Strona główna Uprawnienia i procedury Strona główna Uprawnienia legislacyjne Uprawnienia budżetowe Uprawnienia kontrolne Parlamenty krajowe Traktat z Lizbony</source>
<target>Menu Home Powers and procedures Home Legislative powers Budgetary powers Supervisory powers National parliaments The Lisbon Treaty</target>
</trans-unit><trans-unit>
<source>Organizacja i praca Strona główna Organizacja Wszystko o sesjach plenarnych Budżet Parlamentu Wielojęzyczność w Parlamencie Europejskim Sekretariat Generalny Ślad ekologiczny</source>
<target>Organisation and rules Home Organisation How Plenary works Parliaments budget Multilingualism Secretariat Ecological footprint</target>
</trans-unit><trans-unit>
<source>Demokracja i prawa człowieka Strona główna Prawa podstawowe w UE Prawa człowieka poza UE Demokracja w skali światowej</source>
<target>Democracy and human rights Home Fundamental rights in the EU Human rights outside the EU Global democracy</target>
</trans-unit><trans-unit>
<source>Historia Strona główna PE i traktaty Archiwa Historyczne</source>
<target>In the past Home The Parliament and the treaties Historical archives</target>
</trans-unit><trans-unit>
<source>Tekst łatwy do czytania</source>
<target>Easy-to-read</target>
</trans-unit><trans-unit>
<source>Dostęp do pola wyszukiwania Rozpocznij wyszukiwanie</source>
<target>Access to search field Launch the search</target>
</trans-unit><trans-unit>
<source>Parlament Europejski</source>
<target>European Parliament</target>
</trans-unit><trans-unit>
<source>Demokracja i prawa człowieka</source>
<target>Democracy and human rights</target>
</trans-unit><trans-unit>
<source>Parlament Europejski zyskał sobie opinię zaangażowanego obrońcy praw podstawowych i demokracji.</source>
<target>The European Parliament has earned a reputation as a dedicated sponsor of peoples basic rights and of democracy.</target>
</trans-unit><trans-unit>
<source>W jedynej instytucji UE, której członkowie są wyłaniani w wyborach bezpośrednich, posłowie prowadzą walkę z nowymi i trwającymi od dawna atakami na podstawowe wolności.</source>
<target>Within the EUs only directly-elected institution, MEPs fight against new and old attacks on essential liberties.</target>
</trans-unit><trans-unit>
<source>Ochrona praw podstawowych w Unii</source>
<target>Protecting fundamental rights in the EU</target>
</trans-unit><trans-unit>
<source>Prawa podstawowe przysługują wszystkim ludziom w UE bez względu na ich status lub pochodzenie.</source>
<target>Fundamental rights apply to all people in the EU, no matter their status or origin.</target>
</trans-unit><trans-unit>
<source>Niektóre z tych swobód są równie stare jak Europa: prawo do życia i wolności, swoboda myśli i wypowiedzi.</source>
<target>Some of these freedoms are as old as Europe: life and liberty, thought and expression.</target>
</trans-unit><trans-unit>
<source>Inne trzeba jednak ponownie zdefiniować, by iść z duchem czasu.</source>
<target>But others have had to be redefined to keep pace with the times.</target>
</trans-unit><trans-unit>
<source>Ochrona danych osobowych lub zakaz klonowania ludzi nie były przedmiotem troski pierwszych posłów do PE wybranych blisko czterdzieści lat temu.</source>
<target>Protecting personal data or prohibiting human cloning were far from the minds of the first elected MEPs, some four decades ago.</target>
</trans-unit><trans-unit>
<source>Przejdź do tej strony : Ochrona praw podstawowych w Unii</source>
<target>Go to the page : Protecting fundamental rights in the EU</target>
</trans-unit><trans-unit>
<source>Obrona praw człowieka poza UE</source>
<target>Defending human rights beyond the EU</target>
</trans-unit><trans-unit>
<source>Parlament Europejski uważa, że podstawowe prawa człowieka obowiązują również poza granicami UE.</source>
<target>The European Parliament does not believe that peoples basic rights end at the EUs borders.</target>
</trans-unit><trans-unit>
<source>Posłowie do PE regularnie zabierają głos, indywidualnie lub wspólnie, w sprawie kwestii związanych z prawami człowieka w państwach spoza UE.</source>
<target>MEPs regularly speak out individually and in unison about human rights issues in non-EU countries.</target>
</trans-unit><trans-unit>
<source>Z uwagi na to, że wspomniane prawa są uznawane za powszechne, reakcja jest taka sama, niezależnie od tego, czy do naruszenia dochodzi w Mjanmie/Birmie, oddalonej o 8000 km, czy na Białorusi, która graniczy z UE.</source>
<target>Because these rights are considered universal, the response is the same whether the violation takes place in Myanmar/Burma, some 8 000 kilometres away, or in Belarus, which borders on the Union.</target>
</trans-unit><trans-unit>
<source>Walka o prawa człowieka przywiodła także do Parlamentu Europejskiego wielu wybitnych obrońców tych praw.</source>
<target>The battle for human rights has also brought many prominent defenders to the European Parliament.</target>
</trans-unit><trans-unit>
<source>Malala Yousafzai, pakistańska działaczka walcząca o prawo dzieci do nauki, jazydzkie kobiety więzione przez Państwo Islamskie w Iraku, lekarz z Demokratycznej Republiki Konga, więźniowie polityczni z Ameryki Łacińskiej: wszyscy zabrali głos w Parlamencie.</source>
<target>Malala Yousafzai, the Pakistani campaigner for childrens education, Yazidi women who had been prisoners of the Islamic State in Iraq, a doctor from the Democratic Republic of the Congo, political prisoners from Latin America: all have found a voice on the European Parliaments stage.</target>
</trans-unit><trans-unit>
<source>Przejdź do tej strony : Obrona praw człowieka poza UE</source>
<target>Go to the page : Defending human rights beyond the EU</target>
</trans-unit><trans-unit>
<source>Wspieranie demokracji na całym świecie</source>
<target>Supporting democracy around the globe</target>
</trans-unit><trans-unit>
<source>Wspieranie demokracji jest kluczowym elementem tych działań wyrażonym w Powszechnej deklaracji praw człowieka: „Wola ludu jest podstawą władzy rządu.”</source>
<target>Sustaining democracy is a key element of this effort, spelled out in the Universal Declaration of Human Rights: “ The will of the people shall be the basis of the authority of government .”</target>
</trans-unit><trans-unit>
<source>Posłowie do PE bronią systemów demokratycznych na całym świecie.</source>
<target>MEPs defend democratic systems around the globe.</target>
</trans-unit><trans-unit>
<source>Niektórzy z nich podróżują w odległe regiony, by obserwować wybory, prowadzić mediacje w konfliktach i wspierać nowo powstałe parlamenty.</source>
<target>Some have travelled far to observe elections, mediate in conflicts and support fledgling parliaments.</target>
</trans-unit><trans-unit>
<source>Akty założycielskie UE wymagają, by Unia jako całość broniła zasad demokratycznych w ramach swojej polityki zagranicznej.</source>
<target>The EUs own founding texts require that the Union as a whole defends democratic principles in its foreign affairs.</target>
</trans-unit><trans-unit>
<source>Jednak starania te są jeszcze bliższe Parlamentowi Europejskiemu: dla posłów do PE, którzy uczestniczyli w wyborach i kampaniach, demokracja jest sprawą osobistą.</source>
<target>But in the European Parliament, this effort strikes closer to home: for MEPs, who have experienced elections and campaigns, democracy is a personal matter.</target>
</trans-unit><trans-unit>
<source>Przejdź do tej strony : Wspieranie demokracji na całym świecie</source>
<target>Go to the page : Supporting democracy around the globe</target>
</trans-unit><trans-unit>
<source>Nagroda im. Sacharowa</source>
<target>Sakharov Prize</target>
</trans-unit><trans-unit>
<source>Zapoznaj się z informacjami o laureatach nagrody im. Sacharowa przyznawanej od 1988 r. przez Parlament Europejski osobom, które wyróżniły się jako obrońcy praw człowieka.</source>
<target>Read about the winners of the Parliament's Sakharov Prize, which has recongnised outstanding human rights defenders since 1988</target>
</trans-unit><trans-unit>
<source>Przejdź do strony internetowej</source>
<target>Visit the website</target>
</trans-unit><trans-unit>
<source>Udostępnij tę stronę:</source>
<target>Share this page:</target>
</trans-unit><trans-unit>
<source>Udostępnij tę stronę Facebook (otwiera się w nowym oknie)</source>
<target>Share this page on Facebook (opens in a new window)</target>
</trans-unit><trans-unit>
<source>Udostępnij tę stronę Twitter (otwiera się w nowym oknie)</source>
<target>Share this page on Twitter (opens in a new window)</target>
</trans-unit><trans-unit>
<source>Udostępnij tę stronę LinkedIn (otwiera się w nowym oknie)</source>
<target>Share this page on LinkedIn (opens in a new window)</target>
</trans-unit><trans-unit>
<source>Zamów powiadomienia mailowe</source>
<target>Sign up for mail updates</target>
</trans-unit><trans-unit>
<source>Footer</source>
<target>Footer</target>
</trans-unit><trans-unit>
<source>O Parlamencie</source>
<target>About Parliament</target>
</trans-unit><trans-unit>
<source>Pokaż menu: aktualności</source>
<target>View menu: News</target>
</trans-unit><trans-unit>
<source>Przewodniczący Parlamentu Europejskiego Sekretarz Generalny Parlamentu Europejskiego Wizyty Europejski Rzecznik Praw Obywatelskich Informacje o Unii Europejskiej</source>
<target>The President of the European Parliament Secretary-General of the European Parliament Visits European Ombudsman About the European Union</target>
</trans-unit><trans-unit>
<source>Ukryj menu: Aktualności</source>
<target>Hide menu: News</target>
</trans-unit><trans-unit>
<source>Parlament Europejski</source>
<target>European Parliament</target>
</trans-unit><trans-unit>
<source>Pokaż menu: Parlament Europejski</source>
<target>View menu: European Parliament</target>
</trans-unit><trans-unit>
<source>Aktualności Tematy Posłowie do PE O Parlamencie Posiedzenia plenarne Komisje parlamentarne Delegacje Wybory</source>
<target>News Topics MEPs About Parliament Plenary Committees Delegations Elections</target>
</trans-unit><trans-unit>
<source>Ukryj menu: Parlament Europejski</source>
<target>Hide menu: European Parliament</target>
</trans-unit><trans-unit>
<source>Parlament w mediach społecznościowych</source>
<target>The Parliament on social media</target>
</trans-unit><trans-unit>
<source>Sprawdź aktualności w Parlamencie Facebook (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Twitter (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Flickr (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie LinkedIn (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie YouTube (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Instagram (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Pinterest (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Snapchat (otwiera się w nowym oknie) Sprawdź aktualności w Parlamencie Reddit (otwiera się w nowym oknie)</source>
<target>Check out Parliament on Facebook (opens in a new window) Check out Parliament on Twitter (opens in a new window) Check out Parliament on Flickr (opens in a new window) Check out Parliament on LinkedIn (opens in a new window) Check out Parliament on YouTube (opens in a new window) Check out Parliament on Instagram (opens in a new window) Check out Parliament on Pinterest (opens in a new window) Check out Parliament on Snapchat (opens in a new window) Check out Parliament on Reddit (opens in a new window)</target>
</trans-unit><trans-unit>
<source>Linki do informacji</source>
<target>Information links</target>
</trans-unit><trans-unit>
<source>Kontakt RSS Mapa witryny Informacja prawna Polityka ochrony prywatności Dostęp</source>
<target>Contact RSS Sitemap Legal notice Privacy policy Accessibility</target>
</trans-unit></body>
</file>
</xliff>

1445
lab/pause.txt Normal file

File diff suppressed because it is too large Load Diff