Редактирование XPDL-правил для пользовательских сущностей

На вкладке Редактор правил вы можете задать правило для извлечения новой сущности на основе синтаксиса XPDL.

ee ruleseditor.rus

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

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

ee ruleseditor standard.rus

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

ee ruleseditor tagged.rus

В данном режиме каждому слову добавляется тег с указанием морфологической категории слова.

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

ee ruleseditor chunked.rus

Для получения дополнительной информации см. данный раздел.

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

ee ruleseditor run test.rus

В поле Результаты будут отображены сущности, которые извлечет данное правило в ходе выполнения узла:

ee rules run result.rus

Если вы работаете с несколькими правилами, вы можете протестировать каждое правило отдельно. Для этого выделите правило, удерживая левую кнопку мыши, и нажмите кнопку Запустить проверку текущего правила.

ee ruleseditor run current.rus

В соответствующем поле будет отображено название правила и его результаты.

ee ruleseditor current result.rus

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

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

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

Вместо того, чтобы вводить номер в поле Запись, для перехода к нужной записи/документу воспользуйтесь кнопками со стрелками для перехода к самой первой/предыдущей/следующей/следующей результативной/самой последней записи или документу. В этой же строке указывается язык исходного текста (Английский), а также текущий режим тестирования (По умолчанию). Для смены режима тестирования нажмите правой кнопкой мыши на активный режим.

Нажмите на кнопку Настройки…​ для вызова окна Настройки текста.

ee ruleseditor options.rus

Откроется новое окно:

ee ruleseditor options window.rus

Здесь можно задать режим тестирования: По умолчанию, Упрощенная проверка или Отладка. Доступны следующие опции (только для режима тестирования По умолчанию):

  • Применить фильтры – опция включена по умолчанию. У каждой сущности имеются SRL-фильтры (см. вкладку Фильтры), которые обрабатывают найденные правилом сущности. Если отключить данную опцию, фильтры использоваться не будут.

  • Использовать постобработчики – опция включена по умолчанию. Если отключить данную опцию, выбранные постобработчики (см. Постобработка) использоваться не будут.

  • Выполнить разрешение конфликтов между сущностями – см. раздел Разрешение конфликтов ниже.

  • Выполнить разрешение конфликтов между правилами – опция включена по умолчанию. См. раздел Разрешение конфликтов ниже.

  • Создать колонку с именем сработавшего правила – опция включена по умолчанию. В получившемся массиве данных появится дополнительная колонка с именем сработавшего правила.

  • Создать колонку(и) для соответствий – опция включена по умолчанию. В получившемся массиве данных появится дополнительная колонка, которая будет включать сущность в том виде, в котором она встречается в тексте. Если у одной сущности имеется несколько вариантов написания, в получившийся массив данных будут включены все варианты.

Использование фильтров

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

ee filter tab.rus

Для добавления фильтра используйте кнопку Добавить на панели инструментов.

ee filter add.rus

Вы можете сразу задать имя фильтра или сделать это позже.

ee filter item.rus

Выберите фильтр и в поле справа введите SRL-выражение. Выражение должно соответствовать модели [параметр] = "имя". Список параметров доступен в меню Колонки.

Предположим, что вы проанализировали тренировочную таблицу данных о преступлениях CrimeData.csv с помощью узла Извлечение сущностей. Вам нужно, чтобы в отчете узла были отображены только те записи, в которых упоминаются школы (schools).

Для этого необходимо выполнить следующие шаги:

  1. Выберите тип сущностей 'Organizations' на вкладке Сущности в Настройках узла.

  2. Дважды нажмите на выбранный тип сущностей или нажмите на кнопку Настройки на панели инструментов.

  3. Перейдите на вкладку Фильтры.

  4. Нажмите на кнопку Новая сущность на панели инструментов.

  5. Задайте имя фильтра (например, School).

    ee filter new.rus
  6. Выберите фильтр и переместите курсор в поле редактора выражения и откройте список доступных колонок (они выступают в роли параметров), используя меню Колонки.

  7. С помощью двойного клика вставьте колонку Type в поле редактора выражения:

    ee filter column.rus
  8. Присвойте колонке значение "School".

    ee filter school.rus
  9. Нажмите ОК для сохранения фильтра.

