File size: 4,674 Bytes
36757ab cc071a3 36757ab ed8c0c5 36757ab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
---
license: cc-by-nc-sa-4.0
language:
- tr
pipeline_tag: text-classification
tags:
- legal
---
# Multilable classification Model for Legal Texts
Released in January 2024, this is a Turkish BERT language model pretrained from scratch on an **optimized BERT architecture** using a 2 GB Turkish legal corpus. The corpus was sourced from legal-related thesis documents available in the Higher Education Board National Thesis Center (YÖKTEZ). The model has been fine-tuned for multi-label classification tasks using human-annotated datasets provided by **NewMind**, a legal tech company based in Istanbul, Turkey.
---
## Overview
- **Preprint Paper**: [https://arxiv.org/abs/2407.00648](https://arxiv.org/abs/2407.00648)
- **Architecture**: Optimized BERT Base
- **Language**: Turkish
- **Supported Labels**:
Supported Labels:
A total of 31 legal-specific labels such as Vergiler (Taxes) and Sözleşme_Bedeli (Contract Price).
Full list of labels:
'Başlık', 'Ceza_Ödeme_Yükümlülükleri', 'Devir_ve_Temlik', 'Fesih_ve_Sona_Erme', 'Gizlilik', 'Sorumsuzluk_Kaydı', 'Tazminat', 'Mücbir_Sebep', 'Kontrol_Değişikliği', 'Kişisel_Verilerin_Korunması', 'FSM_Hak_ve_Yükümlülükleri', 'Feragat', 'Masraf_ve_Giderler', 'Vergiler', 'Münhasırlık_ve_Özgüleme', 'Uyarlama_Kaydı', 'Rekabet_Yasağı', 'Sigorta', 'Teminat_Kaydı', 'Uygulanacak_Hukuk', 'Uyuşmazlıkların_Çözümü', 'Ödeme', 'Takyidat_Kaydı', 'Hiyerarşi_Kaydı', 'Bildirim_Yükümlülüğü', 'İzin_ve_Onaylar', 'Sözleşme_Bedeli', 'Teminat_Bedeli', 'Sona_Ermeyen_Hüküm_Kaydı', 'Yenileme', 'Other'.
**Model Name**: LegalTurk Optimized BERT
---
## How to Use
### Use a pipeline as a high-level helper
```python
from transformers import pipeline
# Define label list
label_list = [
'Başlık', 'Ceza_Ödeme_Yükümlülükleri', 'Devir_ve_Temlik', 'Fesih_ve_Sona_Erme',
'Gizlilik', 'Sorumsuzluk_Kaydı', 'Tazminat', 'Mücbir_Sebep', 'Kontrol_Değişikliği',
'Kişisel_Verilerin_Korunması', 'FSM_Hak_ve_Yükümlülükleri', 'Feragat', 'Masraf_ve_Giderler',
'Vergiler', 'Münhasırlık_ve_Özgüleme', 'Uyarlama_Kaydı', 'Rekabet_Yasağı', 'Sigorta',
'Teminat_Kaydı', 'Uygulanacak_Hukuk', 'Uyuşmazlıkların_Çözümü', 'Ödeme', 'Takyidat_Kaydı',
'Hiyerarşi_Kaydı', 'Bildirim_Yükümlülüğü', 'İzin_ve_Onaylar', 'Sözleşme_Bedeli',
'Teminat_Bedeli', 'Sona_Ermeyen_Hüküm_Kaydı', 'Yenileme', 'Other'
]
# Load model
model = pipeline("text-classification", model="farnazzeidi/multilabel-legalturk-bert-model", return_all_scores=True)
# Predict
text = ["Her daire için aylık 5 TL + KDV ücret, SITE YÖNETIMI'ne e-posta ile gönderilecektir."]
predictions = model(text)
# Display results
for i, pred in enumerate(predictions[0]):
print(f"Label: {label_list[i]}, Score: {pred['score']:.4f}")
```
### Load model directly
```python
from transformers import AutoTokenizer, AutoModelForTokenClassification
import torch
# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained("farnazzeidi/multilabel-legalturk-bert-model")
model = AutoModelForSequenceClassification.from_pretrained("farnazzeidi/multilabel-legalturk-bert-model")
# Define label list
label_list = [
'Başlık', 'Ceza_Ödeme_Yükümlülükleri', 'Devir_ve_Temlik', 'Fesih_ve_Sona_Erme',
'Gizlilik', 'Sorumsuzluk_Kaydı', 'Tazminat', 'Mücbir_Sebep', 'Kontrol_Değişikliği',
'Kişisel_Verilerin_Korunması', 'FSM_Hak_ve_Yükümlülükleri', 'Feragat', 'Masraf_ve_Giderler',
'Vergiler', 'Münhasırlık_ve_Özgüleme', 'Uyarlama_Kaydı', 'Rekabet_Yasağı', 'Sigorta',
'Teminat_Kaydı', 'Uygulanacak_Hukuk', 'Uyuşmazlıkların_Çözümü', 'Ödeme', 'Takyidat_Kaydı',
'Hiyerarşi_Kaydı', 'Bildirim_Yükümlülüğü', 'İzin_ve_Onaylar', 'Sözleşme_Bedeli',
'Teminat_Bedeli', 'Sona_Ermeyen_Hüküm_Kaydı', 'Yenileme', 'Other'
]
# Predict
text = ["Her daire için aylık 5 TL + KDV ücret, SITE YÖNETIMI'ne e-posta ile gönderilecektir."]
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
outputs = model(**inputs)
# Process results
probabilities = torch.sigmoid(outputs.logits)
for i, prob in enumerate(probabilities[0]):
print(f"Label: {label_list[i]}, Probability: {prob.item():.4f}")
```
---
# Authors
Farnaz Zeidi, Mehmet Fatih Amasyali, Çigdem Erol
---
## License
This model is shared under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en).
You are free to use, share, and adapt the model for non-commercial purposes, provided that you give appropriate credit to the authors.
For commercial use, please contact [[email protected]]. |