Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 лаб5_AQL.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

9.2.1.В Extraction Plan переместитесь к RevenueByDivision → Labels → Amount. Щелкните правой кнопкой по New aql Statement и выберите Basic Feature aql Statement.

Рис.49 – Создание нового оператора AQL для экстрактора Amount

9.2.2.В диалоговом окне Create aql Statement введите "Number" как View Name и выберете Regular Expression как type.

Установите флажок на „output view” (для добавления оператора output view в шаблон файла aql). Назовите AQL script Number_basic.

Рис.50 – Создание нового оператора AQL для извлечения суммы доходов

Вы получите следующий шаблон в файле Number_basic (там опять будут ошибки, которые следует исправить).

create view Number as

extract regex /<regular expression specification>/

on R.<input column> as match

from <input view> R;

output view Number;

9.2.3.Необходимо исправить следующие ошибки:

а) стандартное выражение, чтобы искать непрерывную последовательность цифр, включающих в себя десятичную точку вместе с другой последовательностью цифр;

б) <input column> для входных файлов является текстом (как мы видели прежде);

в) <input view> имя для входных файлов всегда - Document.

create view Number as

extract regex /\d+(\.\d+)?/

on R.text as match

from Document R;

Стандартное выражение /\b\d + (\,\d {3}) * (\.\d +)?\b/ более устойчиво, для использования чисел, чем простое /d + (\.\d +)?/ показанное выше, хотя простого выражения достаточно для выполнения данного задания.

Словарное правило идентификации “Unit” (billion, million):

В сочетании с числами они полезны, чтобы идентифицировать подсказки Amount RevenueByDivision → Labels → Amount, правой кнопкой выберите New AQL Statement. Выберите Basic Features AQL statement.

9.2.4.Выполните шаги, описанные в прошлом разделе и заполните диалоговое окно для “Create aql Statement”.

  • Введите "Unit" как View Name и выберите Dictionary в качестве type.

  • Введите aql script name как Unit_basic и установите флажок “output view”

9.2.5.Файл Unit_basic.aql открыт в области редактора aql, введите следующий синтаксис, чтобы создать словарь для единиц измерения и удалите строку from file ‘<path to your dictionary here>’:

create dictionary UnitDict

as ( 'million', 'billion', 'trillion' ) ;

9.2.6.Обновите шаблон для ‘create view unit’, добавьте флаг следующим образом: “with flags 'IgnoreCase’ ” между строками extract и on

create view Unit as

extract dictionary 'UnitDict'

with flags ‘IgnoreCase’

on R.text as match

from Document R;

output view Unit;

Стандартное правило идентификации Revenue:

Теперь мы создадим другое стандартное выражение, базирующееся на операторе извлечения под названием "Revenue", чтобы идентифицировать ключевые слова. В основном это упоминание об одном только термине revenue или упоминание о термине revenue вместе с упоминанием о первом/втором/третьем или четвертом квартале.

9.2.7.Переместитесь в RevenueByDivision → Labels → Revenue. Щелкните правой кнопкой по Revenue и выберите New aql Statement. Выберите Basic Features aql statement.

9.2.8.Выполните шаги, утвержденные в прошлом разделе и заполните диалоговое окно для “Create aql Statement”.

  • Введите "Revenue" как View Name и выберите Regular Expression в качестве type.

  • Введите aql script name как Revenue_basic и установите флажок “output view”

create view Revenue as

extract regex /<regular expression specification>/

on R.text as match

from Document R;

output view Revenue;

9.2.9.<input view> и <input column> должны быть заполнены так, как мы сделали это прежде для number view. Реализация для regex предложена ниже. Финальный экстрактор выглядит следующим образом.

create view Revenue as

extract regex /((.\s*)?(first|second|third|fourth)\s*-\s*quarter)?\s*(revenues?)/

with flags 'CASE_INSENSITIVE'

on between 1 and 5 tokens in R.text

return

group 0 as match

from Document R;

output view Revenue;