После того, как узел будет выполнен, в отчете на вкладке Сущности в разделе "Organizations" будут отображены только отфильтрованные результаты. В нашем случае было извлечено 46 сущностей типа Школа (School):

ee filter result.rus

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

Постобработка

Вкладка Постобработка позволяет настроить дополнительную обработку сущностей, которая выполняется после применения XPDL-правила.

ee post.rus

Таким образом вы, например, можете выполнить разные виды нормализации (нормализация регистра, слияние синонимов, обрезание строкового значения и др.), или исключать некоторые сущности из анализа путем занесения их в список стоп-слов.

Используйте панель инструментов для добавления нового постобработчика.

ee post new.rus

Затем выберите постобработчик из меню:

ee post menu.rus

Вы можете сразу задать ему имя или сделать это позже, дважды нажав по нему.

После того как вы выбрали постобработчики, добавьте соответствующие атрибуты в поле Настройки постобработчика:

ee post example add.rus

Затем установите параметры атрибута:

ee post example.rus

Обратите внимание на то, что опции могут отличаться в зависимости от типа постобработчика.

ee post options.rus

Вы можете добавить несколько постобработчиков. Используйте чекбоксы справа от имени постобработчика для его включения/отключения. При отключении постобработчика все его настройки сохраняются.

ee post enable.rus

Подробная информация о постобработчиках представлена в специальном разделе.

Разрешение конфликтов

Вкладка Разрешение конфликтов отличается от остальных вкладок окна настройки сущностей. Настройки на этой вкладке относятся не к одной сущности, а ко всем сущностям, с которыми работает узел. Вкладку можно также открыть, нажав правой кнопкой мыши в любом месте списка сущностей на вкладке Сущности и выбрав опцию Разрешение конфликтов…​.

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

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

Например, фамилия Ломоносов в тексте может относится к сущностям типа "People", а может относиться к типу "Organizations", если она встречается в тексте в составе сущности МГУ им. М.В. Ломоносова. В подобных случаях наложения сущностей необходимо разрешать возникшие конфликты и указывать те сущности, которые пользователь хочет сохранить в отчете узла.

При первом открытии вкладка будет пустой:

ee conflict.rus

Обычно при работе с данной вкладкой пользователям понадобится выполнить следующие действия:

  1. Добавить пару конфликтующих сущностей.

  2. Указать имена сущностей и, при необходимости, их атрибуты и правила, извлекающие данные сущности.

  3. Выбрать одно или несколько условий разрешения конфликта между выбранными сущностями.

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

  5. Проверить конфликты.

  6. Сохранить разрешения конфликтов.

Рассмотрим эти операции несколько подробнее.

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

ee conflict add.rus

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

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

ee conflict dropdown.rus

Предположим, что нам необходимо в случае конфликта между сущностями Ломоносов (наша пользовательская сущность) и МГУ им. М.В. Ломоносова (стандартная сущность), чтобы узел извлекал только вторую. Таким образом, в поле Имя для Участника А мы указываем "Custom/Сущность 1". Обратите внимание, что пользовательские сущности отображаются в конце выпадающего списка. В поле Имя для Участника B мы аналогичным образом выбираем "Standard/Legal Entities/Organizations".

Вы можете также указать атрибуты конфликтующих сущностей и правила, которые их извлекают. Например, атрибутами сущностей типа People могут быть звание (Title), фамилия (SecondName) и др. В поле Правила указываются маски правил, например, r1. Есть возможность через косую черту (/) указывать вложенные правила, например, r1/r2. Атрибуты и правила позволяют пользователям дополнительно фильтровать конфликтующие сущности.

Если вы хотите настроить разрешение конфликтов между одной пользовательской сущностью и всеми стандартными, вы можете использовать маску Standard/ в поле Имя для обозначения всех стандартных сущностей в качестве одной стороны конфликта.

Перейдем к разделу настроек Разрешение. Добавим новое условие в список с помощью кнопки с изображением плюса и выберем нужное условие из выпадающего списка:

ee conflict condition.rus

В выпадающем списке доступны следующие условия:

  • А внутри В;

  • В внутри А;

  • А равно В;

  • А частично пересекается с В (сущности так или иначе пересекаются друг с другом, не равны друг другу и не входят друг в друга).

