Inlandes

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

Чем Inlandes отличается от Томиты-парсера?

Inlandes по своей идее напоминает утилиту ТОмита-парсер от Яндекса, но при этом имеет некоторые отличия:

  1. Томита-парсер предлагает полные контекстносвободные грамматики, которые невозможно накладывать за линейное время; Inlandes накладывает фильтры на текст строго за линейное время.
  2. Синтаксис Inlandes позволяет включать в себя выражения на языке JavaScript, что упрощает составление правил и описание действий при их исполнении.

Пример выражения Inlandes

Примером простого правила на языке Inlandes может быть следующая строка:

RULE WHERE {до.н'.'.э.'.'}_1 DO _1 = "до нашей эры";

Это выражение задаёт условие, определяющее последовательность токенов в строке "до н. э.", для которого устанавливается ссылка с индексом 1, после чего указывается, что подстрока, на которую ссылается ссылка должна быть заменена на фразу "до нашей эры".

Как указывалось выше, выражение для замены может быть выражением на языке JavaScript. Например, мы хотим заменить подстроку на объект:

RULE WHERE {до.н'.'.э.'.'}_1 DO _1 = ``var res = {}; res.epoch = true; res``;

Или даже так:

RULE WHERE {до.н'.'.э.'.'}_1 DO _1 = ``{epoch: true}``;

В последующих правилах внедрённый объект может быть указан в выражении для фильтрации:

RULE WHERE @epoch_1 DO _1 = "до нашей эры";

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

Язык Inlandes применяется как в платформе LUWRAIN , так и при обработке текста на нашем сервисе LUWRAIN Books. С его помощью пользователи могут корректировать порядок чтения текста. Возможности в двух вариантах различаются, потому что нейросетевые модели не могут запускаться локально, и расширения с ними доступны только как облачный сервис. В базовом варианте интерпретатор языка можно запускать локально, загрузив бинарный дистрибутив.

© 2012–2022 Проект? LUWRAIN
Дизайн от Strash