Gorazd Generator

Приложение было создано в рамках проекта «ГОРАЗДЪ: Цифровой портал старославянского языка» (проект реализован в рамках программы NAKI II Министерства культуры Чешской Республики, DG16P02H024, 2016-2020). Приложение автоматически распознает структуру словарных статей, а именно - изображений, и затем сохраняет полученную структуру в формате Gorazd XML-файлов, разработанном в ходе реализации проекта (схема XSD XML-файла Gorazd: http://gorazd.org/sites/default/files/software/gXML.zip)

Входными данными для Gorazd Generator могут быть файлы ALTO XML (https://www.loc.gov/standards/alto), полученные в результате оптического распознавания текста в ABBYY Recognition Servere (https://www.abbyy.com/en). -cz/ признание-сервер) или в виде общего формата HTML.

Распознавание структуры словарной статьи является оригинальным нововведением программной части проекта. Структура словарной статьи фиксируется формальной грамматикой, написанной на языке библиотеки ANTLR, используемой для генерации синтаксического анализатора формальной грамматики. Таким образом, описание структуры словарной статьи осуществляется на языке, понятийный аппарат которого близок как программистам, так и лингвистам.

Результатом работы данного приложения является создание специального XML-файла для каждой распознанной словарной статьи. Этот файл предназначен для дальнейшей обработки в Gorazd Editor и отображения или предпечатной подготовки с помощью Gorazd Export. Помимо распознанных словарных статей, важным результатом является создание файла XML MARC, используемого для импорта статей в Invenio (https://invenio-software.org), т.е. систему управления данными, где осуществляется управление статьями и их редактирование.

Установка

Приложение Gorazd Generator распространяется в виде пакета/модуля Python и может быть установлено стандартным способом с помощью утилиты pip. Для работы Gorazd Generator требуется несколько библиотек, которые устанавливаются автоматически, если их изначально нет в системе. Поэтому вам может потребоваться установить Gorazd Export с правами root или виртуальной средой Python virtualenv.

  • $ pip install [-t cilovy_adresar] gorazd_generator-1.zip

Запуск

Приложение запускается из командной строки непосредственно на сервере, на котором работает Invenio.

  • $ python generator.py
    usage: generator.py [-h] [-g GENERATOR] [-p] [-l LOG_DIR] [-r]
    input_dir output_dir
    generator.py: error: too few arguments

Приложение получает параметры через командную строку стандартным способом, подсказку можно получить посредством параметра –h

  • $ python generator.py –h

    usage: generator.py [-h] [-g GENERATOR] [-p] [-l LOG_DIR] [-r]
    input_dir output_dir

    SJSGenerator of vocabulary records from plain text / ALTO XML.

    positional arguments:
    input_dir Directory containing ALTO XML files for input.
    output_dir Directory containing generated files.

    optional arguments:
    -h, --help show this help message and exit
    -g GENERATOR, --generator GENERATOR
    Type of generator: SJS, RSI, SNSP
    -p, --preprocess If preprocessing is turned on we fix slavonic and
    greek characters and join words that were split at
    line breaks.
    -l LOG_DIR, --log_dir LOG_DIR
    Directory for log files. Default is the current
    working directory.
    -r, --run_bibupload Run bibupload.

Параметры input_dir и output_dir являются обязательными. Как input_dir обычно используются подкаталоги в каталоге gorazd-generator/in, для output_dir мы рекомендуем всегда создавать новый подкаталог в gorazd-generator/out. Если заданный подкаталог в каталоге out не найден, приложение создает его, если найден, данные в нем перезаписываются.

Параметер -g выбирает тип обрабатываемых данных. По умолчанию установлено значение SJS.

В каталоге input_dir ALTO ожидает XML-файлы, которые выводятся с ABBYY Recognition Server или html-файлы. Имена этих файлов образуют первую часть PAGE ID словарных статей. То есть, необходимо соблюдать правильный формат названий.

Если в каталоге input_dir есть текстовые файлы с тем же именем, что и файлы ALTO XML (т.е. отличаются только расширением .txt), генератор будет использовать их в качестве источника для исправления древнегреческих диакритических знаков. Эти файлы можно получить в приложении ABBYY FineReader.

Появление любых других файлов приведет к ошибкам, которые будут зарегистрированы в файлах журнала, работы программы, вероятно, преждевременно завершится из-за неустановленной ошибки. Любые ошибки будут записаны в каталог журнала log. (даже если он не является частью команды запуска).

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

  • 2016 -12-01 21:57:09,146 - INFO - -------------- STATISTIKY --------------
    2016-12-01 21:57:09,536 - INFO - Pocet hesel: 932
    2016-12-01 21:57:09,740 - INFO - Pocet nerozpoznanych zahlavi: 1 + 131
    2016-12-01 21:57:09,775 - INFO - Pocet elementu vyskyt: 765
    2016-12-01 21:57:09,807 - INFO - Pocet prekladu do modernich jazyku: 561
    2016-12-01 21:57:09,838 - INFO - Pocet prekladu do starych jazyku: 548

    2016-12-01 21:57:09,146 - INFO - -------------- STATISTICS --------------
    2016-12-01 21:57:09,536 - INFO – Number of entries: 932
    2016-12-01 21:57:09,740 - INFO – Number of unrecognized headwords: 1 + 131
    2016-12-01 21:57:09,775 - INFO – Number of elements: 765
    2016-12-01 21:57:09,807 - INFO – Number of translations into modern languages: 561
    2016-12-01 21:57:09,838 - INFO – Number of translations into ancient languages: 548

В каталоге output_dir генератор сохраняет свои выходные данные. Наиболее важным является файл final-marc.xml, который создается только после успешного завершения приложения и загрузки в Invenio путем запуска

  • $ sudo -u www-data /opt/invenio/bin/bibupload -i output_dir/final-marc.xml

Все сгенерированные словарные статьи можно просмотреть в файле result-parsed-postprocessed.xml. Файлы с именем «marc» представляют собой метаданные, сгенерированные из указанных статей для Invenio.

Другой интересный файл - errors.xml, в него копируются словарные статьи, у которых генератор не сумел правильно распознать структуру.

Эти словарные статьи являются частью файла final-marc.xml и могут быть загружены в Inveniо. Файл errors.xml предназначен только для проверки грамматики.

Поэтому для архивации мы рекомендуем сохранять файлы final-marc.xml, errors.xml и result-parsed-postprocessed.xml

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

Параметр - l LOG_DIR определяет каталог, в котором хранятся журналы регистрации процессов генерации. По умолчанию он установлен в журнал log.

Параметр -r используется для автоматической загрузки в Inveniо после генерации всех словарных статей.

Пример запуска:

  • $ python generator.py –g SJS in/sjs_ii_1-200 out/sjs_ii_1-200 -l log/sjs_ii

    $ python generator.py in/3strany out/ -l log/ -g SJS

Лицензия

Приложение распространяется на основе открытой лицензией GNU GPL v3. Редактируя исходный код, приложение можно использовать для редактирования статей в других словарях. Авторы приложения будут благодарны за сообщение об использовании исходного кода этого приложения или его частей в других проектах посредством е-мейла на адрес gorazd@slu.cas.cz.

Установочный пакет:

Gorazd Generator 1.0: http://gorazd.org/sites/default/files/software/gorazd_generator-1.zip

В создании приложения участвовали:

  • Mgr. Vít Tuček, Ph.D. (программист)
  • Mgr. Olga Čiperová (аналитик развития)
  • Bc. Martin Majer (менеджер по развитию)
  • PhDr. Štefan Pilát, Ph.D. (консультант по развитию)

© 2018, Славянский институт АН ЧР