---
title: Martin Jancura
published: true
taxonomy:
    category: [bp2021]
    tag: [opennmt,translation,demo,nlp]
    author: Daniel Hladek
---
# Martin Jancura

*Rok začiatku štúdia*:  2017

## Bakalárska práca 2020

Názov: Webová aplikácia pre demonštráciu strojového prekladu

1. Vypracujte teoretický úvod do strojového prekladu. Vypracujte prehľad komerčných služieb pre automatický preklad.
2. Podrobne vysvetlite zvolenú metódu strojového prekladu.
3. Vytvorte demonštračnú webovú aplikáciu v Javascripte pomocou ktorej je možné vyskúšať viaceré služby pre strojový preklad.
4. Navrhnite možné zlepšenia Vami vytvorenej aplikácie.

Zásobník úloh:

- Zapisať človekom urobený preklad do databázy.
- Vyrobiť deployment a zverejniť stránku s demom.
- pripraviť modul s vlastným prekladom.
- Vyhodnotiť preklad metódou BLEU

[repozitár](https://git.kemt.fei.tuke.sk/mj130zg/BP2021)

Stretnutie 26.3

Stav:

- Práca na písomnej časti, kontrola na budúce.

Úlohy:

- Pripravte deployment dema so strojovým prekladom

Stretnutie 13.3.

Stav:
- práca na písomnej časti (neurónový strojový preklad).
- odladená chyba axios cors na translation.tukekemt.xyz.


Úlohy:
- Písať.


Stretnutie 5.3.

Stav:

- Nastal progres v písomnej časti, pokračujte ďalej

Stretnutie 26.2.

Stav:

- Prerobený úvod práce podľa nového zadania.
- Práca na vlastnom backende (vedúci). Backend je prístupný na https://translation.tukekemt.xyz/ende/. 

Úlohy:

- Pokračujte v písomnej práci.
- Backend momentálne nefunguje. Keď bude fungovať, pracujte na napojení na frontend.




## Bakalársky projekt 2020


Konzultácie sa budú konať osobne alebo cez [Teams](https://teams.microsoft.com/l/team/19%3aa8596a401a3842e5b91ac918a2a0afb1%40thread.tacv2/conversations?groupId=4fc0c627-d424-4587-b73a-2e47509862e9&tenantId=1c9f27ef-fee6-45f4-9a64-255a8c8e25a5) minimálne raz za dva týždne, menej ako 6 konzultácií za semester je dôvodom pre zníženie hodnotenia semester je dôvodom pre zníženie hodnotenia alebo neudelenie zápočtu. Odporúčaný čas konzultácie je piatok.

Možné backendy:

- https://opennmt.net/OpenNMT/installation/
- FairSeq 
- [Dokumentácia k OpenNMT-py REST servru](https://forum.opennmt.net/t/simple-opennmt-py-rest-server/1392)
- [Zdrojové kódy k REST Servru](https://github.com/OpenNMT/OpenNMT-py/blob/master/onmt/bin/server.py|


### Poznámka vedúceho 2.2

Inštalácia OpenNMT-py na servri idoc:

OpenNMT-py vyžaduje verziu Pytorch presne 1.6.0.

CUDA 11 na idoc nefunguje, lebo je tam príliš starý nvidia driver (420).


```
conda create -n openmnt
conda activate opennmt
conda install pytorch=1.6.0 torchvision torchaudio cudatoolkit=9.2 -c pytorch
pip install OpenNMT-py
```

[Jednoduchý návod na trénovanie](https://opennmt.net/OpenNMT-py/quickstart.html).

### Stretnutie 29.1.2021

Stav:

- Práca na prezentácii.
- Dohoda na zadaní.

Úlohy:

- Dorobiť REST API pomocou nmt-wizard-docker - pre vedúceho.



### Stretnutie 26.1.2021

Stav:

- Práca na textovej časti
- Práca na prezentácii
- Urobený tutoriál OpenNMP-py, natrénovaný model na preklad z angličtiny do nemčiny.

Úlohy:

- Pracovať na teoretickej časti - doplňte aj o metódach vyhodnotenia BLEU
- Dokončiť prezentáciu
- Spojiť webovú aplikáciu s vlastným rest API.
- Pozrieť si výstupy práce P. [Pavlišin](/students/2016/patrik_pavlisin)
 

###  stretnutie 18.12.2020:

Stav: 

- inštalácia OpenNMT-py: zlyhala proavdepodobne kvôli konfigurácii CUDA
- práca na písomnej časti pokračuje
- kompletne prerobené kódy pre preklad (frontend aj backend) pomocou Microsoft a IBM. Aplikácia používa Express.JS
- kódy sú dostupné na https://git.kemt.fei.tuke.sk/mj130zg/BP2021

### Virtuálne stretnutie 4.12.2020:

Stav:

- Inštalácia OpenNMT-py. Tutoriál zatiaľ nefunguje, pravdepodobne kvôli chybne nainštalovanej knižnici numpy.

Úlohy na ďalšie stretnutie:

- Vypracujte písomný prehľad metód strojového prekladu pomocou neurónových sietí. Prehľad by mal obsahovať odkazy na aktuálnu odbornú literatúru - knihy a články.
V prehľade vysvetlite aj čo je to architektúra seq2seq, (endkóder-dekóder). Nájdite odborné články o opennmt, prečítajte si ich a napíšte čo ste sa dozvedeli.
- (vedúci) urobiť deployment openmnt-py (flask,wsgi).
- Pokračujte v tutoriáli openmt-py. Pre inštaláciu závislostí (pytorch, numpy, cuda) použite systém Anaconda.




### Virtuálne stretnutie 6.11.2020:

Stav: 

Práca na písomnej časti.

Úlohy do ďalšieho stretnutia:

- Pohľadať takú knižnicu, kde vieme využiť vlastný preklad. Skúste si nainštalovať OpenNMT.
- Prejdite si tutoriál https://github.com/OpenNMT/OpenNMT-py#quickstart alebo podobný.
- Navrhnite ako prepojiť frontend a backend.


### Virtuálne stretnutie 23.10.2020:

Stav:

- Urobený frontend pre komunikáciu s Microsof Translation API, využíva Axios a Vanilla Javascriupt

Úlohy do ďalšieho stretnutia:

- Pohľadať takú knižnicu, kde vieme využiť vlastný preklad. Skúste si nainštalovať OpenNMT.
- Zistiť čo znamená  politika CORS.
- Pokračujte v písaní práce, pridajte časť o strojovom preklade.. Prečítajte si články https://opennmt.net/OpenNMT/references/ a urobte si poznámky. Do poznámky dajte bibliografický odkaz a čo ste sa dozvedeli z článku.


### Virtuálne stretnutie 16.10:

Stav:

- Začiatok práce na textovej časti, napísaný úvod
- Vytvorený repozitár https://git.kemt.fei.tuke.sk/mj130zg/BP2021
- Vytvorené poznámky ku existujúcemu JS api
- Na ďalšie práce použiť IBM Watson na strane frontendu, ale pripraviť sa na vlastný backend.


Do ďalšieho stretnutia:

- Prezentovať frontend s IBM Watson alebo Microsoft, kódy dajte do repozitára.
- Pohľadať takú knižnicu, kde vieme využiť vlastný preklad.
- Zistiť čo znamená  politika CORS.
- Pokračujte v písaní práce, pridajte časť o strojovom preklade.

### Virtuálne stretnutie 9.10:

Do ďalšieho stretnutia:

- Pripraviť si poznámky o tom čo ste sa dozvedeli o NLP na odovzdanie na kontrolu.
- Vytvoriť repozitár na GITe kde sa budú dávať zdrojové kódy. (adresár backend, adresár frontend, súbor README).
- Do súboru README napíšte možné API ktoré ste našli aj s krátkym opisom.

- V prvej fáze môžete využiť existujúce Cloud API.

Stav:

- rozhodli sme sa pre demonštráciu strojového prekladu.
- našli ste niekoľko API na strojový preklad (platené, alebo obmedzené).


### Stretnutie 30.9.

Nápady na úlohu NLP:

- demo [Spacy](https://github.com/explosion/spacy-services)
- strojový preklad pomocou [machine-translator](https://www.npmjs.com/package/machine-translator)
- chatbot napr. [chatbot](https://github.com/ddsky/chatbot)
- Niektorú knižnicu  z [blogu](https://www.kommunicate.io/blog/nlp-libraries-node-javascript/)
- vyhľadajte natural language processing for javascript.

- Na ďalšom stretnutí si vyberieme konkrétnu tému NLP.
- Pripraviť si poznámky o tom čo ste sa dozvedeli o NLP.