GATE (программа)

GATE (General Architecture for Text Engineering) — система обработки естественного языка с открытым исходным кодом, использующая наборы компонентов на языке Java. Система была изначально разработана в Университете Шеффилда и развивается с 1995 года.

GATE применяется для задач, требующих выявления смыслового содержания текста и кодирования его в структурированном виде путём добавления аннотаций к сегментам текста. GATE используется наряду с NLTK, R и RapidMiner и предназначена для извлечения информации, ручной и автоматической семантической аннотации, анализа кореферентности, работы с онтологиями (например, WordNet), машинного обучения (Weka, RASP, MAXENT, SVM Light), а также анализа сообщений в блогах.

В семейство инструментов GATE входят: GATE Developer, GATE Mímir, GATE Cloud (для крупномасштабных лингвистических проектов), GATE Teamware (оптимизация работы серверов для совместной аннотации текстов), GATE Embedded (библиотека объектов).

GATE поддерживается большим сообществом разработчиков, пользователей, преподавателей, студентов и учёных. Она используется в коммерческих и исследовательских проектах крупными корпорациями, лабораториями, университетами и компаниями по всему миру — в областях, связанных с компьютерной лингвистикой, обработкой естественного языка, моделированием языковых процессов, вычислительной биологией и медициной. Среди проектов, использующих GATE: ForgetIT (UK), The National Archives (UK), EMILLE (UK), myGRID (UK), AKT (UK), KIT Semantic Platform, Ontotext (Болгария), MeManage (Германия), Med Dictate (Канада), IE Denso (Япония)[1].

Что важно знать
GATE
Тип интеллектуальный анализ данных, извлечение информации
Разработчик Университет Шеффилда
Написана на Java
Интерфейс графический, GATE API
Операционные системы Windows Vista, Windows XP, macOS, Linux, Solaris
Языки интерфейса английский
Первый выпуск 1995
Аппаратная платформа Java Virtual Machine
Последняя версия
Репозиторий github.com/GateNLP
Лицензия LGPL
Сайт gate.ac.uk

Архитектура и базовые операции

Архитектура GATE состоит из взаимосвязанных компонентов — модулей программного обеспечения с чётко определёнными интерфейсами, которые могут быть развёрнуты в различных контекстах. В GATE реализованы готовые решения для токенизации, тегирования, разбиения текста на высказывания (сплиттер), извлечения именованных сущностей, машинного обучения.

Компоненты делятся на три категории:

  • Language Resources (LR) — лингвистические ресурсы (данные);
  • Processing Resources (PR) — программные ресурсы для обработки документов;
  • Visual Resources (VR) — графический интерфейс для LR и PR.

Поддерживаются следующие форматы документов: Plain Text, HTML, SGML, XML, RTF, Email, PDF (некоторые документы), форматы Microsoft Office, OpenOffice (некоторые форматы), UIMA CAS, CoNLL/IOB. Работа с форматами документов в GATE имеет ряд специфических особенностей. Встроены средства для работы с Unicode. Поддерживаются языки: английский (по умолчанию), испанский, китайский, арабский, болгарский, французский, немецкий, хинди, итальянский, кебуано, румынский, русский.

В главном окне программы есть четыре основных раздела меню: Applications, Language Resources, Processing Resources, Datastores.

Applications

Контроллер с набором программ обработки текста (Processing Resources). Определённые и сохранённые процессы обработки текста можно многократно применять к документу или корпусу, что обеспечивает повторяемость и экономию времени.

Language Resources (LR)

Три типа данных: документы, корпуса и графы аннотаций.

  • Document/Blank Document — документ Gate, загруженный из файла или пустой. Создаётся через Language Resources > New > Gate Document. Документ может быть сохранён в XML.
  • Gate Corpus — коллекция документов. Создаётся через Language Resources > New > Gate Corpus. Корпус наполняется путём выбора документов при создании, добавления в существующий корпус или с помощью команды Populate. Сохраняется в XML, при этом указывается папка.
  • Аннотации — организованы в виде графов, моделируются как Java-наборы. Аннотации — дуги с начальным и конечным узлами, уникальным ID, присвоенным типом и FeatureMap (набор свойств). Узлы ссылаются на сегменты исходного текста.

Processing Resources (PR)

