Затрудняетесь с ИИ или разработкой полного стека? Наши эксперты готовы помочь вам: индивидуальные консультации, техническая интеграция и многое другое. Обращайтесь по адресу [email protected].

Альтернативы SpaCy для извлечения сущностей (NER)

SpaCy уже несколько лет является стандартом де-факто для каждой компании, желающей запустить проект по извлечению сущностей. Что сделало SpaCy таким популярным? И есть ли хорошие альтернативы SpaCy в 2023 году для тех, кто пытается начать проект по извлечению сущностей? Давайте обсудим эти вопросы в данной статье.

SpaCy

SpaCy для извлечения сущностей

Первая версия spaCy была выпущена в 2015 году, и она быстро стала стандартной основой для извлечения сущностей корпоративного уровня (также известной как NER).

Если у вас есть неструктурированный текст (например, полученный из Интернета) и вы хотите извлечь из него структурированные данные, такие как даты, имена, места и т.д., spaCy - очень хорошее решение.

SpaCy интересен тем, что несколько предварительно обученных моделей доступны примерно на 20 языках (см. подробнее здесь). Это означает, что вам не обязательно обучать собственную модель для извлечения сущностей. Это также означает, что если вы хотите обучить свою собственную модель, вы можете начать с предварительно обученной модели, а не начинать с нуля, что может сэкономить вам много времени.

SpaCy считается фреймворком "производственного класса", потому что он очень быстрый, надежный и поставляется с исчерпывающей документацией.

Однако если сущностей по умолчанию, поддерживаемых предварительно обученными моделями spaCy, недостаточно, вам придется поработать над "аннотацией данных" (также известной как "маркировка данных"), чтобы обучить свою собственную модель. Этот процесс занимает очень много времени, и многие проекты по извлечению корпоративных сущностей терпят неудачу из-за этой проблемы.

Допустим, вы хотите извлечь названия должностей из текста (например, из резюме или с веб-страницы компании). Поскольку предварительно обученные модели spaCy по умолчанию не поддерживают такую сущность, вам придется научить spaCy распознавать названия должностей. Для этого необходимо создать обучающую базу данных, содержащую несколько тысяч примеров извлечения названий должностей (а может быть, и гораздо больше!). Вы можете использовать платное программное обеспечение для аннотирования, например Prodigy (созданное командой spaCy), но это все равно предполагает много человеческой работы. На самом деле, довольно часто можно увидеть, как компании нанимают кучу подрядчиков на несколько месяцев для выполнения проекта по аннотированию данных. Такая работа настолько повторяющаяся и скучная, что получаемые наборы данных часто содержат множество ошибок...

Пример аннотации данных
Пример аннотации данных

Давайте посмотрим, какие альтернативные решения вы сможете попробовать в 2023 году!

Стэнфордский CoreNLP

Стэнфордский CoreNLP

Первая версия Stanford CoreNLP была выпущена в 2013 году. Это Java-фреймворк (в то время как spaCy - Python), который позволяет выполнять извлечение сущностей с очень хорошими результатами.

Stanford CoreNLP тоже предлагает предварительно обученные модели, но меньше, чем spaCy (см. подробнее здесь).

Точность этого фреймворка аналогична spaCy, но она зависит от данных, которые вы анализируете. Например, Stanford CoreNLP дает лучшие результаты на юридических данных. Также стоит отметить, что некоторые сущности рассматриваются несколько иначе, чем в spaCy (например, это касается сущности GPE).

Что касается производительности, Stanford кажется более медленным, чем spaCy, что может быть проблемой, если вы пытаетесь достичь очень высокой пропускной способности.

Flair

Флэр НЛП

Flair - это более новый фреймворк Python (выпущен в 2018 году), основанный на фреймворке глубокого обучения PyTorch.

Он набирает большую популярность, поскольку достигает более высокой точности во многих языках по сравнению со spaCy. Предложено несколько предварительно обученных моделей (см. подробнее здесь).

Однако повышение точности достигается ценой снижения скорости. Ваша пропускная способность будет намного ниже по сравнению со spaCy.

Генеративные модели искусственного интеллекта (GPT-J, GPT-3...)

Пару лет назад начал появляться новый вид моделей ИИ: генеративные модели. Эти модели изначально создавались для генерации текста (написать начало фрагмента текста и позволить модели сгенерировать остальное), но люди быстро поняли, что эти модели очень хороши для всех видов обработки естественного языка, включая извлечение сущностей.

Наиболее популярными генеративными моделями сегодня являются GPT-3, GPT-J, GPT-NeoX, T5 и Bloom. Все эти модели глубокого обучения используют архитектуру Transformer, изобретенную компанией Google в 2017 году.

Это новое поколение моделей ИИ очень тяжелое и дорогое в исполнении. Они обычно требуют высокопроизводительного оборудования на базе одного или нескольких графических процессоров. Кроме того, они медленнее таких фреймворков, как spaCy. Но благодаря этим моделям теперь можно извлекать любые сущности без обучения специальной модели!

Извлечение любой сущности без создания специальной модели стало возможным благодаря обучению методом нескольких выстрелов. Эта техника заключается в том, чтобы быстро показать модели, что вы хотите сделать, сделав всего пару примеров во время выполнения. Узнайте больше об обучении с помощью нескольких выстрелов здесь.

Возвращаясь к нашему примеру с извлечением названий должностей, если вы хотите извлечь названия должностей с помощью такой модели, как GPT-J, вам не потребуется аннотировать данные. Это сэкономит вам недели или месяцы человеческой работы. А точность, скорее всего, будет намного выше, чем при извлечении сущностей с помощью spaCy.

См. нашу статью о том, как легко выполнять извлечение сущностей с помощью моделей GPT.

Заключение

SpaCy - это отличная система обработки естественного языка, которая сегодня используется в производстве многими компаниями для задач извлечения сущностей.

Однако spaCy и альтернативные модели, такие как Stanford CoreNLP или Flair, ограничены с точки зрения точности, и для извлечения новых сущностей они требуют утомительной работы по аннотированию. В 2023 году для извлечения сущностей без аннотации можно будет использовать несколько альтернативных моделей, основанных на генерации текста, таких как GPT-J, GPT-NeoX, GPT-3... Эти новые модели действительно помогут все большему числу компаний добиться успеха в их проектах по извлечению сущностей.

Если вы хотите использовать GPT-J и GPT-NeoX, не сомневайтесь, попробуйте воспользоваться API NLP Cloud. (попробуйте здесь)!

Juliette
Менеджер по маркетингу в NLP Cloud