Skip to content

PlagEvalRus/plag_submissions_utils

Repository files navigation

plag_submissions_utils - это набор утилит для работы с эссе, с помощью которых проводится оценка качества работы методов поиска текстовых заимствований. Эссе размечаются по специальным правилам, описанным в руководстве. Набор утилит предоставляет следующие функции:
  • проверка эссе на соблюдение формальных требований;
  • генерация из набора эссе корпуса, пригодного для автоматической оценки качества.

Table of Contents

Проверка эссе

Проверка эссе через веб-форму

После установки утилит по адресу http://<host>/submission_checker_v2.html где host это адрес локальной или виртуальной машины, будет доступна веб-форма для проверки эссе.

Проверка эссе через командную строку##

Для проверки эссе надо выполнить:

./tools/run_checkerv2.sh /home/user/essay.zip

Пакетная проверка эссе

Расположение файлов

Для проверки нескольких эссе за один раз, требуется чтобы каждое эссе находилось в отдельной папке; именем папки должен быть идентификатор эссе. Идентификатор формируется следующим образом: 2<num>, где 2 версия эссе, <num> трехзначный номер эссе например 102.

Запуск проверки

Для запуска нужно выполнить:

tools/check_submissions.py /path/to/submissions 

Эта команда выдаст сводную информацию по всем эссе которые находились в папке /path/to/submissions. Пример:

id,fatal,serious,medium
2007,0,91,0
2008,0,0,0
2009,0,2,1

В первой колонке указан идентификатор проверенного эссе, в следующих колонках указано количество ошибок каждого типа.

  • критические ошибки (fatal): делают исправление эссе очень трудоемким. Эссе, содержащее такие ошибки не должно быть использовано при генерации корпуса,
  • серьезные ошибки (serious): должны быть исправлены до генерации корпуса
  • средние ошибки (medium): Могут присутствовать при генерации корпуса в небольшом количестве (1-6), если проверяющий посчитал их незначительными.

Чтобы запустить проверку по некоторым эссе нужно запустить программу следующим образом:

tools/check_submissions.py /path/to/submissions /path/to/ids

/path/to/ids - это файл, содержащий идентификаторы эссе, которые нужно проверить (каждый идентификатор с новой строки).

Генерация корпуса из эссе

Эссе должны быть размещены в файловой системе, так как это описано в разделе Расположение файлов. Чтобы запустиь процесс генерации нужно выполнить:

./tools/generate_corpus.sh -i /path/to/submissions -o /where/to/store/corpus -s 3

Например:

./tools/generate_corpus.sh -i /opt/apps/submissions -o /opt/apps/corpus -s 3

При этом в папке /opt/apps/corpus будет создана следующая структура:

.
├── source_retrieval
│   ├── susp
│   │   ├── manually-paraphrased3
│   │   │   ├── 013.txt
│   │   │   ├── 096.txt
│   │   └── manually-paraphrased3.zip
│   └── tasks
│       ├── manually-paraphrased3
│       │   ├── 013.json
│       │   ├── 096.json
│       └── manually-paraphrased3.zip
└── text_alignment
    ├── src
    │   ├── 1.txt
    │   ├── 2.txt
    │   ├── 3.txt
    ├── src.zip
    ├── susp
    │   ├── 013.txt
    │   ├── 096.txt
    ├── susp.zip
    └── tasks
        ├── manually-paraphrased3
        │   ├── pairs
        │   ├── suspicious-document096-source-document1.xml
        │   ├── suspicious-document096-source-document2.xml
        │   ├── suspicious-document096-source-document3.xml
        ....
        └── manually-paraphrased3.zip

Опция -s задает суффик в имени папки manually-paraphrased.

Установка на локальной машине

Установка производится с помощью утилиты ansible. Поддерживаются операционные системы Debian 8 и Ubuntu 16.04.

Установка ansible

sudo apt-get install libffi-dev python-dev libssl-dev sshpass python-pip
sudo pip install -U pyasn1 ansible==2.3.3

Выкачать исходники из git.

sudo apt-get install git
git clone https://github.com/PlagEvalRus/plag_submissions_utils plag_submissions_utils

Установить зависимости ansible

cd plag_submissions_utils
sudo ansible-galaxy install -r ansible/requirements.yml

Настройка окружения

Чтобы запустить процесс настройки программы, нужно выполнить:

bash ./setup_localhost.sh

Внимание: в ходе установки и настройки будет сконфигурирован веб-сервер apache, при этом будет удалена дефолтная конфигурация из папки sites-enabled. Дефолтная конфигурация останется в директории sites-available.

Установка в виртуальной машине

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

Установка с использованием Vagrant

Далее нужно установить Vagrant. И запустить в папке проекта:

vagrant up

Чтобы залогиниться в виртуальную машину выполните:

vagrant ssh

Чтобы узнать ip-адрес виртуальной машины выполните команду:

vagrant ssh-config

Формы для проверки эссе будут доступны по адресу: http://<vagrant-ip>

Установка в докере

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

./build_docker_image.sh
./run_docker.sh

Формы для проверки эссе будут доступны по адресу: http://localhost:8889

Возможные проблемы при установке

Если возникает ошибка: OSError: [Errno 13] Permission denied: '/home/plagevaluser/.ansible/tmp'

нужно выполнить команду:

sudo chown -R <user>:<user> ~/.ansible 

заменив <user> на имя актуального пользователя.


Запуск тестов

Перед первым запуском тестов необходимо установить зависимости, выполнив команду:

sudo pip install -r requirements-test.txt

Тесты запускаются из корневой директории командой:

./run_tests.sh