- •1.О языке обработки текста aql
- •2.Требования к обучаемому
- •3.Цели и задачи лабораторной работы
- •4.Сценарий лабораторной работы
- •Раздел 1: Импорт входных документов и словарей
- •Раздел 2: Маркировка ключевых слов в тексте
- •Раздел 3: Разработка экстрактора (aql)
- •Раздел 4: Тестирование экстрактора (aql)
- •Раздел 5: Изучение инструментов
- •Раздел 6: Экспорт результатов
- •5.Подготовка к лабораторной работе
- •7.1.Маркировка фрагментов текста
- •8.Раздел 3: Разработка экстрактора
- •Используя Package Explorer переместите папку dictionaries в
- •9.Раздел 4: Тестирование экстрактора
- •Столбец Span Attribute в центре окна Annotation Explorer показывает имена подразделений, извлеченные экстрактором.
- •9.2.Разработка основных экстракторов для Number, Unit и Revenue
- •9.2.1.В Extraction Plan переместитесь к RevenueByDivision → Labels → Amount. Щелкните правой кнопкой по New aql Statement и выберите Basic Feature aql Statement.
- •9.2.2.В диалоговом окне Create aql Statement введите "Number" как View Name и выберете Regular Expression как type.
- •9.2.3.Необходимо исправить следующие ошибки:
- •9.2.4.Выполните шаги, описанные в прошлом разделе и заполните диалоговое окно для “Create aql Statement”.
- •9.2.6.Обновите шаблон для ‘create view unit’, добавьте флаг следующим образом: “with flags 'IgnoreCase’ ” между строками extract и on
- •9.2.7.Переместитесь в RevenueByDivision → Labels → Revenue. Щелкните правой кнопкой по Revenue и выберите New aql Statement. Выберите Basic Features aql statement.
- •9.2.8.Выполните шаги, утвержденные в прошлом разделе и заполните диалоговое окно для “Create aql Statement”.
- •9.2.10.На данном этапе Extraction Plan должен выглядеть следующим образом:
- •9.3.Разработка дополнительных экстракторов
- •9.4.5.Теперь эти представления могут быть использованы в текущем модуле для экстрактора AmountwithUnit. Переместитесь к aql скрипту этого экстрактора.
- •9.4.6.Добавьте следующие строки кода в самом начале, сразу после названия модуля, для RevenueByDivision_CandidateGeneration, чтобы импортировать требуемые представления в текущий модуль.
- •9.6.Расширение экстрактора для RevenueByDivision: включение информации AmountwithUnit
- •Вернитесь в терминал и запустите браузер командой firefox
- •12.Результаты
8.Раздел 3: Разработка экстрактора
На шаге 3 в Extraction Task мы создадим экстрактор для 'Division', используя словарь division.dict, который мы скопировали в папку AQL.
Рис.42 – Шаг 3: Разработка экстрактора
Добавьте правило извлечения имен подразделений. В Extraction Plan переместитесь к RevenueByDivision → Labels → Division. Щелкните правой кнопкой по Division label, и выберите New AQL Statement, затем Basic Feature AQL statement.
Рис.43 – Выбор экстрактора, который будет записан для маркированных подсказок Basic Features в Extraction Plan
В диалоговом окне Create AQL Statement, используйте Division в качестве View Name, и затем для типа оператора AQL, выберите Dictionary, так как у нас есть словарь division.dict, который мы загрузили ранее, и определяем AQL script как Division-basics. Чтобы увидеть результат выберите Output view и нажмите OK.
Рис.44 – Определение имени экстрактора и его типа
В редакторе открывается файл RevenueByDivision/basics.aql, и автоматически добавляется шаблон (не обращайте внимания на синтаксические ошибки, вы вскоре это исправите):
Рис.45 – Шаблон для извлечения
Подробная информация об этом шаблоне:
Шаблон содержит оператор CREATE DICTIONARY, определяющий словарь DivisionDict из внешнего файла – вам нужно будет заменить в шаблоне < path to your dictionary here > на путь к файлу словаря в вашем проекте (описано ниже);
Язык, заданный в соответствии со словарем - „en ‟ (для английского языка);
Шаблон содержит описание структуры оператора extract dictionary, чтобы соответствовать ранее определенному DivisionDict словарю. Вы должны будете заменить в шаблоне <input column> и <input view>. При работе с текстовыми документами из файловой системы мы используем вместо input view - 'Document' (при ссылках на все входные документы), вместо input column - 'text' (при ссылках на текст входных документов). Document.text - корректный путь для обращения к содержимому любого входного документа.
Таким образом, исправленный шаблон должен быть таким:
create dictionary DivisionDict
from file 'dictionaries/division.dict'
with language as 'en';
create view Division as
extract dictionary 'DivisionDict'
on R.text as match
from Document R;
output view Division;
|
Примечание: После того, как переместите файл division.dict в dictionaries, не забудьте сохранить код в компиляторе командой Ctrl + S |
Используя Package Explorer переместите папку dictionaries в
myFirstProject/textAnalytics/src/RevenueByDivision_BasicFeatures. Это необходимо для того, чтобы было соответствие адресов с путем к файлу в предыдущем шаге.
Словари обычно сохранены в файлах, чтобы отделить их от кода aql. Словарь для 'Division' показан ниже.
Рис.46 – Словарь имен подразделений
Сохраните aql файлы выбрав File → Save в главном меню, или нажмите Ctrl+S на клавиатуре.
|
Вопрос № 2: Какой оператор AQL позволяет определять словари из внешних файлов? ________________________________________________________ |
