Комплекс инструментов (библиотека) для работы с петрозаводским аннотированным корпусом.
Библиотека предназначена для накопления корпуса ученических текстов, аннотирования текстов и определения степени грубости ошибки и выставления общей оценки за ученический текст на немецком языке, исходя из настраиваемой шкалы оценивания. Библиотека реализует функции, которые традиционно выполняются преподавателем: интерпретация лингвистических ошибок в тексте обучающегося на предмет ее грубости и обобщение результатов в виде общей оценки за весь текст.
Разработанная библиотека может быть использована для:
В частности, библиотека была использована участниками для подготовки статьи “Котюрова И.А. Корпус студенческих текстов на немецком языке как источник данных для образования и науки [Текст] / И.А. Котюрова, Л.В. Щеголева // Вопросы образования. - Москва, 2022. - №4. - С.322-349. - Режим доступа: https://vo.hse.ru/article/view/16526/15535”.
Загрузка текстов и аннотирование выполняется через веб интерфейс инструментария.
Возможности преподавателя
Возможности студента
Инструкция по установки и настройке инструментария описана в разделе Установка. Инструкция по работе с веб интерфейсом аннотирования корпуса описана в docs/guide.md.
Модуль search_app предоставляет пользователю интерфейс для поиска по корпусу с использованием языка Corpus Query Language. Документация по поиску размещена в файле docs/cql.md.
Документация и скрипты для выгрузки корпуса размещены в каталоге модуля. Текущая версия выгруженного корпуса размещена в Hugging Face.
Документация и скрипты обучения и использования модуля построения оценок размещены в каталоге модуля.
Документация и примеры скриптов выгрузки предобученных моделей размещены в каталоге модуля построения оценок. Текущая версия предобученной модели определения грубости ошибки размещена в Hugging Face. Текущая версия предобученной модели оценки текста размещена в Hugging Face.
Для запуска библиотеки требуется ЭВМ с 64-битной архитектурой и установленным интерпретатором языка Python версии не ниже 3.9. Обучение нейронных сетей выполняется с помощью библиотек Torch и Tensorflow и требует не менее 10Гб ОЗУ или использования соответствующих графических видеоускорителей. Для использования библиотеки с обученными нейронными сетями требуется ЭВМ с 64-битной архитектурой н не менее 8Гб ОЗУ.
Пре-установка
Установите GIT
Установите Python3
Установите и настройте MySQL Server или MariaDB
Установка - п. 2.5).root пользователя созданного при установке выбранной СУБД.Разворачивание системы
Создайте папку для проекта
Создайте виртуальное окружение:
python -m venv pakt
Запустите виртуальное окружение:
Linux:
source .\pakt\bin\activate
Windows (PowerShell):
.\pakt/scripts/Activate.ps1
Склонируйте код проекта из репозитория:
git clone
https://github.com/remshu/pakt-work-tools.git
Перейдите в появившуюся папку pakt-work-tools
Установите все требуемые библиотеки для Python:
pip install -r requirements.txt
Создайте необходимые директории:
python create_folders.py
Создание базы данных и подключение
(используемые команды и методы работают как с MySQL, так и с MariaDB)
Перейдите в консоль взаимодействия с СУБД
MySQL CommandLine -
запустите программу и введите пароль root - пользователя
Терминал Linux - вызовите команду:
mysql -uroot -p
и введите пароль root - пользователя
Windows PowerShell - если mysql внесена в PATH, то аналогично п. 2.1.2 иначе, перейдите в директорию установки СУБД, перейдите в папку bin и выполните команду:
.\mysql -uroot -p
Создайте нового пользователя lingo, пароль можно указать произвольно (замена логина недопустима):
CREATE USER lingo IDENTIFIED BY 'password';
Создайте новую базу данных:
CREATE DATABASE lingo;
Имя базы данных может быть изменено, однако, обязательно внесите изменения в настройки сервиса (см. Установка - п. 2.5)
Выдайте права новому пользователю:
GRANT ALL PRIVILEGES ON lingo.* TO lingo;
Настройка параметров подключения
pakt-work-toolspakt-work-tools/settings.pyDATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE_NAME',
'USER': 'lingo',
'PASSWORD': 'PASSWORD',
'HOST': '127.0.0.1',
'PORT': '3306',
'CHARSET': 'utf8mb4',
}
}
DATABASE_NAME (по умолчанию lingo)lingo вместо значения PASSWORDdjango.db.backends.mysql используется для MySQL/MariaDB)Создание миграций:
python create_migrations.py
Восстановление базы данных из дампа
.sql файл самого дампа должен быть создан в соответствии с инструкцией Дополнительно - Создание дампа для pakt-work-tools. Также, при выполнении описанных ниже действий работа сервиса должна быть остановлена.Если ваша база данных пуста и в ней отсутсвуют таблицы (т.е. после успешного выполнения пункта 2), то выполните следующую команду (предварительно перейдя к директории хранения mysql если она не занесена в PATH, см. п. 1.3):
mysql -ulingo -p lingo < PATH_TO_DUMP_FILE
где PATH_TO_DUMP_FILE является путём к самому .sql файлу дампа.
Обратите внимание, что импорт данных из дампа требует наличия прав Администратора, в случае работы в WIndows OS, рекомендуется проводить данную операцию через командную строку (cmd) запущенную от имени администратора
Если ваша база данных lingo не пуста:
Перейдите в консоль СУБД и выполните команды:
drop database lingo;
create database lingo;
Перейдите в корневую директорию сервиса и выполните скрипт:
python drop_migrations.py
Выполните все действия из Установка - п. 2.6.
Выполните действия из первого пункта данного раздела.
Запуск сервиса
После выполнения всех пунктов раздела установка, для запуска сервиса достаточно перейти в корневую директорию и запустить скрипт:
python manage.py runserver
Важно все указанные скрипты необходимо выполнять в виртуальном окружении созданном в Установка - п. 1.
Пример удачного запуска:
System check identified no issues (0 silenced).
July 01, 2023 - 07:36:35
Django version 4.0.3, using settings 'pakt_work_tools.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Удаление сервиса
mysqldump -ulingo -p lingo --no-tablespaces --complete-insert --no-create-info --lock-tables=True --routines --ignore-table=lingo.auth_group --ignore-table=lingo.auth_group_permissions --ignore-table=lingo.auth_permission --ignore-table=lingo.django_admin_log --ignore-table=lingo.django_content_type --ignore-table=lingo.django_migrations --ignore-table=lingo.django_session > dump.sql
Библиотека (модуль аннотирования корпуса) содержит setup.py скрипт для создания python пакета. Команда создания пакета:
python setup.py bdist_wheel --universal
После выполнения команды создается каталог dist с пакетом pakt_wor_tools-...-any.whl, который можно использовать для установки библиотеки.
CategoryInfo : Ошибка безопасности: (:) [], PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess
Решение проблемы:
Запуск тестов осуществляется средствами Django:
python3 manage.py test
Для сохранения тестовой базы данных можно воспользоваться ключем --keepdb.
Оценка покрытия выполняется с помощью утилиты coverage:
coverage run --source='.' manage.py test --keepdb
coverage html --omit="search_app/*"
HTML
55.0%
Python
38.8%
JavaScript
5.8%
Комплекс инструментов (библиотека) для работы с петрозаводским аннотированным корпусом.
Библиотека предназначена для накопления корпуса ученических текстов, аннотирования текстов и определения степени грубости ошибки и выставления общей оценки за ученический текст на немецком языке, исходя из настраиваемой шкалы оценивания. Библиотека реализует функции, которые традиционно выполняются преподавателем: интерпретация лингвистических ошибок в тексте обучающегося на предмет ее грубости и обобщение результатов в виде общей оценки за весь текст.
Разработанная библиотека может быть использована для:
В частности, библиотека была использована участниками для подготовки статьи “Котюрова И.А. Корпус студенческих текстов на немецком языке как источник данных для образования и науки [Текст] / И.А. Котюрова, Л.В. Щеголева // Вопросы образования. - Москва, 2022. - №4. - С.322-349. - Режим доступа: https://vo.hse.ru/article/view/16526/15535”.
Загрузка текстов и аннотирование выполняется через веб интерфейс инструментария.
Возможности преподавателя
Возможности студента
Инструкция по установки и настройке инструментария описана в разделе Установка. Инструкция по работе с веб интерфейсом аннотирования корпуса описана в docs/guide.md.
Модуль search_app предоставляет пользователю интерфейс для поиска по корпусу с использованием языка Corpus Query Language. Документация по поиску размещена в файле docs/cql.md.
Документация и скрипты для выгрузки корпуса размещены в каталоге модуля. Текущая версия выгруженного корпуса размещена в Hugging Face.
Документация и скрипты обучения и использования модуля построения оценок размещены в каталоге модуля.
Документация и примеры скриптов выгрузки предобученных моделей размещены в каталоге модуля построения оценок. Текущая версия предобученной модели определения грубости ошибки размещена в Hugging Face. Текущая версия предобученной модели оценки текста размещена в Hugging Face.
Для запуска библиотеки требуется ЭВМ с 64-битной архитектурой и установленным интерпретатором языка Python версии не ниже 3.9. Обучение нейронных сетей выполняется с помощью библиотек Torch и Tensorflow и требует не менее 10Гб ОЗУ или использования соответствующих графических видеоускорителей. Для использования библиотеки с обученными нейронными сетями требуется ЭВМ с 64-битной архитектурой н не менее 8Гб ОЗУ.
Пре-установка
Установите GIT
Установите Python3
Установите и настройте MySQL Server или MariaDB
Установка - п. 2.5).root пользователя созданного при установке выбранной СУБД.Разворачивание системы
Создайте папку для проекта
Создайте виртуальное окружение:
python -m venv pakt
Запустите виртуальное окружение:
Linux:
source .\pakt\bin\activate
Windows (PowerShell):
.\pakt/scripts/Activate.ps1
Склонируйте код проекта из репозитория:
git clone
https://github.com/remshu/pakt-work-tools.git
Перейдите в появившуюся папку pakt-work-tools
Установите все требуемые библиотеки для Python:
pip install -r requirements.txt
Создайте необходимые директории:
python create_folders.py
Создание базы данных и подключение
(используемые команды и методы работают как с MySQL, так и с MariaDB)
Перейдите в консоль взаимодействия с СУБД
MySQL CommandLine -
запустите программу и введите пароль root - пользователя
Терминал Linux - вызовите команду:
mysql -uroot -p
и введите пароль root - пользователя
Windows PowerShell - если mysql внесена в PATH, то аналогично п. 2.1.2 иначе, перейдите в директорию установки СУБД, перейдите в папку bin и выполните команду:
.\mysql -uroot -p
Создайте нового пользователя lingo, пароль можно указать произвольно (замена логина недопустима):
CREATE USER lingo IDENTIFIED BY 'password';
Создайте новую базу данных:
CREATE DATABASE lingo;
Имя базы данных может быть изменено, однако, обязательно внесите изменения в настройки сервиса (см. Установка - п. 2.5)
Выдайте права новому пользователю:
GRANT ALL PRIVILEGES ON lingo.* TO lingo;
Настройка параметров подключения
pakt-work-toolspakt-work-tools/settings.pyDATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE_NAME',
'USER': 'lingo',
'PASSWORD': 'PASSWORD',
'HOST': '127.0.0.1',
'PORT': '3306',
'CHARSET': 'utf8mb4',
}
}
DATABASE_NAME (по умолчанию lingo)lingo вместо значения PASSWORDdjango.db.backends.mysql используется для MySQL/MariaDB)Создание миграций:
python create_migrations.py
Восстановление базы данных из дампа
.sql файл самого дампа должен быть создан в соответствии с инструкцией Дополнительно - Создание дампа для pakt-work-tools. Также, при выполнении описанных ниже действий работа сервиса должна быть остановлена.Если ваша база данных пуста и в ней отсутсвуют таблицы (т.е. после успешного выполнения пункта 2), то выполните следующую команду (предварительно перейдя к директории хранения mysql если она не занесена в PATH, см. п. 1.3):
mysql -ulingo -p lingo < PATH_TO_DUMP_FILE
где PATH_TO_DUMP_FILE является путём к самому .sql файлу дампа.
Обратите внимание, что импорт данных из дампа требует наличия прав Администратора, в случае работы в WIndows OS, рекомендуется проводить данную операцию через командную строку (cmd) запущенную от имени администратора
Если ваша база данных lingo не пуста:
Перейдите в консоль СУБД и выполните команды:
drop database lingo;
create database lingo;
Перейдите в корневую директорию сервиса и выполните скрипт:
python drop_migrations.py
Выполните все действия из Установка - п. 2.6.
Выполните действия из первого пункта данного раздела.
Запуск сервиса
После выполнения всех пунктов раздела установка, для запуска сервиса достаточно перейти в корневую директорию и запустить скрипт:
python manage.py runserver
Важно все указанные скрипты необходимо выполнять в виртуальном окружении созданном в Установка - п. 1.
Пример удачного запуска:
System check identified no issues (0 silenced).
July 01, 2023 - 07:36:35
Django version 4.0.3, using settings 'pakt_work_tools.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Удаление сервиса
mysqldump -ulingo -p lingo --no-tablespaces --complete-insert --no-create-info --lock-tables=True --routines --ignore-table=lingo.auth_group --ignore-table=lingo.auth_group_permissions --ignore-table=lingo.auth_permission --ignore-table=lingo.django_admin_log --ignore-table=lingo.django_content_type --ignore-table=lingo.django_migrations --ignore-table=lingo.django_session > dump.sql
Библиотека (модуль аннотирования корпуса) содержит setup.py скрипт для создания python пакета. Команда создания пакета:
python setup.py bdist_wheel --universal
После выполнения команды создается каталог dist с пакетом pakt_wor_tools-...-any.whl, который можно использовать для установки библиотеки.
CategoryInfo : Ошибка безопасности: (:) [], PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess
Решение проблемы:
Запуск тестов осуществляется средствами Django:
python3 manage.py test
Для сохранения тестовой базы данных можно воспользоваться ключем --keepdb.
Оценка покрытия выполняется с помощью утилиты coverage:
coverage run --source='.' manage.py test --keepdb
coverage html --omit="search_app/*"
HTML
55.0%
Python
38.8%
JavaScript
5.8%