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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
General Architecture for Text Engineering (GATE)
GATE5 main window.png
Основное окно программы GATE Developer
Тип

Интеллектуальный анализ данных, извлечение информации

Разработчики

Университет Шеффилда

Написана на

Java

Интерфейс

Графический, GATE APIs

Операционная система

Windows Vista, Windows XP, Mac OS X, Linux, Mac OS X, Solaris, etc.

Языки интерфейса

Английский

Первый выпуск

1995

Последняя версия

GATE 7.1 (30.11.2012)

Лицензия

LGPL

Сайт

gate.ac.uk

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

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

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

GATE поддерживается обширным сообществом разработчиков, пользователей, преподавателей, студентов и ученых. Используется в коммерческих и научно-исследовательских проектах крупными корпорациями, научно-исследовательскими лабораториями и университетами, коммерческими предприятиями малого и среднего бизнеса по всему миру. GATE применяется в самых разных областях научных знаний, относящихся к Компьютерной лингвистике, Обработке естественного языка, Моделированию языковых процессов, вычислительной биологии и медицине [5]. Проекты, использующие GATE: ForgetIT (UK), The National Archives (UK), EMILLE (UK), myGRID (UK), AKT (UK), KIT Semantic Platform, Ontotext (Bulgaria), MeManage (Germany), Med Dictate (Canada), IE Denso (Japan)[6].

Архитектура и базовые операции[править | править вики-текст]

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

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

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

При запуске программы в ее основном окне содержится четыре основных пункта меню: Applications, Language Resources, Processing Resources, Datastores.

Applications[править | править вики-текст]

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

Language Resources (LR)[править | править вики-текст]

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

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

Processing Resources (PR)[править | править вики-текст]

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

  • Pipeline. Последовательное применение цепочки PR к документу. После инициализации нужных ресурсов и добавления документов, можно создать контроллер и запустить наши ресурсы в заданной последовательности с заданными параметрами на заданном наборе документов.
  • Corpus Pipeline. Применение цепочки PR к корпусу.

Принципы работы с Pipeline и Corpus Pipeline похожи: создается новый контроллер (правой кнопкой на Applications > New > название контроллера), PR выбираются из списка слева и устанавливаются в заданном пользователем порядке. Указываются в случае Pipeline целевой документ, в случае Corpus Pipeline — целевой корпус, определяются параметры для PR. После запуска Run контроллер начнёт последовательно запускать PR на выбранных документах в порядке, заданном пользователем.

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

Набор ресурсов CREOLE[править | править вики-текст]

GATE CREOLE Plugin-manager

Набор ресурсов, интегрированных с GATE, известен как CREOLE — Reusable Objects for Language Engineering. Ресурсы хранятся в CREOLE репозиториях, которые содержат XML файлы, Java-архив коды и необходимые для ресурсов библиотеки. Используемые ресурсы группируются вместе в плагины [8], которые хранятся по определенному адресу (URL или file:/URL). Плагины бывают базовыми (загружаются при инсталляции GATE) и пользовательскими, могут находиться на локальном диске или удаленном сервере. Когда файл загружается в GATE, он выглядит как файл настроек creole.xml. Плагины CREOLE управляются через интерфейс с помощью команды File > Manage CREOLE Plugins > Add new creole repository. GATE представляется как набор настроек (функций), куда пользователь подключает компоненты CREOLE: пользователь задает список адресов, GATE извлекает по ним соответствующие ресурсы (PR). При выборе плагина в поле справа появляется его список настроек.

Datastores[править | править вики-текст]

Хранилище данных. Необходим для хранения документов/корпусов и процессов для дальнейшего использования. Из всех видов хранилищ часто используется Serial DataStore. Хранилище можно

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

Последовательность процессов обработки текстов из Applications можно запустить из-под DataStore. Нужно открыть DataStore, открыть корпус, а затем в Applications выбрать этот корпус. При запуске Application на корпусе из DataStore каждый документ будет загружен, обработан, сохранен и закрыт. То есть, в одно и то же время обрабатывается только один документ. Это не перегружает память, но процесс идет медленнее, чем если бы обрабатывались все документы одновременно.

Разметка документов в GATE Developer[править | править вики-текст]

Разметка документов в соответствии с едиными правилами позволяет реализовать поиск и извлечение данных из документа, создавать онтологии.

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

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

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

