habrahabr

Игра в Тьюринга

  • понедельник, 22 октября 2018 г. в 00:16:42
https://habr.com/post/427123/
  • Машинное обучение
  • Python


Все мы знаем "Тест Тьюринга". В классическом его варианте человек и машина отвечают на вопросы судьи, причем судья не видит отвечающих и должен только по ответам догадаться, кто из них кто.

Про этот тест даже снят короткометражный игровой фильм «Кто за стеной». Можно сказать, фантастический, потому что действие по сюжету происходит в конце 2000 года, а снят он, на минуточку, в 1977 году. Если не видели — посмотрите обязательно, и обязательно до конца — как и положено в короткометражном фильме, развязка будет неожиданна.


Кто за стеной. Центрнаучфильм. 1977 год

Так вот, в фильме был интересный способ выбора участников теста — они выбирались среди абонентов городской телефонной сети случайным образом и отвечали на вопросы из дома в онлайне. С видео, фильм же фантастический. Я и подумал, а неплохо бы запилить подобный тест, пользуясь современными технологиями, а именно технологией чатов, в том же Telegram, например.

Идея в следующем:
1. Каждый подключившийся к боту участник может взять на себя роль игрока, отвечающего на вопросы, или судьи, эти вопросы задающего.
2. Если участник решил быть судьей, то бот случайным образом подбирает ему игрока – либо среди людей-игроков, либо подключает робота. То есть здесь у меня отличие от стандартного теста Тьюринга – в игре отвечающий всегда один, и судья задает вопросы только ему. Можно было сделать и два, но мне показалось, что будет сложно их синхронизировать.
3. Если участник решил быть игроком, то бот аналогично ищет ему в пару участника-судью.
4. Так же, как в фильме, игра поделена на туры по 5 вопросов. По окончанию каждого тура судья принимает решение, с кем он общается, с человеком или с машиной. Если он не может определиться, то может прекратить игру или начать новую.
5. Видео участников нет, конечно. Техника, может, и дошла до этого, но я нет.
6. Так как робот у меня простенький, глупенький, то он играет роль маленького мальчика Миши пяти лет. Чтобы судье не облегчать задачу, человеку-игроку рекомендуется тоже отвечать от имени Миши, проявите воображение.

Ссылка на бота @StandardTuringTestBot, в мобильном приложении нужно набрать это имя в строке поиска.

О том, как это устроено, для чистоты эксперимента я расскажу позже, иначе знание внутренностей бота сразу дадут понимание, какими вопросами можно определить, кто за стеной.