Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 2.36 KB

File metadata and controls

57 lines (42 loc) · 2.36 KB

Natasha

Наташа извлекает именованные сущности из текста на русском языке, включая (но не ограничиваясь):

Физ. лица: Иванов Иван Иванович, Иван Иванов, Иван Петрович, Ваня
Организации: ПАО «Газпром», ИП Иванов Иван Иванович, агентство Bloomberg
События: фестиваль «Ковчег спасения», шоу «Пятая империя»
Гео-объекты: Москва, Ленинградская область, Российская Федерация, Северо-Кавказский ФО
Объекты времени: 21 мая 1996 года, 21.05.1996, 21 мая, сегодня, в конце года
Денежные единицы: 200 рублей, 1 млрд. долларов

Алгоритм работы (выделение сущностей по заданным правилам, используя морфологический разбор) похож на Томита-парсер от Яндекса.

Установка

$ pip install natasha

Использование

Для первого знакомства можно использовать онлайн версию.

from natasha import Combinator, DEFAULT_GRAMMARS
from natasha.grammars import Geo, 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) in combinator.extract(text):
    print("Тип:", grammar)
    print("Правило:", rule)
    print("Токены:", tokens)

Лицензия

Исходный код распространяется под лицензией MIT.