ilsp/justice
- Models for processing Greek court decisions
Paragraph classification
repo_id = "ilsp/justice"
model_path = hf_hub_download(repo_id=repo_id, filename="20241124-model.ftz")
sample_decision = hf_hub_download(repo_id=repo_id, filename="sample_data/Α2485_2023.txt") # anonymized decision
model = load_model(model_path)
labels_map = {
'preamble': '__label__0', '__label__0': 'preamble',
'panel': '__label__1', '__label__1': 'panel',
'litigants': '__label__2', '__label__2': 'litigants',
'justification': '__label__3', '__label__3': 'justification',
'decision': '__label__4', '__label__4': 'decision',
'post': '__label__5', '__label__5': 'post'}
with open(sample_decision) as inf:
paras = [p for p in inf.read().split(NL) if p.strip()]
random.shuffle(paras)
text = NL.join(paras)
nchars = 150
for line in text.split(NL):
pred = labels_map[model.predict(line.strip())[0][0]]
if len(line) > nchars:
line = line[0:nchars]
print(f"{line} -> {pred}")
Named entity recognition in paragraphs with litigant names and addresses
from flair.data import Sentence, Token
from flair.models import SequenceTagger
from huggingface_hub import hf_hub_download
REPO_ID = "ilsp/justice"
MODEL_PATH = "litigant-ner-model.pt"
model_path = hf_hub_download(repo_id=REPO_ID, filename=MODEL_PATH)
model = SequenceTagger.load(model_path)
text = "Για να δικάσει την από 30 Μαρτίου 2020 έφεση των 1) Νίκης Νικίδου του Νίκου , κατοίκου Νίκαιας ( Νεάπολης 1 ) , 2) Άννας Άννίδου του Άνθιμου , κατοίκου Αθήνας ( Αγράμπελης 1 ) και 3) Σοφίας Σοφίδου του Σοφοκλή , κατοίκου Στυλίδας ( Στρυμώνος 1 ) , οι οποίοι παρέστησαν με τον δικηγόρο Λυσία Λυσίου ( Α.Μ. 12341 ) , που τον διόρισαν με πληρεξούσιο ."
sentence = Sentence([Token(t) for t in text.split()]) # or use a sentence splitter
model.predict(sentence)
sentence.get_spans("ner")
[Span[11:13]: "Νίκης Νικίδου" → anon_name (1.0),
Span[14:15]: "Νίκου" → anon_name (1.0),
Span[19:21]: "Νεάπολης 1" → anon_other (1.0),
Span[24:26]: "Άννας Άννίδου" → anon_name (1.0),
Span[27:28]: "Άνθιμου" → anon_name (1.0),
Span[32:34]: "Αγράμπελης 1" → anon_other (1.0),
Span[37:39]: "Σοφίας Σοφίδου" → anon_name (1.0),
Span[40:41]: "Σοφοκλή" → anon_name (1.0),
Span[45:47]: "Στρυμώνος 1" → anon_other (1.0)]
Inference API (serverless) does not yet support fasttext, flair models for this pipeline type.