flair-uk-pos / README.md
dchaplinsky's picture
Update README.md
d8780ff
---
tags:
- flair
- token-classification
- sequence-tagger-model
language: uk
model-index:
- name: flair-uk-pos
results:
- task:
name: POS
type: token-classification
metrics:
- name: POS F Score
type: f_score
value: 0.9793
widget:
- text: "Президент Володимир Зеленський пояснив, що наразі діалог із режимом Володимира путіна неможливий, адже агресор обрав курс на знищення українського народу. За словами Зеленського цей режим РФ виявляє неповагу до суверенітету і територіальної цілісності України."
license: mit
---
# flair-uk-ner
## Model description
**flair-uk-pos** is a Flair model that is ready to use for part-of-speech (upos) tagging. It is based on flair embeddings, that I've trained for Ukrainian language (available [here](https://huggingface.co/dchaplinsky/flair-uk-backward) and [here](https://huggingface.co/dchaplinsky/flair-uk-forward)) and has superior performance and a very **small size** (just 72mb!).
Results:
- F-score (micro) **0.9793**
- F-score (macro) **0.9275**
- Accuracy **0.9793**
| By class: | precision | recall | f1-score | support |
|--------------|-----------|--------|----------|---------|
| NOUN | 0.9857 | 0.9851 | 0.9854 | 4549 |
| PUNCT | 0.9984 | 1.0000 | 0.9992 | 3097 |
| ADJ | 0.9772 | 0.9852 | 0.9812 | 1959 |
| ADP | 0.9956 | 0.9968 | 0.9962 | 1584 |
| VERB | 0.9891 | 0.9910 | 0.9900 | 1552 |
| ADV | 0.9630 | 0.9118 | 0.9367 | 714 |
| CCONJ | 0.9685 | 0.9746 | 0.9715 | 630 |
| PROPN | 0.9279 | 0.9472 | 0.9375 | 625 |
| DET | 0.9729 | 0.9698 | 0.9713 | 629 |
| PRON | 0.9706 | 0.9631 | 0.9669 | 515 |
| PART | 0.9235 | 0.8693 | 0.8956 | 375 |
| NUM | 0.9722 | 0.9804 | 0.9763 | 357 |
| SCONJ | 0.8768 | 0.9577 | 0.9154 | 260 |
| AUX | 0.8906 | 0.9500 | 0.9194 | 120 |
| X | 0.9833 | 0.9593 | 0.9712 | 123 |
| SYM | 1.0000 | 0.7059 | 0.8276 | 17 |
| INTJ | 0.5556 | 0.5000 | 0.5263 | 10 |
| accuracy | | | 0.9793 | 17116 |
| macro avg | 0.9383 | 0.9204 | 0.9275 | 17116 |
| weighted avg | 0.9794 | 0.9793 | 0.9792 | 17116 |
The model was fine-tuned on the [Ukrainian (UD) corpus](https://universaldependencies.org/treebanks/uk_iu/index.html), released by the [non-profit organization Institute for Ukrainian](https://mova.institute).
Training code is also available [here](https://github.com/lang-uk/flair-pos).
## [Usage demo](https://github.com/egorsmkv/flair-nlp-uk/blob/main/part_of_speech.py)
```python
from flair.data import Sentence
from flair.models import SequenceTagger
from pprint import pprint
tagger = SequenceTagger.load("dchaplinsky/flair-uk-pos")
sentence = Sentence("Я люблю Україну. Моє імʼя Марія Шевченко, я навчаюся в Київській політехніці.")
tagger.predict(sentence)
print(sentence)
print('---')
print('The following POS tags are found:')
pos_items = []
for label in sentence.get_labels():
all_labels = []
keys = label.data_point.annotation_layers.keys()
for key in keys:
all_labels.extend(
[
{'label': label.value, 'score': round(label.score, 4)}
for label in label.data_point.get_labels(key)
if label.data_point == label
]
)
pos_items.append({
'text': label.data_point.text,
'all_labels': all_labels,
})
pprint(pos_items)
# Result:
"""
Sentence: "Я люблю Україну . Моє імʼя Марія Шевченко , я навчаюся в Київській політехніці ." → ["Я"/PRON, "люблю"/VERB, "Україну"/PROPN, "."/PUNCT, "Моє"/DET, "імʼя"/NOUN, "Марія"/PROPN, "Шевченко"/PROPN, ","/PUNCT, "я"/PRON, "навчаюся"/VERB, "в"/ADP, "Київській"/ADJ, "політехніці"/NOUN, "."/PUNCT]
---
The following POS tags are found:
[{'all_labels': [{'label': 'PRON', 'score': 1.0}], 'text': 'Я'},
{'all_labels': [{'label': 'VERB', 'score': 1.0}], 'text': 'люблю'},
{'all_labels': [{'label': 'PROPN', 'score': 1.0}], 'text': 'Україну'},
{'all_labels': [{'label': 'PUNCT', 'score': 1.0}], 'text': '.'},
{'all_labels': [{'label': 'DET', 'score': 0.9999}], 'text': 'Моє'},
{'all_labels': [{'label': 'NOUN', 'score': 1.0}], 'text': 'імʼя'},
{'all_labels': [{'label': 'PROPN', 'score': 1.0}], 'text': 'Марія'},
{'all_labels': [{'label': 'PROPN', 'score': 1.0}], 'text': 'Шевченко'},
{'all_labels': [{'label': 'PUNCT', 'score': 1.0}], 'text': ','},
{'all_labels': [{'label': 'PRON', 'score': 1.0}], 'text': 'я'},
{'all_labels': [{'label': 'VERB', 'score': 1.0}], 'text': 'навчаюся'},
{'all_labels': [{'label': 'ADP', 'score': 1.0}], 'text': 'в'},
{'all_labels': [{'label': 'ADJ', 'score': 1.0}], 'text': 'Київській'},
{'all_labels': [{'label': 'NOUN', 'score': 1.0}], 'text': 'політехніці'},
{'all_labels': [{'label': 'PUNCT', 'score': 1.0}], 'text': '.'}]
"""
```
Copyright: [Dmytro Chaplynskyi](https://twitter.com/dchaplinsky), [lang-uk project](https://lang.org.ua), 2022