Программы для обработки текстов. С помощью PR создаётся или изменяется разметка документа. При создании PR задаются параметры инициализации и запуска, а контроллеры управляют порядком их применения и взаимодействием с LR. Основные типы контроллеров:

  • Pipeline — последовательное применение цепочки PR к документу.
  • Corpus Pipeline — последовательная обработка корпуса документов.

Работа с Pipeline и Corpus Pipeline схожа: создаётся контроллер, выбираются нужные PR, определяется последовательность, задаются параметры для PR и целевые документы/корпусы. После запуска контроллер применяет PR в заданном порядке.

Конфигурации контроллеров могут сохраняться в Applications (Save application state), рекомендуется расширение .gapp.

Набор ресурсов CREOLE

CREOLE (Collection of REusable Objects for Language Engineering) — интегрированные с GATE ресурсы, хранящиеся в репозиториях (CREOLE repositories), включающих XML, Java-архивы и необходимые библиотеки. Ресурсы группируются в плагины, которые бывают базовыми (загружаются при установке GATE) и пользовательскими. Плагины могут размещаться на локальном диске или удалённом сервере. Загрузка плагина осуществляется через File > Manage CREOLE Plugins > Add new creole repository. При подключении пользователь выбирает адреса, GATE загружает ресурсы (PR), у выбранного плагина справа отображается список настроек.

Datastores

Хранилища данных для документов/корпусов и процессов. Чаще всего используется Serial DataStore:

  • создание (Datastores > Create datastore > Serial DataStore > указать пустую папку),
  • открытие (Open datastore),
  • сохранение документов и корпусов,
  • сохранение изменений (Save to its datastore).

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

Разметка документов в GATE Developer

Стандартизированная разметка документов позволяет реализовать эффективный поиск и извлечение данных и создавать онтологии.

В редакторе документов отображаются вкладки Annotation Sets и Annotations List (или Annotations), где можно выбирать типы аннотаций для отображения, создавать новые аннотации. Есть функция смены цвета аннотаций. При выделении фрагмента текста открывается окно редактирования аннотаций со следующими полями:

  1. Тип аннотации (можно выбрать из ранее добавленных)
  2. Название атрибута (добавляются автоматически для новых атрибутов)
  3. Значение атрибута
  4. Кнопка удаления аннотации

Аннотации группируются в AnnotationSet — это позволяет хранить для одного документа несколько вариантов разметки (например, экспертную и автоматическую). Экспертная разметка обычно хранится в AnnotationSet с названием Key; автоматическая — в стандартном пустом наборе. Если AnnotationSet Key отсутствует, его нужно создать.

Система ANNIE

GATE содержит интеллектуальную систему ANNIE (A Nearly-New Information Extraction System) — набор ресурсов для токенизации (ANNIE English Tokenizer), POS-теггинга (ANNIE POS-Tagger), разбивки на предложения (ANNIE Sentence Splitter), извлечения именованных сущностей (ANNIE Gazetteer, ANNIE NE Transducer) и анализа кореферентности (ANNIE OrthoMatcher). Разработчики: Hamish Cunningham, Valentin Tablan, Diana Maynard, Kalina Bontcheva, Marin Dimitrov и др. Система использует конечные автоматы и регулярные выражения JAPE.

Компоненты ANNIE объединены в приложение; для запуска достаточно выбрать соответствующий элемент в панели GATE и использовать настройки по умолчанию. После инициализации ресурсы появляются в списке Processing Resources, а сам ANNIE — в списке Applications. Интерфейс типовой: справа — последовательность ресурсов для применения. ANNIE работает как Corpus Pipeline, то есть запускается на корпусе текстов. В результате в стандартный AnnotationSet добавляются аннотации Token, Sentence, Lookup, Person, Location, Organization. При размещении файлов в DataStore документы извлекаются, обрабатываются и сохраняются обратно по одному.

