Наташа извлекает именованные сущности из текста на русском языке, включая (но не ограничиваясь):
Физ. лица: Иванов Иван Иванович, Иван Иванов, Иван Петрович, Ваня
Организации: ПАО «Газпром», ИП Иванов Иван Иванович, агентство Bloomberg
События: фестиваль «Ковчег спасения», шоу «Пятая империя»
Гео-объекты: Москва, Ленинградская область, Российская Федерация, Северо-Кавказский ФО
Объекты времени: 21 мая 1996 года, 21.05.1996, 21 мая, сегодня, в конце года
Денежные единицы: 200 рублей, 1 млрд. долларов
Алгоритм работы (выделение сущностей по заданным правилам, используя морфологический разбор) похож на Томита-парсер от Яндекса.
$ pip install natashaДля первого знакомства можно использовать онлайн версию.
fromnatashaimportCombinator, DEFAULT_GRAMMARSfromnatasha.grammarsimportGeo, Date# DEFAULT_GRAMMARS содержит стандартный набор правил:# [# <enum 'Money'>,# <enum 'Person'>,# <enum 'Geo'>,# <enum 'Date'>,# <enum 'Brand'>,# <enum 'Event'># ]# Можно использовать их частично или использовать свои правилаMY_GRAMMARS_LIST= [ Geo, Date, ] text="23 августа в Нижнем Новгороде пройдет очередной день"combinator=Combinator(MY_GRAMMARS_LIST) for (grammar, rule, tokens) incombinator.extract(text): print("Тип:", grammar) print("Правило:", rule) print("Токены:", tokens)Исходный код распространяется под лицензией MIT.
