Поделиться через


Сведения о расширенных лингвистических службах

Расширенные лингвистические службы (ELS) реализованы в виде библиотеки динамической компоновки (DLL), которая предоставляет различные функции лингвистической поддержки для текста, указанного приложением. Технология включает платформу ELS и подключаемые модули для нескольких предопределенных типов лингвистических служб, доступных приложению через платформу.

Примечание

Модуль ELS устанавливается автоматически в Windows 7 и более поздних версиях.

 

Платформа ELS

Платформа ELS — это интерфейс между приложением и службами ELS. Он предоставляет простой способ реализации нескольких видов лингвистических функций с помощью одного и того же API, который позволяет приложению получать доступ к определенным службам и использовать их. Дополнительные сведения об API см. в справочнике по расширенным лингвистическим службам.

Примечание

Когда приложение вызывает любую из функций API ELS, платформа выделяет память и ресурсы, необходимые для взаимодействия со службами. Приложение отвечает за повторный вызов платформы для освобождения этих ресурсов.

 

Платформа работает в виртуальном пространстве памяти приложения, и вся выделенная память является частью этого пространства. Таким образом, приложению требуется только связать библиотеку DLL компонента ELS (Elscore.dll) путем связывания с Elscore.lib или путем динамической загрузки Elscore.dll.

Службы ELS

Для Windows 7 и более поздних версий платформа ELS поддерживает только следующие предопределенные службы.

Примечание

Будущие версии ELS будут поддерживать дополнительные службы, предоставляемые корпорацией Майкрософт или поставщиками услуг.

 

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

  • "Распознавание языка"
  • "Обнаружение скриптов"
  • "Транслитерация"

Платформа использует метаданные службы для перечисления служб, запрашиваемых приложением. Такие свойства, как глобальный уникальный идентификатор (GUID) службы, поддерживаемые языки ввода и вывода и скрипты, а также категория службы, могут использоваться приложением для перечисления требуемых служб ELS.

Каждая служба ELS реализована в виде подключаемого модуля, поддерживаемого библиотекой DLL, которая может быть установлена в операционной системе, чтобы платформа ELS вела ее обнаружение и использование. При необходимости службы могут предоставлять собственные подслужбы.

Основные операции ELS

В этом разделе описываются операции main, поддерживаемые платформой ELS. Платформа поддерживает синхронный и асинхронный режимы вызовов. В режиме асинхронных вызовов пул потоков приложений используется для планирования потоков обработки запросов.

Примечание

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

 

Перечисление служб

Платформа ELS загружает и управляет всеми службами ELS, делая работу прозрачной для приложения. Приложение перечисляет доступные службы, вызывая MappingGetServices. Инструкции по программированию см. в разделе Перечисление и освобождение служб.

Примечание

Для повышения производительности рекомендуется, чтобы приложение перечислило доступные службы только один раз. Платформа ELS снова проверяет службы при следующем перечислении, чтобы убедиться, что результаты перечисления всегда актуальны.

 

Распознавание текста

После перечисления службы приложение вызывает функцию MappingRecognizeText , чтобы использовать определенную службу ELS для сопоставления любого текстового диапазона входного текста с выходным текстом. Примером распознавания текста является использование службы распознавания языка, которая получает сегмент текста и определяет его наиболее вероятный язык.

После того как служба распознает текст, MappingRecognizeText возвращает MAPPING_PROPERTY_BAG структуру, заполненную выходными данными и свойствами, созданными службой. Чтобы избежать утечек памяти, приложение должно освободить контейнер свойств, вызывая MappingFreePropertyBag для каждого времени, когда MappingRecognizeText возвращает S_OK. Обычно приложение делает это либо по завершении использования выходных данных, либо когда выходные данные больше не актуальны, так как область ввода текста была изменена, например изменена или удалена. При освобождении контейнера свойств функция MappingFreePropertyBag возвращается.

Инструкции по программированию для распознавания текста приведены в разделе Запрос на распознавание текста.

Завершение работы службы

Если приложению больше не требуются службы ELS, оно вызывает MappingFreeServices перед завершением работы. Дополнительные сведения см. в разделе Перечисление и освобождение служб.

Управление версиями

Будущие версии ELS позволят обновлять службы ELS. Приложение сможет проверка номера версий структуры MAPPING_SERVICE_INFO для обнаружения любых изменений в службах.

Примечание

Приложение ELS не должно предполагать, что разные версии одной и той же службы могут получать точно одинаковые результаты.