forked from KEMT/zpwiki
		
	
		
			
				
	
	
		
			395 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			395 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Martin Jancura
 | |
| published: true
 | |
| taxonomy:
 | |
|     category: [bp2021,dp2023]
 | |
|     tag: [opennmt,translation,demo,nlp]
 | |
|     author: Daniel Hladek
 | |
| ---
 | |
| 
 | |
| # Martin Jancura
 | |
| 
 | |
| *Rok začiatku štúdia*:  2017
 | |
| 
 | |
| ## Diplomový projekt
 | |
| 
 | |
| - [GIT repozitár](https://git.kemt.fei.tuke.sk/mj130zg/DP2023)
 | |
| - [DP Práca](https://opac.crzp.sk/?fn=detailBiblioForm&sid=E4E659F3575B0C5BCF0C726CCD36)
 | |
| 
 | |
| Názov diplomovej práce: 
 | |
| 
 | |
| Rozpoznávanie emócií v texte
 | |
| 
 | |
| Zadanie diplomovej práce:
 | |
| 
 | |
| 1. Vypracujte prehľad metód rozpoznávania sentimentu z textu.
 | |
| 2. Vytvorte slovenskú overovaciu množinu pre rozpoznávanie sentimentu.
 | |
| 3. Vyberte vhodný model pre rozpoznávanie sentimentu v slovenských textoch.
 | |
| 4. Vyhodnoťte vybraný model pomocou vytvorenej množiny a navrhnite jeho zlepšenia.
 | |
| 
 | |
| 
 | |
| 
 | |
| Ciele:
 | |
| 
 | |
| - Vedieť klasifikovať emocionálny náboj v texte pomocou neurónovej siete.
 | |
| 
 | |
| Ciele na semester:
 | |
| 
 | |
| - Získať prehľad v problematike rozpoznávania emócií z textu
 | |
| - Vybrať dátovú množinu, vybrať vhodný klasifikátor, natrénovať model a vyhodnotiť výsledky.
 | |
| 
 | |
| Informácie:
 | |
| 
 | |
| - [Hate speech Project](/topics/hatespeech)
 | |
| - https://www.sciencedirect.com/topics/computer-science/emotion-detection
 | |
| 
 | |
| Stretnutie 10.1.2023
 | |
| 
 | |
| Stav:
 | |
| 
 | |
| - Scraper je na GITe
 | |
| - Písomná časť je začatá.
 | |
| - Vyskúšaný SlovakBERT so sentiment classification
 | |
| - anotované množina topky, príliš veľa HATE.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - Vypracovať prehľad datasetov
 | |
| - Treba anotovať inú množinu, kde budú aj pozitívne príspevky.
 | |
| - Vyhodnotiť P R F1
 | |
| - Pripraviť zero shot experiment s Slovak GPT2.. Dostupné na Huggingface Hub.
 | |
| - Výsledky experimentov dať do tabuľky
 | |
| - Pokračovať v písomnej práci.
 | |
| 
 | |
| 
 | |
| Stretnutie 20.1.2023
 | |
| 
 | |
| Stav:
 | |
| 
 | |
| - Vylepšený scraper, tak by zachytával jednotilivé príspevky, autora, text aj rating.
 | |
| - Teoretická časť nebola urobená.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - Zdrojové kódy scrapera pridajte na GIT. 
 | |
| - Vpracujte písomný prehľad datasetov pre slovenčinu a rozpoznávanie emócií https://github.com/slovak-nlp/resources.
 | |
| - Vypracujte prehľad neurónových metód na rozpoznávanie emócií z textu. bert, roberta, gpt. 
 | |
| - Zistite, ako sa pomocou modelu GPT robí "zero shot sentiment classification".
 | |
| - Vyskúšajte slovenský model pre klasifikáciu sentimentu https://huggingface.co/kinit/slovakbert-sentiment-twitter.
 | |
| - Ručne anotujte vytvorenú databázu diskusných príspevkov z topky.sk
 | |
| - Urobte klasifikáciu príspevkov pomocou neurónového modelu a vyhodnoťte presnosť (accuracy, precision, recall).
 | |
| 
 | |
| Zásobník úloh:
 | |
| 
 | |
| - Do scrapera skúste doplniť zaznamenanie ID nadradeného príspevku. ID môže byť aj nejaký hash.
 | |
| - Urobte zero shot classification pomocou slovenského GPT .
 | |
| 
 | |
| 
 | |
| 
 | |
| Stretnutie 25.11.
 | |
| 
 | |
| Stav:
 | |
| 
 | |
| - Vieme parsovať Disqus fóra z topky.sk. Vieme získať nadpis a hlavičku článku, tagy článku. Vieme odlíšiť jednotlivé diskusné príspevky. Scraper je v javascripte, knižnica puppeteer.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - Zdrojové texty scrapera dajte do git repozitára.
 | |
| - Nainštalujte si balíček Anaconda a HF transformers.
 | |
| - Pozrite si tento model https://huggingface.co/cardiffnlp/twitter-xlm-roberta-base-sentiment. Vyskúšajte ho na anglickom texte aj na slovenskom texte. Prečítajte si vedecký článok a urobte si poznámky. 
 | |
| - Prečítajte si článok o modeli XLM a napíšte poznámky.  Prečítajte si vedecký článok o datasete, ktorý bol použitý a urobrte si poznámky. Vyhľadajte si dataset na huggingface HUB a pozrite sa ako vyzerá. Na vyhľadávanie použite TUKE sieť a google scholar.
 | |
| 
 | |
| Zásobník úloh:
 | |
| 
 | |
| - Zo získaných slovenských dát vytvorte overovaciu množinu pre vybranýb model pre klasifikáciu sentimentu.
 | |
| - Pozrieť či existuje databáza.
 | |
| 
 | |
| Stretnutie 8.6.
 | |
| 
 | |
| Stav:
 | |
| 
 | |
| - Vypracovaný tutoriál huggingface
 | |
| - Vytvorený jednoduchý scraper Beautifulsoup na Topky.sk
 | |
| - Rozpracovaný scraper Selenium
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - [-] Dať kódy na GIT - scraper (twitter, topky) aj tutorial
 | |
| - [ ] Dopísať písomnú správu o tutoriáli (2 až 3 strany) - čo ste sa dozvedeli o BERT, čo ste urobili. Dajte to do README.md.
 | |
| 
 | |
| Stretnutie 20.5.2022
 | |
| 
 | |
| Mierny pokrok nastal len v oblasti Python.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - Pokračovať v otvorených úlohách.
 | |
| - Chceme sa sústrediť na "sledovanie medií".
 | |
| - [x] Vytvoriť skript pre sledovanie Twitter kanálov. Skript by mal v pravidelných interovaloch získať nový obsah a uložiť ho do databázy (cassandra?).  Zistitie, ktoré informácie o príspevkoch sú dôležité. čo vieme zistiť o príspevkoch?
 | |
| - Aký emočný náboj je v príspevku? Cieľom môže byť detekcia nenávistného obsahu.
 | |
| 
 | |
| 
 | |
| 11.3.2022
 | |
| 
 | |
| Návrh na tému:
 | |
| 
 | |
| - Sledovanie médií alebo sociálnych sietí. - blogy, noviny, diskusie, twitter.
 | |
| - Zistenie metainformácií o príspevkoch. 
 | |
| - Spracovanie príspevku - identifikácia sentimentu, detekcia nenávistnej reči, určenie témy príspevku, lepšie vyhľadávanie v databáze príspevkov. Ktorý materiál sa týka určitej témy?
 | |
| 
 | |
| Návrh na postup:
 | |
| 
 | |
| 1. Oboznámenie sa s problematikou.
 | |
| 2. Zostavenie databázy príspevkov. Stiahnutie a predspracovanie.
 | |
| 3. Spracovanie databázy - natrénovanie neurónovej siete, klasifikácia a vyhodnotenie.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - [ ] Zistite ako funguje neurónový jazykový model typu BERT - ako ho trénujeme a ako ho dotrénujeme. Zistite ako vieme pomocou neurónového jazykového modelu rozpoznávať sentiment v texte.  Napíšte o tom  krátku správu.
 | |
| - [ ] Nainštalujte si Anaconda,  Oboznámte sa s knižnicou *HuggingFace Transformers*. Vyberte si tutoriál, prejdite ho a napíšte krátku správu.
 | |
| - [ ] Vyskúšajte tento [model](https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment) pre klasifikáciu anglických textov. 
 | |
| 
 | |
| Zásobník úloh:
 | |
| 
 | |
| - [x] Pokračujte v štúdiu Pythonu, Oboznámte sa s Twitter API a zistite ako získať nejaký príspevok na Twitteri.
 | |
| - [ ] Naučte sa pracovať s knižnicou BeautifulSoup a pripravte scraper na vybraný zdroj.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Stretnutie 4.3.2022
 | |
| 
 | |
| Nápady na tému diplomovej práce:
 | |
| 
 | |
| - Strojový preklad pomocou neurónových sietí.
 | |
| - Rozpoznávanie reči pomocou transformerov - Hubert.
 | |
| - Rozpoznávanie nenávistnej reči pomocou  transfomers. 
 | |
| - Sledovanie medií - vytvorenie databázy a jej analýza.
 | |
| - Rozpoznávanie (klasifikácia) obrázkov pomocou neurónovej siete.
 | |
| 
 | |
| Úlohy:
 | |
| 
 | |
| - Porozmýšľajte nad každou hore uvedenou témou.
 | |
| - Porozmýšľajte nad témou čo by Vás bavila.
 | |
| - Pokračujte v štúdiu Pythonu.
 | |
| - Oboznámte sa s knižnicou HuggingFace Transformers alebo s knižnocou fairseq.
 | |
| 
 | |
| ## 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.
 | |
| 
 | |
| 
 |