pse2_ff/project/backend/spacy-service/extractSpacy.py

41 lines
899 B
Python

import spacy
import os
import json
current_dir = os.path.dirname(os.path.abspath(__file__))
model_path = os.path.join(current_dir, "spacy_training/output/model-last")
# Globales NLP-Modell
nlp = None
def load_model():
global nlp
print("[INFO] Lade SpaCy-Modell aus spacy_training/output/model-last ...")
nlp = spacy.load("spacy_training/output/model-last")
print("[INFO] Modell erfolgreich geladen.")
# Initial einmal laden
load_model()
def extract(pages_json):
results = []
for page in pages_json:
text = page.get("text", "")
text = text.strip()
page_num = page.get("page")
if not text:
continue
spacy_result = nlp(text)
for ent in spacy_result.ents:
results.append({"label": ent.label_, "entity": ent.text, "page": page_num})
return json.dumps(results, indent=2, ensure_ascii=False)