2218

Когда нечего делать на каникулах - игра в википедии

Далеко не один раз на пикабу мне встречались посты про занимательную игру, где в википедии нужно было добраться до статьи про Гитлера максимум за 6 шагов. Пару раз я в неё даже играла в небольшой компании: было забавно, но каждый раз достаточно просто, так что еще тогда у меня зародилась идея провести небольшое расследование и выяснить, каков шанс выиграть.

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


Важный дисклеймер: я не одобряю идеи Гитлера, не призываю никого одобрять эти идеи и вообще никого ни к чем не призываю.


Техническое исполнение


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

Началось всё с написания простенького приложения на C# с SQL базой для вытаскивания статей первого уровня, то есть тех, у которых есть прямая ссылка на Гитлера. Делалось это путем вызова API и запроса обратных ссылок (backlinks) со статьи про Гитлера. Первый уровень был вытащен, перешла ко второму, который добывался всё через те же backlinks. С третьим уровнем начались проблемы: по скромным подсчетам для перебора статей третьего уровня мне бы потребовалось около 40 дней, а ждать так долго совершенно не хотелось. К тому же мне хотелось в том числе найти статьи, с которых нет ссылок на Гитлера, так что нужен был какой-то финт ушами. Сделать какой-то умный финт ушами я не осилила, поэтому самым прямолинейным методом просто вытащила все статьи до 8.500.000 идентификатора. Почему именно такая правая граница? Потому что максимальный идентификатор у одной из статей второго уровня был 8.000.000, ну и я еще докинула 500.000. По итогу, я не могу 100% утверждать, что там, за 8.500.000 жизни нет, но если она и есть, то её очень мало, и она не сильно повлияет на конечный результат. Затем нужно было избавиться от всяких служебных статей, и вот уже с такой вычищенной выборкой работать дальше, проверяя, есть ли у статей ссылки на статьи с уже известным уровнем.


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


Ну а теперь самое интересное..


Результаты


Определяя Индекс Гитлера как кол-во шагов, за которые можно дойти до статьи про Гитлера, получаем следующую статистику

Когда нечего делать на каникулах - игра в википедии Википедия, Адольф Гитлер, Развлечения, Длиннопост

То есть с 97% статей можно перейти на статью про Гитлера максимум за 3 шага. Добавим туда четвертый уровень, и получим 99,8%, то есть почти все. А статей 6-го уровня я вообще не нашла. Вместо них, зато, встретились те, с которых нет ссылок на Гитлера. 400 из них не имеют ссылок вообще никуда, не то что на Гитлера.


Результаты поиска статей первого уровня были довольно предсказуемыми: германия, немецкий язык, прочее немецкое, военные деятели, населенные пункты, имеющие непосредственное отношение ко второй мировой войне..

так, а это что такое?

Когда нечего делать на каникулах - игра в википедии Википедия, Адольф Гитлер, Развлечения, Длиннопост

Пошла, проверила, всё так:

К теме трёх поросят неоднократно обращался другой мультипликатор, Тэкс Эвери: так, мультфильм «Blitz Wolf» времён Второй мировой войны использует волка для карикатурного изображения Адольфа Гитлера, два беззаботных поросёнка представляют страны, заключившие с ним пакт о ненападении, и лишь третий поросёнок (сержант Свин), подозревая подвох, готовится к войне.

Второй и третий уровень содержат слишком много статей, чтобы найти какие-то закономерности, поэтому я даже не пыталась. Но может быть вам будет интересно узнать, что от носовой слизи (да, такая статья на википедии тоже есть) можно дойти до Гитлера за 3 шага:


Носовая слизь -> хлорид натрия -> Германия (или Китай) -> Гитлер


Четвертый уровнь и милые сердцу математические термины

Когда нечего делать на каникулах - игра в википедии Википедия, Адольф Гитлер, Развлечения, Длиннопост

Там же химия, астрономия, медицина, неизвестные мне люди и населенные пункты, просто неизвестные мне слова типа Жарри, Мапуче и Бокштейн.


Пятый уровень и еще меньше известных слов. Вот тубус знаю, тубус - это детство. Тело с ручками тоже знаю, метод Гаусса-Зейделя знать должна, но не знаю.

Когда нечего делать на каникулах - игра в википедии Википедия, Адольф Гитлер, Развлечения, Длиннопост

Ну и если вам несказанно повезло попасть в 0.1 процент статей, не связанных с Гитлером никак, вас там встретят Центр художественного перевода и литературных связей Азербайджана, Раздражающий контакный дерматит и Всемирный день кастрации животных. Ну и так, по мелочи.


Вот, собственно и всё. Можно играть смело - шанс выиграть чрезвычайно высок. Если кому-то захочется играть с читами - обращайтесь, могу снабдить каждый день устаревающей базой, там ищутся все нужные ссылки.


С наступающим!