forked from KEMT/zpwiki
		
	| .. | ||
| ner | ||
| build-docker.sh | ||
| custom_train.py | ||
| Dockerfile | ||
| README.md | ||
| scripts.py | ||
| train.sh | ||
| visualizer.py | ||
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.shspustenie skriptu text_to_sent.py, ktorý rozdelí články na jednotlivé vety
- ./02_ner_manual.shspustenie manuálneho anotačného procesu pre NER
- ./03_export.shexportovanie 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.pyupraviť 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. | - |