Список компонентов:

  1. Document Reset PR — очищает разметку в документе. В параметре setsToKeep перечисляются AnnotationSet-ы, которые не должны удаляться (обычно Key).
  2. Tokenizer — разбивает текст на токены: слова, числа, знаки препинания, пробелы и др.; каждому токену присваивается тип (Word, Number, Symbol, Punctuation, SpaceToken).
  3. Gazetteer — определяет именованные сущности по спискам (text files). Каждый список — это сущности одного типа для конкретного языка. Индекс-файл lists.def связывает списки; для каждого можно задать свой тип аннотации.
  4. Sentence Splitter — разбивает текст на высказывания; использует списки аббревиатур из Gazetteer. Каждому высказыванию присваивается аннотация Sentence; внутри — аннотация Split с типом (‘internal’ или ‘external’).
  5. RegEx Sentence Splitter — альтернатива: деление текста по регулярным выражениям JAPE.
  6. Part of Speech Tagger — присваивает части речи (POS) каждому слову или символу, используя словарь и правила на основе корпуса Wall Street Journal.
  7. Semantic Tagger — семантическая аннотация с помощью правил JAPE-преобразователя, использующих ранее полученные теги.
  8. Orthographic Coreference (OrthoMatcher или NameMatcher) — определяет отношения между именованными сущностями по совпадениям слов; не выявляет новые сущности, но может назначать тип неклассифицированным именам.
  9. Pronominal Coreference — дополнительный ресурс для поиска цитируемого текста, прямой речи, местоимений (анафора), повторов. Требует предварительной аннотации по тегам Token, Sentence, Split, Location, Person, Organization; использует регулярные выражения JAPE и конечные автоматы.

Тестирование результатов обработки текста

В GATE есть инструменты для оценки качества обработки:

  • AnnotationDiff Tool — сравнивает два AnnotationSet на одном документе (выбор Key и Response, тип аннотации, атрибуты). После запуска отображаются пары: Correct (полное совпадение), Missing (не найдена правильная аннотация), Spurious/False positive (найдена лишняя аннотация), Partially correct. Рассчитываются метрики Precision, Recall и F-меры.
  • Corpus Quality Assurance (CQA) — вычисляет метрики по всему корпусу документов. Открывается вкладка CQA, задаются параметры оценки (например, F1-score strict, lenient, average), просматривается статистика и результаты сравнения, с возможностью экспорта в HTML[2].

GATE Mímir

GATE Mímir — система поиска и индексирования с открытым исходным кодом, распространяемая по лицензии GNU LGPL 3.0. Поддерживает индексацию и поиск лингвистической и семантической информации из больших наборов данных. GATE Mímir позволяет выполнять поисковые запросы по тексту, аннотациям, онтологиям, семантическим метаданным с использованием текста, структуры и SPARQL. Готовых бинарных дистрибутивов не предоставляется — пользователю предлагается собрать исходный код самостоятельно. Доступны подробные инструкции и примеры использования, а также архивы исходных текстов.

Примечания

Литература

  • Hamish Cunningham, Diana Maynard, Kalina Bontcheva, et al. Developing Language Processing Components with GATE Version 7 (a User Guide) (англ.). The University of Sheffield (2013). Дата обращения: 27 июня 2024. Архивировано 16 февраля 2022 года.
  • Seth Grimes. Open Source Text Analytics (англ.) (2009). Дата обращения: 27 июня 2024.
  • K. Bontcheva, L. Derczynski, A. Funk, M.A. Greenwood, D. Maynard, N. Aswani (2013). “TwitIE: An Open-Source Information Extraction Pipeline for Microblog Text”. Association for Computational Linguistics [англ.]. Дата обращения 2024-06-27.
  • Hamish Cunningham, Valentin Tablan, Angus Roberts, Kalina Bontcheva. “Getting More Out of Biomedical Documents with GATE's Full Lifecycle Open Source Text Analytics”. National Library of Medicine [англ.]. Дата обращения 2026-04-01.
  • Cunningham H., Maynard D., Bontcheva K., Tablan V. (2009). “GATE: A Framework and Graphical Development Environment for Robust NLP Tools and Applications” (PDF). University of Sheffield [англ.]. Дата обращения 2024-06-27.
  • Konchady Manu. Building Search Applications: Lucene, LingPipe, and Gate : [англ.]. — Oakton, Virginia, USA : Mustru Publishing, 2008. — P. 447. — ISBN 978-0-61520-425-3.
  • Graham Wilcock. Introduction to Linguistic Annotation and Text Analytics : [англ.]. — Princeton, NJ : Morgan & Claypool Publishers, 2009. — P. 159. — ISBN 9781598297386.
  • Valentin Tablan, Ian Roberts. Mímir User Guide (англ.). The University of Sheffield (2013). Дата обращения: 27 июня 2024.