File size: 545 Bytes
0972aa8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi import FastAPI
from pydantic import BaseModel
import spacy

app = FastAPI(title="spaCy NER API")

# Load transformer model
nlp = spacy.load(
    "en_core_web_trf",
    disable=["tagger", "parser", "lemmatizer", "attribute_ruler"]
)

class TextInput(BaseModel):
    text: str


@app.post("/ner")
def extract_ner(data: TextInput):
    doc = nlp(data.text)

    entities = []
    for ent in doc.ents:
        entities.append({
            "text": ent.text,
            "label": ent.label_
        })

    return {"entities": entities}