41 lines
899 B
Python
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)
|