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
и другие типы экстракторов написано в документации.
- Демо поиска упоминаний
- Telegram-конференция, где можно найти ответы на все вопросы (на самом деле нет)
Исходный код распространяется под лицензией MIT.