# 1 модуль - Распознавание именованных сущностей (NER) import spacy class NER: """ Класс для выделения именованных сущностей из текста с помощью библиотеки spaCy. """ def __init__(self): self.nlp = spacy.load("ru_core_news_lg") def extract_entities(self, text): """ Выделение именованных сущностей из текста Использование: text (<текст>) Возвращает: List[Dict[text, type]] - список словарей, каждый из которых содержит информацию об одной сущности """ doc = self.nlp(text) entities = [] for ent in doc.ents: entities.append({ 'text': ent.text, # Текст сущности 'type': ent.label_, # Тип сущности (PER, LOC, ORG, DATE и т.д.) 'start': ent.start_char, # Начальная позиция в тексте 'end': ent.end_char # Конечная позиция в тексте }) return entities