Существуют ли библиотеки или проекты для распознавания именованных сущностей на основе правил?

Вопрос или проблема

Одним из тех, что мы рассматривали ранее, является AeroText, но похоже, что он больше не существует как самостоятельный проект. Я думаю, что его можно написать на любом языке, поскольку нас интересует вывод (аннотированные сущности), хотя, безусловно, было бы плюсом, если бы у него был Java API, с которым можно было бы взаимодействовать. Любой уровень от бесплатного до платного был бы оценен.

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

Вы можете использовать пакет программного обеспечения deid (зеркало), предоставляемый PhysioNet/mimic.

Вопросу 3 года, но вот еще один ответ:

Что насчет Spacy?

  • написан на Python
  • бесплатный
  • нет Java API, насколько мне известно

Сопоставление на основе правил. Найдите фразы и токены, и сопоставьте сущности.

Ответ или решение

Да, существует несколько библиотек и проектов для распознавания именованных сущностей (NER — Named Entity Recognition), основанных на правилах. Ниже представлены наиболее заметные примеры, которые могут удовлетворить ваши требования, включая информацию о языке программирования, лицензировании и других аспектах.

1. deid Software Package

  • Язык: Perl
  • Лицензия: Свободное программное обеспечение с открытым исходным кодом
  • Описание: Этот пакет, разработанный в рамках PhysioNet, предназначен для защиты персональной информации (PHI) в медицинских данных. Он использует правила для извлечения именованных сущностей, относящихся к защищенной информации о здоровье.
  • Преимущества:
    • Способен обрабатывать медицинские тексты.
    • Высокая точность в выделении сущностей, связанных с PHI.
  • Недостатки:
    • Работает на Perl, что может быть неудобно, если вы ищете решение для Java.

Ссылка на проект


2. SpaCy

  • Язык: Python
  • Лицензия: Свободное программное обеспечение
  • Описание: SpaCy предлагает возможность выполнения сопоставления на основе правил при распознавании сущностей. Это означает, что вы можете создать свои правила для извлечения необходимых сущностей из текста.
  • Преимущества:
    • Легко настраиваемый и интегрируемый инструмент.
    • Поддерживает множество языков и форматов.
    • Имеет хорошо документированное API для создания настраиваемых правил.
  • Недостатки:
    • Нет прямой поддержки Java, что может быть недостатком для вашего проекта.

Ссылка на SpaCy


3. Apache OpenNLP

  • Язык: Java
  • Лицензия: Свободное программное обеспечение под лицензией Apache 2.0
  • Описание: Хотя OpenNLP в основном ориентирован на статистические методы, он также позволяет использовать правила для распознавания сущностей. Вы можете определить регулярные выражения и правила для извлечения конкретных типов сущностей.
  • Преимущества:
    • Полная интеграция с Java, что удобно для работы с существующими Java-приложениями.
    • Гибкость в использовании как правил, так и моделей машинного обучения.
  • Недостатки:
    • Требует некоторого времени на настройку правил, если вы не знакомы с библиотекой.

Ссылка на OpenNLP


4. Stanford NLP

  • Язык: Java
  • Лицензия: Свободное программное обеспечение под лицензией GPL
  • Описание: Stanford NLP предоставляет инструменты для обработки естественного языка, включая возможности для правилами-основанного распознавания именованных сущностей. Вы можете создать свои наборы правил и использовать их для извлечения сущностей.
  • Преимущества:
    • Высокая точность распознавания.
    • Хорошо документирован и поддерживается.
  • Недостатки:
    • Может быть избыточным для простых задач, если не требуется весь функционал библиотеки.

Ссылка на Stanford NLP


Итог

Ваш выбор будет зависеть от конкретных требований к языку программирования и функциональности. Решения, основанные на правилах, могут выступать отличным дополнением к вашему существующему процессу аннотирования именованных сущностей. Выбор между Perl, Python и Java также будет важен. Настоящие библиотеки обеспечивают гибкость и настраиваемость, что позволяет адаптировать их под ваши нужды.

Оцените материал
Добавить комментарий

Капча загружается...