Репозиторий для оценки моделей по задаче авторского профилирования по полу и возрасту.
В работу входит 3 части:
- набор данных для обучения и оценки моделей;
- скрипт для вычисления F1 метрики оценки моделей;
- набор моделей из работы ...;
Список необходимых пакетов и версий приведён в файле requirements.txt. Для скачивания весов Graph Attention Model (GAModel) и подготовленного оригинального корпуса необходимо установить git lfs. Для работы Graph Attention модели необходимо поставить tensorflow версии 2.4.1, для работы BERT необходимо поставить torch версии 1.7.1.
После устанвоки stanza необходимо скачать модели для русского языка, для этого запустить python и выполнить команды:
import stanza
stanza.download("ru")
exit()
Корпус представляет собой набор текстов с известными метками, относящимися к профилю автора:
- пол;
- возрастная группа;
- текст написан с или без намеренного искажения стиля, возраста или пола;
Дополнительно для части документов известно, что текст написан с одним из искажений:
- от противоположенного пола;
- от лица сильно старше;
- от лица сильно моложе;
- с использованием нестандартного для себя стиля написания;
Набор данных и его детальное описание доступны на Huggingface sagteam/author_profiling.
Сам скрипт в src/data/evaluate.py
В работе рассматривались два типа моделей: Graph Attention Model и BERT. Graph Attention Model использует в качестве признаков морфологию слов и граф синтаксического разбора. Для каждого типа выходной метки (пол, возрастная группа, наличие имитации и т.д.) строится отдельная модель.
Обучение и оценка модели
- Подготовка данных, для этого надо перейти в папку
data
и запустить скриптprepare_full_ds.sh
; - Перейти в папку src и запустить скрипт
run_ray_pbt_v2.sh
(дал лучшие результаты для GAModel);
Готовые веса Для получения выходов уже обученных моделей Graph Attention Model для тестового множества надо:
- распаковать лучшие веса моделей из архива
gamodel_best_weights.tar.gz
командойtar -xzf gamodel_best_weights.tar.gz
; - распаковать уже подготовленный корпус, из архива
orig_vectorized.tar.gz
в папкуdata/orig/vectorized/
командойcd data/orig/ && tar -xzf orig_vectorized.tar.gz
; - запустить скрипт
src/get_outputs_best_models.sh
- результаты для каждой модели будут сохранены в папке RUN_NAME_outputs, где RUN_NAME - название модели из списка: "ga_hpo_v1", "ga_pbt_v2", "gamodel_v3_no_synt", "gamodel_v4_x_const".
В папке notebooks
есть блокнот RuBERT_models_ds_for_grant.ipynb
для запуска модели на основе RuBERT или tiny-rubert, по стандарту там стоит конфигурация для отладки, для обучения на полном корпусе надо установить переменную SMALL_DS=False и в ячейке 8 с конфигурациями моделей закомментировать конфигурацию для отладки и раскомментировать нужную для запуска.
В папке notebooks
есть блокнот Dummy_models_ds_for_grant.ipynb
- для получения базовых точностей надо его запустить.
If you have found our results helpful in your work, feel free to cite our publication.
@article{сбоев2022сравнение,
title={СРАВНЕНИЕ ТОЧНОСТЕЙ МЕТОДОВ НА ОСНОВЕ ЯЗЫКОВЫХ И ГРАФОВЫХ НЕЙРОСЕТЕВЫХ МОДЕЛЕЙ ДЛЯ ОПРЕДЕЛЕНИЯ ПРИЗНАКОВ АВТОРСКОГО ПРОФИЛЯ ПО ТЕКСТАМ НА РУССКОМ ЯЗЫКЕ},
author={Сбоев, АГ and Молошников, ИА and Рыбка, РБ and Наумов, АВ and Селиванов, АА},
journal={Вестник Национального исследовательского ядерного университета МИФИ},
volume={10},
number={6},
pages={529--539},
year={2021},
publisher={Общество с ограниченной ответственностью МАИК "Наука/Интерпериодика"}
}