Прожито
Это текстовый корпус эго-документов, созданный как площадка для сбора и публикации текстов личных дневников. Общий объем корпуса — 16 тысяч документов из государственных и домашних архивов за период XVIII–XXI веков.
Центр «Прожито» предложил студентам программы ПАНДАН задачу — разработать прототип механизма рекомендации похожих записей дневников для пользователей архива «Прожито».
В рамках проекта мы исследовали, какие признаки мы можем использовать для поиска похожих документов: на основе содержания текстов, метаинформации и данных об авторах.
Мы подготовили интерактивный прототип, в котором документы подбираются на основе расстояний между векторными представлениями текстов и подготовили рекомендации для реализации системы поиска на сайте «Прожито».
Как устроены данные в архиве «Прожито»
Проблемами в исходных данных, с которыми мы столкнулись
Извлечение метаданных
Векторизация
Мы попробовали сразу несколько способов векторизации дневниковых записей
Для кластеризации (группировки) текстов дневниковых записей была использована модель BERTopic. Полученные при кластеризации тематические теги упростят поиск похожих записей.
Метод кластеризации K-means позволил четко определить количество кластеров и избежать появления большого кластера с «шумом».
В результате проведенной кластеризации были выделены следующие тематические теги
Разметка данных
Мы решили исследовать, какие тексты дневников выглядят похожими для выборки «обычных пользователей», и выбрать метрики сходства на основе этих данных. Для этого нам нужна была система разметки данных, которую мы развернули на базе open-source платформы Argilla.
Каждый разметчик оценивал схожесть около 1300 пар записей по шкале от 1 (наименее похожи) до 4 (наиболее похожи)
Интерфейс нашей системы для разметки текстов дневниковых записей выглядел так
Результаты разметки
Прототип рекомендательной системы На основе проведенной векторизации и кластеризации текстов дневниковых записей был разработан прототип рекомендательной системы. В прототипе используется косинусное расстоение между векторами, полученными с помощью PCA над rubert-tiny и теги, выделенные при помощи BERTopic. Ознакомиться с прототипом можно здесь. Исходный код прототипа доступен на GitHub. |