Natasha - библиотека для поиска и извлечения именованных сущностей (Named-entity recognition) из текстов на русском языке. На данный момент разбираются упоминания персон, даты и суммы денег.
Natasha поддерживает Python 2.7+ / 3.3+ и PyPy.
$ pip install natasha
Если вы используете CPython, рекомендуется также поставить pymorphy2[fast]
:
$ pip install pymorphy2[fast]
from natasha import NamesExtractor
text = '''
Простите, еще несколько цитат из приговора. «…Отрицал существование
Иисуса и пророка Мухаммеда», «наделял Иисуса Христа качествами
ожившего мертвеца — зомби» [и] «качествами покемонов —
представителей бестиария японской мифологии, тем самым совершил
преступление, предусмотренное статьей 148 УК РФ
'''
extractor = NamesExtractor()
matches = extractor(text)
for match in matches:
print(match.span, match.fact)
(69, 75) Name(first='иисус', last=None, middle=None, nick=None)
(86, 95) Name(first='мухаммед', last=None, middle=None, nick=None)
(107, 120) Name(first='иисус', last='христос', middle=None, nick=None)
Про атрибуты объекта match
и другие типы экстракторов написано в документации.
https://natasha.github.io/demo/
Исходный код распространяется под лицензией MIT.
- Telegram-конференция — https://telegram.me/natural_language_processing. Там можно найти ответы на все вопросы (на самом деле нет)
- Таск-трекер — https://github.com/natasha/natasha/issues
- Коммерческая поддержка — http://lab.alexkuk.ru/natasha