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

9.2.10.На данном этапе Extraction Plan должен выглядеть следующим образом:

Рис.51 – Extraction Plan после создания всех экстракторов для Basic Features

9.2.11.Убедитесь, чтобы все aql файлы были сохранены. Используйте File → Save (или Ctrl+S) для каждого файла.

Перейдите к Extraction Tasks. Выберите Step 4: Test the Extractor и выберите последнюю опцию, Run the extraction plan on the set of documents that are labeled и щелкните по значку около нее.

9.2.12.Результаты извлечения будут выведены на экран в Annotation Explorer. Двойной щелчок по одной из строк в Annotation Explorer откроет отмеченный документ в окне редактирования. Извлеченные основные характеристики могут быть выделены, если отметить флажки в окне Annotation справа.

Рис.52 – Визуализация всех извлеченных Basic Features

AQL код для экстракторов четырех основных характеристик может быть найден в папке

RevenueByDivision_BasicFeatures. Код для всех файлов упомянут ниже:

create dictionary DivisionDict

from file 'dictionaries/division.dict'

with language as 'en';

create view Division as

extract dictionary 'DivisionDict'

-- with flags 'Exact'

on R.text as match

from Document R

having MatchesRegex ( /\p{Lu}\p{M}*.*/, match);

output view Division;

create view Number as

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

on R.text as match

from Document R;

output view Number;

create dictionary UnitDict

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

create view Unit as

extract dictionary 'UnitDict'

with flags 'IgnoreCase'

on R.text as match

from Document R;

output view Unit;

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;

9.3.Разработка дополнительных экстракторов

В этом разделе вы извлечете два понятия:

1) Упоминание о доходе (revenue) конкретного подразделения IBM;

2) Представленный доход этого подразделения.

Вы используете две конструкции aql: одну типа Extract Pattern и другую типа Select. Четыре основные характеристики, созданные в предыдущем разделе, будут использоваться в качестве составных частей конструкций.

  • Отчет о доходе имеет простой шаблон – это символ $, за которым следует число (number), а за ним - единица измерения (unit). Мы будем использовать оператор extract pattern;

  • Упоминание о доходе подразделения имеет два различных шаблона:

  1. упоминание о названии подразделения (division), за которым следует слово ‘revenue’ в различных вариациях;

  2. либо слово ‘revenue(s)’, после которого следует название подразделения (division).

Мы используем оба шаблона и конструкцию aql ‘union all’ (объединение), чтобы объединить их в единое представление.

9.4.Создание экстрактора AmountwithUnit

На данном этапе вы создадите экстрактор для извлечения суммы дохода подразделения, т.е. число (number) и единица измерения (unit). Например:

  • $0.3 billion

  • $1.5 million

Добавим правило Candidate Generation Rule для Amount. Оно использует Sequence Pattern от оператора Extract.

9.4.1.В Extraction Plan переместитесь в RevenueByDivision →Labels → Amount и щелкните правой кнопкой по метке Amount. Выберите New AQL statement и пункт Candidate Generation AQL Statement.

Рис.53 – Создание Candidate Generation

9.4.2.Заполните диалоговое окно как показано на следующем рисунке, не забудьте выбрать “output view”:

Рис.54 – Присвоение имени и типа экстрактора для Candidate Generation

9.4.3.В области редактора появится следующий шаблон в файле AmountwithUnit_concept.aql, а в Extraction Plan появится AmountWithUnit

Рис.55 – Шаблон для извлекающего образца экстрактора

Примечание

Имена меток учитывают регистр. Будьте внимательны.

9.4.4.Две основные характеристики, которые вы должны использовать в AmountwithUnit, это Number и Unit. Они являются частью различных модулей, но вы должны импортировать их в текущий модуль и объединить. Это требует кое-каких изменений значений Number и Unit.

Перейдите к Package Explorer и разверните файлы в

myFirstProject/textAnalytics/src/RevenueByDivision_BasicFeatures

Откройте aql script для Number и Unit (Number_basic.aql и Unit_basic.aql). Измените операторы output view <view name> на export view <view name> (см. рис. ниже) в этих двух файлах и сохраните изменения (Ctrl+S).

Рис.56 – Экспорт объектов данных, для использования в других модулях