Мне было любопытно узнать, как связаны между собой персонажи Симпсонов. В чем разница между повторяющимся и второстепенным персонажем. И кто ДЕЙСТВИТЕЛЬНО стрелял в мистера Бернса.

Я написал быстрый скрипт для анализа XML-дампа The Simpsons Wikia — он дает мне список персонажей в каждом эпизоде.

Теперь я могу построить матрицу сочетаемости. Матрица совместного появления в основном подсчитывает, сколько раз два персонажа были замечены вместе. Из этого мы можем определить, что при наличии одного символа, какие другие символы, вероятно, будут встречаться одновременно, но подробнее об этом чуть позже. Кстати, размерность этой матрицы 2651 на 2651.

co_occurrence[char][cmp_char] += 1

Давайте бросим эту матрицу в t-SNE, я могу создать эту визуализацию в 2D-пространстве встраивания.

Если мы увеличим изображение членов семьи Симпсонов (положение на 11 часов), мы сможем увидеть наиболее важных персонажей.

Здорово! Мы можем начать видеть группы общих и повторяющихся символов.

Запустив алгоритм кластеризации (k-Means), мы можем начать видеть, как вытряхиваются персонажи. Кластеры не в каком-то определенном порядке.

Группа 1: Апу Нахасапимапетилон, Барни Гамбл, Карл Карлсон, Клэнси Виггам, Эдна Крабаппель, Садовник Вилли, Джулиус Хибберт, Кент Брокман, Клоун Красти, Ленни Леонард, Мартин Принс, Милхаус Ван Хаутен, Мо Сизлак, Нед Фландерс, Нельсон Мунц, Ральф Виггам, Сеймур Скиннер

Группа 2: Арни Пай, Шеф Виггам, Продавец комиксов, Дредерик Татум, Даффман, Жирный Тони, мэр Куимби, мистер Бернс, мистер Тини, преподобный Лавджой, …

Группа 3: Агнес Скиннер, Клетус Спаклер, Гэри Чалмерс, Ганс Молеман, Джаспер Бердли, Джимбо Джонс, Кирни Жизвич, Кирк Ван Хаутен, Лу, Эдди…

Группа 4: Барт Симпсон, Гомер Симпсон, Лиза Симпсон, Мэгги Симпсон, Мардж Симпсон

Кластер 5: Ануп Нахасапимапетилон, Гит Нахасапимапетилон, Джамшед Нахасапимапетилон, Набенду Нахасапимапетилон, Пахусачета Нахасапимапетилон, Зуд и Царапка, Отто, Йода…

Группа 6: Шерри Маклберри и Терри Маклберри, Шерри и Терри, Интермедия Мел, Снейк Джейлбёрд, Снежок II, Вейлон Смитерс…

Я резко сократил вывод здесь, но уже из вышеизложенного мы можем видеть, что основная семья Симпсонов — это Кластер 4. Я думаю, что Кластер 1 — это Вспомогательные персонажи, это было второй кратчайший список. За ним следуют Кластеры 2 и 3, как Повторяющиеся символы. А остальные кластеры 5 и 6, как правило, являются не говорящими персонажами.

Теперь давайте посмотрим, сможем ли мы сделать что-то интересное с пространством для встраивания. Очень известная задача — решить аналогию Мужчина : Женщина :: Король :Бланк, где Бланк, конечно же, Королева. Я могу подключить метод оптимизации, который решает аналогию, используя формулировку

ферзь — это слово w, которое максимизирует: cos(w, король) - cos(w, человек) + cos(w, женщина).

Теперь мы можем задать несколько интересных вопросов:

Кто появляется со Скиннером так же часто, как Гомер с мистером Бернсом, Рафаэль!

Homer appears with Mr Burns, as much as Skinner appears with X
Raphael matches with -0.007807840754573123 score
Agnes Skinner matches with -0.006507300136243243 score
Seymour Skinner matches with -0.0013063478460662251 score
Ned Flanders matches with 0.0003449207169453298 score
Julius Hibbert matches with 0.0013784755420673082 score

Карл появляется с Ленни так же, как Барт появляется с Милхаусом.

Bart : Milhouse :: Lenny : X
Carl Carlson matches with 0.00836752019644514 score
Lenny Leonard matches with 0.009283519230516186 score 
Seymour Skinner matches with 0.010598601885707543 score
Milhouse Van Houten matches with 0.011148180200725749 score
Groundskeeper Willie matches with 0.011500540096501217 score

И просто для удовольствия — Милхаус для Смитерса, а Барт для Моны Симпсон!

Milhouse : Smithers :: Bart : X
Waylon Smithers matches with -0.015349511875509168 score
Mona Simpson matches with 0.004664844417944729 score
Larry (barfly) matches with 0.012164243760824693 score
Mr. Burns matches with 0.01671679923621895 score
Lenny Leonard matches with 0.018889929394280414 score

Довольно круто.

Это был небольшой эксперимент со знакомым составом персонажей, и мы уже могли видеть скрытую структуру, присутствующую в наборе данных. Те же методы, о которых я упоминал выше, используются везде, от поисковых систем до людей, которых вы узнаете. У меня есть некоторые интересные планы на будущее для этих данных, следите за обновлениями.