|
--- |
|
license: apache-2.0 |
|
datasets: |
|
- rigonsallauka/polish_ner_dataset |
|
language: |
|
- pl |
|
metrics: |
|
- f1 |
|
- recall |
|
- precision |
|
- confusion_matrix |
|
base_model: |
|
- google-bert/bert-base-cased |
|
pipeline_tag: token-classification |
|
tags: |
|
- NER |
|
- medical |
|
- extraction |
|
- symptom |
|
- polish |
|
--- |
|
# Polish Medical NER |
|
|
|
## Use |
|
- **Primary Use Case**: This model is designed to extract medical entities such as symptoms, diagnostic tests, and treatments from clinical text in the Polish language. |
|
- **Applications**: Suitable for healthcare professionals, clinical data analysis, and research into medical text processing. |
|
- **Supported Entity Types**: |
|
- ` |
|
PROBLEM`: Diseases, symptoms, and medical conditions. |
|
- `TEST`: Diagnostic procedures and laboratory tests. |
|
- `TREATMENT`: Medications, therapies, and other medical interventions. |
|
|
|
## Training Data |
|
- **Data Sources**: Annotated datasets, including clinical data and translations of English medical text into Polish. |
|
- **Data Augmentation**: The training dataset underwent data augmentation techniques to improve the model's ability to generalize to different text structures. |
|
- **Dataset Split**: |
|
- **Training Set**: 80% |
|
- **Validation Set**: 10% |
|
- **Test Set**: 10% |
|
|
|
## Model Training |
|
- **Training Configuration**: |
|
- **Optimizer**: AdamW |
|
- **Learning Rate**: 3e-5 |
|
- **Batch Size**: 64 |
|
- **Epochs**: 200 |
|
- **Loss Function**: Focal Loss to handle class imbalance |
|
- **Frameworks**: PyTorch, Hugging Face Transformers, SimpleTransformers |
|
|
|
## Evaluation metrics |
|
- eval_loss = 0.3968946770636102 |
|
- f1_score = 0.7556232119891866 |
|
- precision = 0.7552069671056083 |
|
- recall = 0.7560399159663865 |
|
|
|
## How to Use |
|
You can easily use this model with the Hugging Face `transformers` library. Here's an example of how to load and use the model for inference: |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForTokenClassification |
|
import torch |
|
|
|
model_name = "rigonsallauka/polish_medical_ner" |
|
|
|
# Load the tokenizer and model |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForTokenClassification.from_pretrained(model_name) |
|
|
|
# Sample text for inference |
|
text = "Pacjent skar偶y艂 si臋 na silne b贸le g艂owy i nudno艣ci, kt贸re utrzymywa艂y si臋 przez dwa dni. W celu z艂agodzenia objaw贸w przepisano mu paracetamol oraz zalecono odpoczynek i picie du偶ej ilo艣ci p艂yn贸w." |
|
|
|
# Tokenize the input text |
|
inputs = tokenizer(text, return_tensors="pt") |