Skip to content

dhhse/IceForm

Repository files navigation

IceForm

Formulas in Icelandic saga prose

Команда

Руководитель: Дарья Глебова

Участники:

  • Женя Глазунов
  • Аня Кондратьева
  • Настя Костяницына

Описание проекта

В произведениях фольклора и литературы могут встречаться повторяющиеся конструкции. С одной стороны, это могут быть формулы - повторяющиеся формулировки, встречающиеся во многих сагах и употребляющиеся в схожих содержательных или композиционных условиях (например, формула сказочного зачина "Жили-были"). С другой стороны, повторения фраз, встречающиеся в конкретной саге - повторы часто оказываются нарративным приемом в саговом повествовании (например, в "Саге о Курином Торире" одна и та же фраза в различных вариациях встречается четыре раза, таким образом обрамляется сожжение Кетиля Сони). Цель проекта - автоматизированный (непредзаданный) поиск повторяющихся конструкций с той или иной степенью вариативности.

Данные

Данные - Корпус древнеисландских саг
Объем корпуса - 1.5 млн токенов
Разметка - словоизменительный тип и лемма

Типы конструкций

Выделяют три типа конструкций:

  • Закрытые - лексически идентичные конструкции

    • X hét maðr (Человека звали Х)
  • Полуоткрытые - лексически разные, но семантически похожие (слова могут быть заменены на синонимы):

    • skiljask með kærleik (Они расстались по-дружески)
    • skiljask með blíðu (Они расстались по-дружески)
    • skiljask með vináttu (Они расстались по-дружески)
  • Открытые - схожие синтаксические конструкции, но лексически и семантически разные

    • Ekki hefi ek nýligra frétt en ránit (никаких новостей, кроме ограбления)
    • Ekki höfum vér nú nýligar frétt en brennu Blund-Ketils bónda (никаких новостей, кроме сожжения Кетиля)

Алгоритм

Несмотря на то, что при традиционной работе "руками" подобные конструкции легко заметить, их поиск занимает большое количество времени. По этой причине нам стало интересно попробовать автоматизировать процесс поиска и разработать алгоритм, который хотя бы частично облегчил задачу исследователей.

Работа состоит из следующих этапов:

  • формирование списка нграмм
  • фильтрация на основе лингвистических особенностей исландского языка
  • «схлопывание» контекстных вариантов (открытый и полуоткрытый типы конструкций)
  • кластеризация
  • создание базы данных
  • создание сайта

В связи с тем, что некоторые варианты одной формулы могут встречаться очень редко, просто отсеивать нграммы по частотности не получается. Более того, устройство исландского языка усложняет нашу работу (свободный порядок слов, обилие компаундов и тд) и требует разработки специального алгоритма фильтрации, учитывающего особенности нашего языкового материала.

Конструкции

Для каждой нграммы мы сохраняем следующую информацию:

  • Номер текста, в котором она встретилась 
  • Номер предложения
  • Индекс первого слова нграммы
  • Индекс последнего слова нграммы

В рамках настоящего проекта были выделены основные критерии нграмм, на основе которых можно осуществлять их фильтрацию. Нграмма - последовательность слов, которая:

  • обязательно содержит глагол
  • синтаксически цельная
  • имеет частеречную значимость не менее 90%

Синтаксическая цельность

Каждое слово в корпусе сопровождается морфологической разметкой. На основе разборов каждого слова определяется морфологический состав целой нграммы для проверки синтаксической цельности  (нет нарушений согласования и управления). Например, если в нграмме есть предлог, который управляет дательным падежом, в ней обязательно должно быть существительное, местоимение или числительное в соответствующем падеже.

Частеречная значимость

Каждой части речи было сопоставлено число, отражающее смысловую и “градообразующую” значимость в процессе формирования фраз. Частеречная значимость нграммы рассчитывается:

  • Significance - значимость части речи
  • Frequency - частотность части речи в нграмме
  • length - кол-во слов в нграмме

Если полученное значение меньше 0.9, нграмма пропускается. Порог был выведен путем проверки результатов на тестовой выборке.

Нахождение расстояния между нграммами

Далее для того, чтобы сравнивать нграммы, они группируются по набору частей речи в очищенной нграмме. Например, все нграммы из глагола, существительного в номинативе и существительного в дативе идут в одну группу независимо от слов внутри. Эти нграммы сравниваются внутри группы с помощью взвешенного косинусного расстояния между fasttext векторами слов.

  • Нграммы записываются в таблицу, где столбцы - POS-теги (глагол, существительное в Х падеже и т.д.)
  • Слова векторизуются с помощью fasttext модели от Facebook
  • Вектора слов в столбце попарно сравниваются (находится косинусное расстояние)
    • если таких POS-тегов два, то слова выравниваются по лучшему совпадению. NG1 A и B, NG2 C и D. Если (A, D) = min, то A+D, B+C пары в выравнивании.
  • Расстояния умножаются на коэффициент важности (глагол менять дороже). Коэффициенты примерно похожи на использованные ранее для важности
  • Расстояния суммируются и получается матрица NxN с попарными расстояниями между нграммами
  • Далее эта матрица расстояний используется для кластеризации. В качестве алгоритма кластеризации выбрана иерархическая кластеризация методом полной связи. Расстояния нормализуются деление на число слов нграмме. Устанавливается трешхолд 1 (пока так). В один кластер попадают все группы, где расстояние не больше 1. Если в кластере > 1 элемента, то он сохраняется в базу.

About

Formulas in Icelandic saga prose

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published