--- license: eupl-1.1 language: - el library_name: fasttext, flair pipeline_tag: text-classification --- # ilsp/justice - Models for processing Greek court decisions ## Paragraph classification ```python 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 ```python 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)] ```