"Обработка естественного языка"

NER корпоративного уровня с spaCy

Создавайте промышленные приложения для распознавания именованных сущностей (NER) за считанные минуты ...

Распознавание именованных сущностей - одна из наиболее важных и широко используемых задач НЛП. Это метод извлечения сущностей (ключевой информации) из стека неструктурированных или полуструктурированных данных. Сущность может быть любым словом или серией слов, которые последовательно относятся к одному и тому же объекту. Каждый обнаруженный объект классифицируется по заранее определенной категории. Например, модель NER может обнаружить слово «Индия» в тексте и классифицировать его как «Страна».

Многие популярные технологии, которые мы используем в повседневной жизни, такие как умные помощники, такие как Siri и Alexa, поддерживаются функцией Named Entity Recognition. Некоторые другие реальные приложения NER включают сортировку заявок для поддержки клиентов, просмотр резюме, расширение возможностей механизмов рекомендаций. Вот пример NER в действии:

Теперь, независимо от того, являетесь ли вы новичком в НЛП или имеете некоторые предварительные знания, в spacy есть что-то для всех. Он подходит для любой аудитории, от новичка до продвинутого. Теперь давайте разберемся в части "spacy" что, почему и как.

Что такое spaCy?

spaCy - это бесплатная библиотека с открытым исходным кодом для расширенной обработки естественного языка (NLP) с встроенной поддержкой Python. В наши дни де-факто становится выбором специалистов по обработке данных и организаций использовать предварительно обученную пространственную модель для задач NER производственного уровня, а не обучать новую модель с нуля собственными силами.

Если вы работаете с большим количеством текста, со временем вы захотите узнать о нем больше. Например, о чем это? Что означают эти слова в контексте? Кто что с кем делает? Какие компании и продукты упоминаются? Какие тексты похожи друг на друга? … spaCy ответит на все ваши вопросы

spaCy разработан специально для производственного использования и помогает создавать приложения, обрабатывающие и «понимающие» большие объемы текста. Его можно использовать для создания систем извлечения информации или понимания естественного языка или для предварительной обработки текста для глубокого обучения.

spaCy быстрый, точный и удобный с легкой кривой обучения

Почему spaCy?

spacy предлагает собственные встроенные функции и возможности. В нем есть набор предварительно обученных моделей на многих языках мира, которые можно просто установить как пакет python. Эти пакеты становятся компонентом приложения, как и любой другой модуль. Они версированы и могут быть определены как зависимости в вашем requirements.txt файле.

Ниже приведены особенности Spacy, которые выгодно отличают его от любых потенциальных конкурентов:

  • Предварительная обработка: он состоит из предварительно определенного токенизатора, лемматизатора и анализатора зависимостей для автоматической предварительной обработки входных данных.
  • Лингвистическая функция: он также имеет современное средство тегирования части речи, которое автоматически связывает теги POS с каждым словом.
  • Визуализация: он имеет возможность визуализировать деревья зависимостей и создавать красивые иллюстрации для задачи NER.

  • Гибкость: он позволяет расширять или заменять любой компонент конвейера или добавлять новые компоненты, такие как TextCategorizer.
  • Передача обучения: он дает пользователю возможность выбрать любую предварительно обученную модель и настроить ее для последующих задач.
  • Конвейер: S pacy предлагает встроенную функцию для создания конвейера обработки, который автоматизирует обработку необработанного текста и генерирует объемный распознанный объект документа, который можно использовать для множества задач НЛП.

СПАСИЙ В ДЕЙСТВИИ

spaCy доступна как стандартная библиотека Python в PyPI, которую можно легко установить с помощью pip или conda в зависимости от среды Python. Ниже приведены команды для установки spacy:

Теперь давайте исследуем, как мы можем эффективно выполнять распознавание именованных сущностей с помощью spacy. Для этого нам нужно загрузить предварительно обученную языковую модель, которая очень удобна с spacy. Как мы видели ранее, spacy поддерживает несколько языков, но мы ограничимся только английским языком. В настоящее время существует три варианта моделей английского языка: малый, средний и большой.

Все они начинаются с префикса en_core_web_* и загружаются предварительно определенными компонентами токенизатора, теггера, парсера и распознавателя сущностей. Как правило, точность языковой модели увеличивается с увеличением размера модели. Здесь мы загрузим большой вариант модели на английском языке.

После загрузки модели в объект nlp, в конвейере которого теперь есть токенизатор, теггер, синтаксический анализатор и распознаватель сущностей. Следующим шагом является загрузка текстовых данных и их обработка с использованием различных компонентов объекта nlp.

Для нисходящих / специфичных для домена задач spacy также дает нам возможность добавлять собственные стоп-слова вместе со стоп-словами по умолчанию. Кроме того, стоп-слова очень легко идентифицировать, где каждый токен имеет атрибут IS_STOP, который позволяет нам узнать, является ли слово стоп-словом или нет.

POS-теги

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

После токенизации SpaCy может пометить данный отправленный объект, используя свои современные статистические модели. Теги доступны как атрибут объекта Token. В приведенном ниже коде показаны токены и соответствующие им теги P.O.S, проанализированные из заданного текста с помощью SpaCy.

вывод:

Визуализация частей речи

spaCy поставляется со встроенным визуализатором зависимостей под названием displacy, который можно использовать для визуализации синтаксической зависимости (отношений) между токенами и сущностями, содержащимися в тексте.

вывод:

Распознавание именованных сущностей:

Именованная сущность - это реальный объект с собственным именем, например Индия, Рафаэль Надаль, Google. Здесь Индия - страна, обозначенная как GPE (геополитическая сущность), Рафаэль Надаль - PER (человек) , Google является ORG (организацией). Сам SpaCy предлагает определенный предопределенный набор сущностей. NER-тегирование не является результатом, оно помогает в дальнейших задачах.

вывод:

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

вывод:

Заключение

Сегодня, когда многие организации из списка Fortune 500 отваживаются на AI, ML и NLP. spaCy является лидером в использовании организациями обработки естественного языка для решения своих последующих задач. spaCy удобен в использовании и может быть изучен с нулевыми или минимальными усилиями кем-то, кто уже знаком с этой областью. Де-факто для команд по обработке данных становится все более предпочтительным включение spaCy в создание современных, готовых к производству приложений НЛП в кратчайшие сроки.

Если вы хотите узнать больше или хотите, чтобы я написал больше по этой теме, не стесняйтесь обращаться к нам…

Мои социальные ссылки: LinkedIn | Твиттер | Github

Если вам понравился этот пост или он был полезен, пожалуйста, нажмите кнопку хлопка на минутку, это повысит видимость публикации для других пользователей среднего уровня.