Распознавание именованных сущностей (NER) - Лена Капаца
Распознавание именованных сущностей (NER) by Лена Капаца April 8, 2024 Основы

Распознавание именованных сущностей (Named Entity Recognition) — выделение из текста именованных сущностей, таких как имена людей, места, организации и даты. Это имеет множество практических применений, включая извлечение информации, классификацию текстов, анализ социальных медиа и многое другое. В этой статье мы рассмотрим, как реализовать Named Entity Recognition с использованием Python и библиотеки spaCy.

Перед тем как начать работу с распознаванием именованных сущностей, давайте установим библиотеку spaCy:

 

!pip install spacy


После установки spaCy нам также понадобится модель для аннотации текста и извлечения именованных сущностей. Для этого мы будем использовать модель 'ru_core_news_sm', предназначенную для русского языка:

 

!python -m spacy download ru_core_news_sm


Теперь, когда у нас есть все необходимое, давайте посмотрим на пример кода, демонстрирующий использование spaCy для распознавания именованных сущностей в русском тексте:


import spacy

 

Загрузим модель для русского языка:

 

nlp = spacy.load("ru_core_news_sm")

 

Создадим пример текста для анализа:


text = "Владимир Путин родился 7 октября 1952 года в Ленинграде. Столица России — Москва."

 

Проанализируем текст с помощью spaCy:


doc = nlp(text)


for ent in doc.ents:
    print(ent.text, ent.label_)

Владимир Путин PER
7 октября 1952 года DATE
Ленинград LOC
России LOC
Москва LOC

Здесь PER обозначает персону (человека), LOC — локацию, а DATE — дату.

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

© Лена Капаца. Все права защищены.