test / models /nlp.py
christopher
changed the nlp to support list and altered the fast API
e00c07d
raw
history blame
896 Bytes
import spacy
import nltk
class NLPModel:
def __init__(self):
self.nlp = spacy.load("pt_core_news_md")
nltk.download('punkt')
def __call__(self, text: str):
"""Makes the model callable like model(text)."""
return self.extract_entities(text) # or another default method
def extract_entities(self, text: str):
if isinstance(text, list): # If input is a list of sentences
entities = []
for sentence in text:
doc = self.nlp(sentence)
entities.extend([(ent.text.lower(), ent.label_) for ent in doc.ents])
return entities
else: # If input is a single string
doc = self.nlp(text)
return [(ent.text.lower(), ent.label_) for ent in doc.ents]
def tokenize_sentences(self, text: str):
return nltk.sent_tokenize(text)