File size: 624 Bytes
0a3aede
 
 
bb95791
0a3aede
bb95791
 
 
 
 
 
 
 
 
 
 
0a3aede
 
bb95791
0a3aede
bb95791
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# mcp/nlp.py

import spacy
import subprocess

def load_model():
    try:
        return spacy.load("en_core_sci_sm")
    except OSError:
        try:
            subprocess.run(["python", "-m", "spacy", "download", "en_core_web_sm"], check=True)
            return spacy.load("en_core_web_sm")
        except Exception as e:
            raise RuntimeError("Failed to download spaCy model. Details: " + str(e))

nlp = load_model()

def extract_keywords(text: str):
    """Extract biomedical or general entities from text."""
    doc = nlp(text)
    return list(set(ent.text for ent in doc.ents if len(ent.text.strip()) > 2))