General Architecture for Text Engineering (GATE, программа) — система обработки естественного языка с открытым исходным кодом, использующая наборы компонентов на языке Java. Система изначально была разработана в Университете Шеффилда и развивается с 1995 г.
С помощью GATE реализуются задачи, где требуется выявить смысловое содержание текста и кодировать его в структурированном виде путём добавления аннотаций к сегментам текста. GATE используется наряду с NLTK, R и RapidMiner . Система применяется для извлечения информации, ручной и автоматической семантической аннотации, анализа кореферентности, работы с онтологиями (например, WordNet), машинного обучения (Weka, RASP, MAXENT, SVM Light), анализа потока сообщений в блогах (например, Twitter) .
Семейство инструментов GATE включает: GATE Developer, GATE Mímir, GATE Cloud (для работы с крупномасштабными лингвистическими проектами), GATE Teamware (оптимизация работы серверов для совместного аннотирования текстов), GATE Embedded (библиотека объектов).
GATE поддерживается обширным сообществом разработчиков, пользователей, преподавателей, студентов и учёных. Используется в коммерческих и научно-исследовательских проектах крупными корпорациями, научно-исследовательскими лабораториями и университетами, коммерческими предприятиями малого и среднего бизнеса по всему миру. GATE применяется в самых разных областях научных знаний, относящихся к Компьютерной лингвистике, Обработке естественного языка, Моделированию языковых процессов, вычислительной биологии и медицине . Проекты, использующие 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).
Архитектура и базовые операции Архитектура 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 имеет ряд специфических особенностей. В 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).
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 — Reusable Objects for Language Engineering. Ресурсы хранятся в CREOLE репозиториях, которые содержат XML файлы, Java-архив коды и необходимые для ресурсов библиотеки. Используемые ресурсы группируются вместе в плагины, которые хранятся по определенному адресу (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. Когда выделена часть текста, которой нужно присвоить аннотацию, появляется окно редактора аннотаций, где содержится следующие поля и элементы управления:
Тип аннотации (если какие-то типы уже были добавлены, можно выбрать из существующих) Название атрибута (пустые поля для следующего атрибута появляются автоматически) Значение атрибута Кнопка удаления аннотации
Аннотации группируются в 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.
Компоненты ANNIE объединены в приложение, поэтому для инициализации достаточно нажать на соответствующую зелёную иконку на панели инструментов GATE и выбрать with defaults. После того, как все ресурсы появятся в списке Processing Resources, двойным щелчком открывается приложение ANNIE, которое находится в списке Applications. Интерфейс приложения ANNIE такой же, как и у остальных приложений. В правой части — упорядоченный список ресурсов, которые будут вызываться на документе именно в той последовательности, которая задана в списке. Приложение ANNIE относится к классу Corpus Pipeline, то есть оно должно запускаться на корпусе текстов. В результате работы системы ANNIE в дефолтный AnnotationSet добавляется ряд аннотаций, в том числе Token (токены), Sentence (предложения), Lookup (словарные входы), Person, Location, Organization. Если корпус и документы перед запуском ANNIE лежали в DataStore, ANNIE будет извлекать документы по одному, обрабатывать их и складывать обратно.
Список компонентов: В списке PR есть ресурс Document Reset PR, который удаляет разметку из документа перед обработкой. У ресурса есть параметр setsToKeep, в котором перечисляются названия AnnotationSet-ов, которые не нужно очищать. При наличие в документе ручной разметки необходимо убедиться, что AnnotationSet, содержащий эту разметку, указан в этом списке, иначе он будет стёрт. По умолчанию там указан именно сет Key. Tokenizer. Делит текст на токены, а именно числа, знаки пунктуации, слова, символы, знаки пробелов. Каждому токену присваивается его тип, соответственно, Word (атрибут orth с параметрами: upperInitial, allCaps, lowerCase, mixedCaps), Number, Symbol, Punctuation, SpaceToken. Gazetteer. Определяет именованные сущности в соответствии со списком, то есть текстовым файлом (plain text) c перечислением именованных сущностей построчно. Каждый список содержит различные множества именованных сущностей: города, организации, дни недели и т. д. только для одного из заданных языков. Файл lists.def открывает доступ к списку именованных сущностей. Можно задать тип аннотации для отдельного списка именованных сущностей. Каждый список должен находиться в том же каталоге, что и индекс-файл lists.def.