Прожито. Рекомендовано
Прожито
Архив был создан как площадка для сбора и публикации текстов личных дневников. Общий объем корпуса — более 626 тысяч подневных записей XVIII–XX веков.
Цель проекта

Разработать прототип механизма рекомендации похожих записей дневников для пользователей электронного архива "Прожито"

Поиском похожего контента занимаются рекомендательные системы

чтобы найти похожие единицы информации, система может опираться на
  • сведения о потреблении контента
    какие записи/книги чаще всего выбирают вместе
    с нужным
  • мнения пользователей


    спрашивать у читателей, понравилась ли им
    текст/книга
  • метаданные




    сведения об авторах записей/текстов
  • содержание контента


    сам текст записи/книги
Мы пока не можем создать рекомендательную систему в классическом смысле,
так как информация о поведении и предпочтениях пользователей "Прожито" недоступна.

Схожесть дневниковых записей определялась на основе самих текстов и метаданных о них.

В будущем сайт архива «Прожито» должен выглядеть так:

Как устроены данные в архиве «Прожито»

Данные, с которыми мы работали
127 431
1910–2010
496
дневниковых записей
период
авторов дневников
С какими проблемами в исходных данных мы столкнулись
  1. Ошибки, которые не позволяли связать дневниковые записи с биографиями авторов по id.
  2. Ошибочная или отсутствующая информации об авторах (годы рождения или смерти авторов дневников).
  3. Наличие, помимо самих дневников также автобиографий, записей наблюдения за новорожденными и др.
  4. Короткие записи, состоящие из одного предложения.
  5. Упоминание в одной дневниковой записи нескольких дней (иногда больше месяца и даже года).
Что мы сделали



Очистка текстов записей
Тексты дневников написаны на русском языке
в современной и дореволюционной орфографии.
Они выгружены в raw-виде и содержат html/xml-теги.
В тексте есть редакторские пометки в [ ].
В [ ] и { } также заворачиваются восстановленные лакуны.
В некоторых случаях [ ] содержат авторский текст (напр., "[Запись на странице сделана почерком не Лии, а ее двоюродной сестры Люси : «Когда буду за сотни километров отсюда, а ты допишешь свой дневник до этой страницы сделай этой открытие. Люська 7/IX.1932 в 11 ч. дня» — Ред. ]").

«Вставные» документы (напр., вклеенные) иногда оформляются оборотом в <>, например:
[В тетрадь подшито письмо Липкину от матери — Прожито.] < Добрый вам день, дорогие, Матвей Евсеевич, ...

Извлечение метаданных

Извлечение геолокаций не всегда происходило точно из-за разнообразия форматов. Например, из биографии: "Астраханский художник, археолог, поэт, автор песен под гитару и научных статей по нумизматике Золотой Орды" извлекается только геолокация: [{'государство': 'ЗОЛОТАЯ ОРДА'}].
Векторизация
Мы попробовали сразу несколько способов векторизации дневниковых записей
  • TD-IDF-векторизация лемматизированного текста с последующим PCA-сокращением размерности
    01
  • векторизация общедоступными предобученными моделями разного размера и размерности,
    имеющими высокий рейтинг
    в публичных бенчмарках,
    в т.ч. для русского языка
    02

Чтобы повысить качество векторизации, мы суммаризировали длинные тексты с помощью GPT-трансформеров и настраивали токенизаторы моделей, а чтобы дополнительно обогатить набор данных, решили дополнительно кластеризовать тексты записей,
в несколько итераций выделив основные тематические теги.
BERTopic

Метод кластеризации K-means позволил четко определить количество кластеров и избежать появления большого кластера с «шумом».

Полученные при кластеризации теги упростят поиск похожих записей.


Предложения по изменению поисковой системы сайта "Прожито"
Извлеченные метаданные и сформированные тематические кластеры могут быть использованы в поисковой системе сайта "Прожито" как дополнительные фильтры для поиска
Разметка данных
Мы заменили отсутствующие данные о поведении пользователей ручной разметкой схожести дневниковых записей
Мы получили среднюю согласованность среди оценщиков.
α Криппендорфа: 0.574

Важным фактором в проекте была требовательность кода к ресурсам. Это предопределило выбор моделей векторизации,
изменило первоначальную структуру пайплайна и заставило внимательно отнестись к быстродействию алгоритмов.
 
Кураторы проекта: Алексей Сенюхин,
Ольга Тушканова

Участники проекта: Николай Андреев,
Анна Кузнецова, Александр Севостьянов,
Александра Серебрякова, Анна Шмакова
Made on
Tilda