Исходя из задачи в нашем примере, выберем условие А внутри В. Для выбранной пары конфликтующих сущностей пользователь может задать несколько условий, которые будут выполняться по принципу "сверху вниз". Пользователь может изменить очередность их выполнения, используя кнопки со стрелками на панели инструментов в разделе Условия. Если данные кнопки не отображаются, необходимо развернуть панель инструментов.

Теперь добавим новое действие и откроем выпадающий список:

ee conflict actions.rus

Доступны следующие действия:

  • Сохранить обе – конфликт при этом считается разрешенным. Данное действие может быть полезно, если конфликт предшествует другому, более широкому конфликту. Например, представьте, что мы создали два конфликта: один между сущностями "People" с атрибутом SecondName и "Companies", а другой – между "People" и "Companies". Если первый конфликт будет разрешен с результатом сохранить обе сущности, итерация правила на этом завершится. Если первый конфликт не будет разрешен, будет рассмотрен следующий конфликт;

  • Сохранить А – только Участник А будет включен в отчет узла;

  • Сохранить В – только Участник B будет включен в отчет узла;

  • Сохранить сущность большей длины – если длины сущностей равны, сохраняется сущность большей длины.

  • Сохранить сущность меньшей длины – если длины сущностей равны, сохраняется сущность меньшей длины.

  • Сохранить сущность с большей достоверностью – если обе сущности имеют одинаковую достоверность, сохраняется сущность с большей достоверностью.

  • Удалить обе – обе сущности (участника) не будут включены в отчет узла.

Для каждого условия можно создавать несколько действий. Например, если действие Сохранить сущность с большей достоверностью не приведет к решению конфликта, т.е. две сущности будут иметь одинаковую достоверность, можно дать узлу команду рассмотреть следующее разрешение – Сохранить сущность большей длины. Действия, как и условия, будут выполняться по принципу "сверху вниз". Пользователь может изменить очередность их выполнения, используя кнопки со стрелками на панели инструментов в разделе Действия.

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

ee conflict check.rus

Если по результатам проверки все конфликты будут разрешены, то настройку вкладки Разрешение конфликтов можно считать завершенной, и вы можете продолжить работу на других вкладках. При наличии каких-либо ошибок узел выдаст соответствующее сообщение.

Общие настройки

Вкладка Общие содержит общие настройки сущности.

ee general.rus

При наведении курсора на отдельную опцию в нижней части окна отобразится ее описание.

Вы можете задать Полное имя сущности, чтобы дочерние узлы могли вызывать данную сущность с помощью PDL/XPDL-функции entity(). Данная опция доступна только для пользовательских сущностей.

Цвет подсветки сущности можно изменять как для стандартных, так и для пользовательских сущностей, однако, кнопка Сбросить доступна только для стандартных.

ee general color.rus

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

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

Отметьте флажком опции Создать колонку(и) для соответствий и Создать колонку с именем сработавшего правила для добавления соответствующих колонок. В отчете узла данные колонки могут быть скрыты (используйте меню Выбор колонок на вкладке Сущности в окне просмотра результатов узла).

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

Вы можете задать порядок расположения колонок в отчете основного и дочерних узлов с помощью опции Предпочитаемый порядок колонок. Колонки, которые не вошли в список, будут отсортированы в том же порядке, что и при использовании XPDL-правил.

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

Обратите внимание, что данная опция применима только при первом просмотре отчета узла. Позже список скрытых/видимых колонок кэшируется (т.е. сохраняется), и изменение опции никак не влияет на него. Также важно знать, что если вы настроите список скрытых по умолчанию колонок, выполните узел, просмотрите отчет и затем решите отобразить/скрыть другие колонки, это можно сделать с помощью меню Выбор колонок на вкладке Сущности в окне просмотра результатов узла:

ee select columns.rus

Опция Зависимости сущности позволяет указать те сущности, которые должны быть посчитаны узлом до обработки правила для извлечения выбранной в данный момент сущности, поскольку она является зависимой.

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

В поле Описание пользователи могут добавить и редактировать описание сущности, которое будет отображаться при выборе данной сущности в списке на вкладке Сущности.

После завершения настройки сущности нажмите ОК для сохранения изменений и закрытия окна.