Сетевой анализ художественной литературы

Даниил Скоринкин

dskorinkin@hse.ru

Презентация доступна онлайн:

danilsko.github.io/slides/networks_pgu

Эту презентацию лучше не листать стрелочками

Вперед ПРОБЕЛОМ, назад — ШИФТ+ПРОБЕЛОМ

Что за сетевой анализ?

Теория графов

Хорошая абстрактная модель

Может служить моделью для многого

Может служить моделью для многого

Может служить моделью для многого

Сети в вымышленных мирах

Первый пример

Schweizer T., Schnegg M. Die soziale Struktur der. „Simple Storys“: Eine Netzwerkanalyse. (1998)

Социальные сети у Шекспира

Stiller J., Nettle D., Dunbar R.I.M. The small world of Shakespeare’s plays. // Human nature. 2003. 14/4. С. 397–408.

Сети малого мира (Small World)

Те самые шесть рукопожатий

Плотность сетей понижается с увеличением размера

Stiller J., Nettle D., Dunbar R.I.M. The small world of Shakespeare’s plays. // Human nature. 2003. 14/4. С. 397–408.

Вымышленные соцсети не ограничиваются литературой

Сетевой анализ вселенной Marvel

  • Alberich, R., Miro-Julia, J., Rossello, F. (2002), Marvel universe looks almost like a real social network.
  • P. M. Gleiser. How to become a superhero. Journal of Statistical Mechanics: Theory and Experiment, (09):P09020, 2007.
  • Вселенная Marvel вращается вокруг Капитана Америки

    Но это же банально!

    Разные соцсети у супергероев и суперзлодеев

    Сравнение сетей 60 британских романов

    • Elson, D. K., Dames, N. and McKeown, K. (2010), Extracting Social Networks from Literary Fiction, Proceedings of ACL 2010, Uppsala, Sweden.

    Анализ сети Гамлета от Франко Моретти

    Франко Моретти, «Теория сетей и анализ сюжета» (2011)

    Моретти о раскрытии роли Горацио через сети

    Though Horatio is an old fixation of mine, I had never fully understood his role in Hamlet until I looked at the play’s network structure.

    Franco Moretti. “Distant Reading”

    Метрики центральности в сетях

    Степень                                                                                                    Нагрузка/центр.по посредничеству (betweenness)

    Переведем в цифры
    Персонаж Степень Нагрузка (betweenness)
    Гамлет 19 219,4
    Король (Клавдий) 16 131,6
    Горацио 14 176,7
    Визуализируем:
    Главная идея Моретти — "дальнее" чтение (distant reading)
    Literature scholars should stop reading books and start counting, graphing, and mapping them instead

    Moretti, 2005

    Масштабирование исследований

    тут и глазами можно что-то ухватывать

    тут и глазами можно что-то ухватывать

    Гете и Шекспир

    Но можно и заниматься полноценным компьютерным distant reading

    Жанры пьес — и плотности сетей

    Плотность = 0.5 (3/6)      Плотность = 1 (6/6)

    Плотности комедии и трагедии отличаются

    Для русских пьес — RusDraCor

    rus.dracor.org

    RusDraCor: Борис Годунов

    Какие русские пьесы обладают свойствами "малого мира"?

    Исследование Евгении Устиновой (МИЭМ)

    Приглядимся-ка к Борису Годунову

    Классицизм против "шекспировской пьесы"

    Важный ли герой Гаврила Пушкин?

    Пушкин на посылках и betweenness centrality

    Битяговский (двойной агент)

    Битков (соглядатай/двойник Пушкина)

    Методология и техника сетевого анализа

    (Даня, хватит бла-бла, давай лучше как такое делать)

    2 задачи:

    1. Получить данные о связях персонажей (т.е. извлечь сеть из текста)
    2. Визуализировать, проанализировать, интерпретировать сеть (здесь очень помогает Gephi)

    Чтобы извлечь из текста сеть, нужно понимать...

    Что считать узлом?

    • Вроде бы персонажа
    • Что делать с групповыми персонажами ("Народ", "Все")?
    • Повторяющиеся неименованные персонажи ("Другой солдат")

    Что считать связью?

    Что считать связью? (вот тут сложнее)

    • Коммуникация
    • Взаимодействия
    • Совместные упоминания в тексте

    Как мы можем учесть интенсивность взаимдействия/коммуникации?

    Взвешенный граф

    Взвешенный граф

    Направленный граф

    Алиса в стране чудес

    Agarwal A. et al. Social Network Analysis of Alice in Wonderland // Proceedings of the NAACL-HLT 2012 Workshop on Computational Linguistics for Literature. Montrèal, Canada: Association for Computational Linguistics, 2012. P. 88–96.

    Способы извлечения сети из текста

    • С помощью сложной компьютерной лингвистики
    • 60 британских романов
    • tolstoy.online

    Способы извлечения сети из текста

    • C помощью опоры на разметку
      • (степень автоматизации разметки бывает разной...)

    Легче всего автоматизировать в пьесе

    “Networks are made of vertices and edges; plot networks, of characters and verbal exchanges. In plays this works well, because words are deeds, deeds are almost always words, and so, basically, a network of speech acts is a network of actions”.

    Franco Moretti. “Distant Reading”

    АКТ I

    СЦЕНА 1

    Эльсинор. Площадка перед замком. Франсиско на страже. Входит Бернардо,

    Бернардо

    Кто здесь?

    Франсиско

    Нет, сам ответь мне; стой и объявись.

    <div type="act">

    <head>АКТ I</head>

    <div type="scene">

    <head>СЦЕНА 1</head>

    <stage>Эльсинор. Площадка перед замком. Франсиско на страже. Входит Бернардо,</stage>

    <speaker>Бернардо</speaker>

    Кто здесь?

    <speaker>Франсиско</speaker>

    Нет, сам ответь мне; стой и объявись.

    Мы размечаем при помощи стандарта

    Text Encoding Initiative (TEI/XML)

    Способы извлечения сети из текста

    • Руками!
      • И это не такой уж плохой способ!
      • Даже программисты делают это (когда никто не видит)

    CSV — cамый простой формат кодирования сетей

    Source,Target,Weight
    Даня,Маша,2
    Вася,Петя,15
    Вася,Маша,1

    Gephi умеет превращать CSV в красоту

    Эту CSV-шку можно взять тут

    Как можно делать такие CSV (не программируя)?

    1. В блокноте...
    2. В любом табличном редакторе
      (Excel / Google Sheets / LibreOffice/ OpenOffice)
    3. Ручками в нашем Ezlinavis

    ezlinavis.dracor.org

    ДЗ: попробуйте построить свою сеть

    По любой книжке (художественной, мемуарной...), где есть больше 10 персонажей

    ezlinavis.dracor.org

    Когда ваша сеть готова — импортируйте ее в Gephi

    Напоминаю, что есть классная инструкция от Оксаны Дерезы

    Заполните Label у узлов, чтобы включить подписи

    -> -> -> -> ->

    Сделайте размер узлов пропорциональным Degree — с помощью вкладки Appearance

    Придумайте какой-нибудь атрибут ваших узлов, заполните его — и визуализируйте с помощью цвета! Шаг 1:

    Придумайте какой-нибудь атрибут ваших узлов, заполните его — и визуализируйте с помощью цвета! Шаг 2:

    Придумайте какой-нибудь атрибут ваших узлов, заполните его — и визуализируйте с помощью цвета! Шаг 3:

    Придумайте какой-нибудь атрибут ваших узлов, заполните его — и визуализируйте с помощью цвета! Шаг 4:

    Примените какой-нибудь алгоритм укладки

    Например, Force Atlas 2 или Fruchterman-Reingold

    Для Force Atlas 2 стоит сделать разреженность повыше

    Загрузите вашу визуализацию сюда