zpwiki/pages/students/2016/jakub_maruniak/dp2021/annotation
2021-03-21 21:12:05 +00:00
..
ner Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation/ner/wikiart“ 2021-03-21 21:12:05 +00:00
build-docker.sh Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2020-05-22 19:10:11 +00:00
custom_train.py Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2021-03-21 20:27:06 +00:00
Dockerfile Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2020-11-02 10:57:18 +00:00
README.md Aktualizovat „pages/students/2016/jakub_maruniak/dp2021/annotation/README.md“ 2021-03-21 20:52:16 +00:00
scripts.py Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2021-03-21 20:27:06 +00:00
train.sh Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2021-03-21 20:27:06 +00:00
visualizer.py Nahrát soubory do „pages/students/2016/jakub_maruniak/dp2021/annotation“ 2021-03-21 20:27:06 +00:00

Diplomový projekt 2 2020

  • vytvorenie a spustenie docker kontajneru
./build-docker.sh
winpty docker run --name prodigy -it -p 8080:8080 -v C://Users/jakub/Desktop/annotation-master/annotation/work prodigy bash

Spustenie anotačnej schémy

  • dataminer.csv články stiahnuté z wiki
  • cd ner
  • ./01_text_to_sent.sh spustenie skriptu text_to_sent.py, ktorý rozdelí články na jednotlivé vety
  • ./02_ner_manual.sh spustenie manuálneho anotačného procesu pre NER
  • ./03_export.sh exportovanie anotovaných dát vo formáte json potrebnom pre spracovanie vo spacy. Možnosť rozdelenia na trénovacie (70%) a testovacie dáta (30%) (--eval-split 0.3). Pozn. aby --eval-split fungoval správne, je potrebné v inštalácii prodigy (cestu zistíme pomocou prodigy stats) v súbore recipes/train.py upraviť funkciu data_to_spacy (mal by byť riadok 327). V novej verzii by to malo byť opravené. Do riadku treba pridať parameter eval_split. json_data, eval_data, split = train_eval_split(json_data, eval_split)

Anotované databázy

  • ./ner/skner/sknerv4.jsonl - Aktuálna anotovaná databáza z https://skner.tukekemt.xyz/ (Celkovo cca 5000 článkov)
  • ./ner/wikiart/wikiart2.jsonl - Vlastná databáza, články rozdelené na vety (Celkovo cca 1300 viet)
  • Presná štatistika o databázach bude doplnená

Štatistika o anotovaných dátach

  • prodigy stats wikiart - informácie o počte prijatých a odmietnutých článkov pre konkrétny dataset v prodigy

Vizualizácia anotovaných dát

  • streamlit run visualizer.py visualize ./dataset.jsonl - Vypíše anotácie zo zvolenej databázy na lokálnej adrese http://192.168.1.26:8501

Trénovanie modelu

Založené na: https://git.kemt.fei.tuke.sk/dano/spacy-skmodel

  • Na trénovanie NER využitá vstavaná funkcia spacy train
  • Testované aj s custom skriptom na trénovanie - custom_train.py - približne rovnaké výsledky, neporovnateľne dlhší čas trénovania

Scripts

python scripts.py [command] [arguments]

Príkaz Popis Argumenty
count Vypíše štatistiky o databáze vo formáte JSONL z Prodigy. dataset_path
delete_annot Vytvorí samostatnú databázu s anotáciami iba od zvoleného anotátora. annotator, dataset_path, new_dataset_path
modelinfo Vypíše informácie o natrénovanom modeli (Precision, Recall a F-skóre), zároveň aj o jednotlivých entitách. -