# mcp/nlp.py | |
import spacy | |
def load_model(): | |
try: | |
return spacy.load("en_core_web_sm") | |
except OSError: | |
raise RuntimeError( | |
"spaCy model 'en_core_web_sm' is not installed. " | |
"Ensure Dockerfile downloads it at build time." | |
) | |
nlp = load_model() | |
def extract_keywords(text: str): | |
"""Extract unique Named Entities longer than 2 characters.""" | |
doc = nlp(text) | |
return list({ent.text for ent in doc.ents if len(ent.text.strip()) > 2}) | |