ДОМАШНЕЕ ЗАДАНИЕ №20
Цель
На основе корпуса A Small Collection of British Fiction, содержащем в себе произведения британской прозы конца XVIII — XIX веков, проанализировать стилистические особенности авторов и классифицировать тексты по ним с помощью tidymodels в R.
Загрузка данных, обработка данных
Загрузить весь корпус в окружение удалось с помощью функции load.corpus.and.parse
, которой на вход мы подаем папку “corpus” с текстовыми файлами — произведениями. Функция также способна токенизировать тексты и приводить его к нижнему регистру. Кроме того, можно указать размер n-грамм. Это заинтересовало меня, поэтому с помощью этой же функции я разделила тексты на биграммы в нижнем регистре.
Количественные признаки
Собственно очевидным решением мне показалось подсчитать частоту встречаемости биграмм в текстах. Важно было правильно выбрать топ биграмм — при n > 58
в выборку не попадала Эмили Бронте. Поэтому я оставила топ-58 биграмм для каждого из текстов.
Разведывательный анализ
Сначала я разделила данные на обучающую и тестовую выборки — data_train
& data_test
. Далее в рамках продолжения препроцессинга создала рецепт base_rec
, который затем нужно было обучить на основе data_train. Результат записала в переменную base_trained
. После этого для получения обработанных обучающих данных я применила функцию bake()
к base_trained
. Для представления более простой структуры данных и возможности визуализации я воспользовалась методом снижения размерности PLS (Partial Least Squares, метод частичных наименьших квадратов). Метод хорошо показывает себя в задачах классификации, особенно если дело касается обработки больших данных и выявления скрытых зависимостей между признаками. Нужно признаться, что мне больше всего понравился результат применения именно этого метода на датасете с русской прозой, поэтому и захотелось опробовать его.
Создала pls_trained
на основе base_trained
, затем применила juice()
, чтобы получить обработанные обучающие данные. Визуализация главных компонент:
Что ж, можно видеть, что во многом классы перекрываются, но всё же есть и яркая тенденция выделения отдельных кластеров, особенно выделяются Энтони Троллоп и Сэмюэл Ричардсон.
Модели & tidymodels
В рамках данной работы я выбрала линейные модели с регуляризацией — Lasso и Ridge. Применила многоклассовую логистическую регрессию, так как классов у нас достаточно много.
Итак, имея рецепты base_rec
и pls_rec
, а еще модели Lasso и Ridge, можно было составить их комбинации, а для работы с ними понадобился объект workflow_set
из tidymodels
. Таким образом мы перебрали 4 комбинации:
base_rec & Lasso
base_rec & Ridge
pls_rec & Lasso
pls_rec & Ridge
Обучение моделей заняло некоторое время, но в целом на каждую уходило около 1-2 минут, поэтому это все еще было не так долго. Ничего не сломалось (что действительно порадовало), можно было приступать к оценке.
__wflow_id .config .metric mean std_err n preprocessor model rank
__<chr> <chr> <chr> <dbl> <dbl> <int> <chr> <chr> <int>
1 base_ridge Preprocessor1_Mode… accura… 0.975 0.00137 5 recipe mult… 1
2 base_ridge Preprocessor1_Mode… f_meas 0.968 0.00301 5 recipe mult… 1
______________________________________________________________________________________________________
__.metric .estimator .estimate .config
__<chr> <chr> <dbl> <chr>
1 f_meas macro 0.979 Preprocessor1_Model1
2 accuracy multiclass 0.980 Preprocessor1_Model1
3 roc_auc hand_till 0.999 Preprocessor1_Model1
Интерпретация модели
Мы не убирали стоп-слова, поэтому многие биграммы содержат их. Впрочем, даже в них модели удалось увидеть свойственные для определенных авторов словосочетания, что не противоречит идее стилометрии.
Впрочем, можно заметить и более примечательные n-граммы. Например, у Ричардсона в топ попали имена Mr Lovelace и Miss Howe, а также обращение my dear. В топе Стерна оказался Uncle Toby и видимо другое его упоминание my uncle. Также отличительны словосочетания the world и my father. Еще одно упоминание родственника my mother можно встретить у Энн Бронте.
У некоторых авторов — Остин, Теккерея и Троллопа — в данной визуализации отсутствуют сочетания “от первого лица”, т.е. не включающие в себя I, а у Джейн Остин единственной есть биграмма с she.