Система 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 и другие. Разработчики ANNIE используют алгоритмы конечных автоматов и регулярные выражения JAPE [9].

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

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

  1. В списке PR есть ресурс Document Reset PR, который удаляет разметку из документа перед обработкой. У ресурса есть параметр setsToKeep, в котором перечисляются названия AnnotationSet-ов, которые не нужно очищать. При наличие в документе ручной разметки необходимо убедиться, что AnnotationSet, содержащий эту разметку, указан в этом списке, иначе он будет стёрт. По умолчанию там указан именно сет Key.
  2. Tokenizer. Делит текст на токены, а именно числа, знаки пунктуации, слова, символы, знаки пробелов. Каждому токену присваивается его тип, соответственно, Word (атрибут orth с параметрами: upperInitial, allCaps, lowerCase, mixedCaps), Number, Symbol, Punctuation, SpaceToken.
  3. Gazetteer. Определяет именованные сущности в соответствии со списком, то есть текстовым файлом (plain text) c перечислением именованных сущностей построчно. Каждый список содержит различные множества именованных сущностей: города, организации, дни недели и т. д. только для одного из заданных языков. Файл lists.def открывает доступ к списку именованных сущностей. Можно задать тип аннотации для отдельного списка именованных сущностей. Каждый список должен находиться в той же директории, что и индекс-файл lists.def.
  4. Sentence Splitter. Делит текст на высказывания. Splitter использует список аббревиатур из Gazetteer, чтобы отличить конец высказывания от других типов использования знаков препинания. Каждому высказыванию присваивается аннотация ‘Sentence’, внутри которой находится аннотация ‘Split’ со значением ‘internal’ и ‘external’ для различия вопросительных, восклицательных, утвердительных предложений.
  5. RegEx Sentence Splitter. Альтернативный способ деления текста на высказывания с помощью регулярных выражений JAPE.
  6. Part of Speech Tagger. Проводит аннотацию каждого слова и символа. Существует список используемых тегов. Использует лексику и множество правил, сформированных на корпусе из Wall Street Journal. Правила и лексику можно менять вручную.
  7. Semantic Tagger. Семантическая аннотация осуществляется с помощью правил JAPE-преобразователя (регулярных выражений), которые используют теги, полученные на предыдущих этапах аннотирования.
  8. Orthographic Coreference (OrthoMatcher или ‘NameMatcher’). Добавляет тип отношений между тегами именованных сущностей и семантическими тегами. Не находит новые именованные сущности, но может приписать неклассифицируемый тип имени собственного, ориентируясь на совпадения слов.
  9. Pronominal Coreference. Подключается в PR как дополнительный ресурс плагина ANNIE. Может находить цитируемый текст, прямую речь, местоимения (замена существительных, анафора), повторы. Требует предварительного аннотирования по тегам: Token (English Tokenizer), Sentence (Sentence Splitter), Split (Sentence Splitter), Location (NE Transducer, OrthoMatcher), Person (NE Transducer, OrthoMatcher), Organization (NE Transducer, OrthoMatcher). Анализ осуществляется с помощью правил JAPE-преобразователя (регулярных выражений), строится конечный автомат для поиска знаков прямой речи и цитат (одинарных и двойных кавычек, др.), поиска местоимений «it, its, itself» и «I, me, my, myself».

Тестирование результатов обработки текста[править | править вики-текст]

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

  • AnnotationDiff Tool выполняет сравнение на одном документе (кнопка сравнения на панели GATE).

Параметры: Key set (имя AnnotationSet с разметкой № 1), Response set (имя AnnotationSet с разметкой № 2), Type (одновременно можно тестировать только один тип), Features (атрибуты, которые мы сравниваем). После запуска сравнения (Compare) AnnotationDiff выведет пары аннотаций, отметив цветом тип пары. Типы: Correct (полное совпадение), Missing (правильная аннотация не найдена), Spurious/False positive (найдена лишняя аннотация), Partially correct (частичное пересечение границ аннотаций). В соответствии с количеством пар разных типов вычисляются стандартные метрики Precision, Recall и F.

  • Corpus Quality Assurance (CQA) предназначен для вычисления метрик качества на корпусе.

В окне нужного корпуса открывается вкладка Corpus Quality Assurance. CQA соберет данные по сетам, аннотациям и их атрибутам. Необходимо задать параметры, выбрать типы оценок (например, F1.0-score strict, lenient и average). Запустить сравнение. На вкладке Document Statistics можно посмотреть статистику по документам, а также сразу открыть выбранный документ или посмотреть для него AnnotationDiff. Результаты тестирования можно экспортировать в HTML.

GATE Mímir[править | править вики-текст]

GATE Mímir — система обработки поисковых запросов с открытым исходным кодом, размещенным на SourceForge, распространяемая по GNU Lesser General Public Licence 3.0. GATE Mímir обеспечивает поддержку индексации и поиск языковой и семантической информации, поступающей из приложений с огромными базами лингвистических данных. GATE Mímir дает возможность поиска информации по тексту, аннотациям, семантическим онтологиям и семантическим метаданным, используя произвольные комбинации текста, структурную информацию и SPARQL. Разработчики не предоставляют готовый укомплектованный продукт, но предлагают скачать исходники и скомпилировать ваши собственные файлы. Предоставляется инструкция пользователя GATE Mímir [10], примеры использования [11], для последних версий релиза доступны архивы целого дерева исходников [12].

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]