Как я могу имитировать ограниченный словарь искусственного интеллекта для игры в слова?

14

У меня есть небольшая кучка конкурирующих игр в слова, и хотя я предпочитаю (в основном асинхронную) игру против других оппонентов, я бы хотел предоставить игрокам возможность играть против ИИ. У меня есть свой словарь, и я легко могу дать ИИ полное знание словаря во время игры, но меня беспокоит то, что наличие у ИИ регулярного воспроизведения слов, с которыми они не знакомы, будет разочаровывающим опытом для игроков: «Я бы выиграл эту игру если бы он просто использовал слова, которые я знаю! - даже если общий уровень мастерства ИИ понижен.

Я бы предпочел создать более слабый ИИ с помощью комбинации (не) настроенных параметров воспроизведения и более слабого словарного запаса - но я не уверен, как ограничить этот словарь «общими» словами. Я посмотрел на несколько списков частот слов (например, список всех слов, которые появляются в книгах по проекту Гутенберга, отсортированные по количеству случаев), но у всех них есть несколько ложных отрицаний: слова, которые все знают, что просто не t появляется с любой реальной частотой (например, CHEETAH появляется реже в текстах PG, чем VOCATIVE или SUTTEE). Я пытался использовать результаты поиска, чтобы получить оценки популярности слова, но они также склонны к ложным ошибочным оценкам, и, конечно, это так ».

Есть ли у кого-нибудь предложения о других хороших способах определения грубой частоты использования слов или других способах ограничения ИИ в играх, которые будут естественными для игроков?

Стивен Стадницки
источник
6
Вы могли бы позволить этому учиться! Каждый раз, когда игрок использует слово, которое он не «знает», у него может быть 6/10 шанс выучить его, иначе он узнает новое случайное слово! (Таким образом, он обычно будет изучать слова, которые знает игрок, но медленно выводить слова, которые игрок может не знать (образование !!)) Конечно, это будет означать, что вам понадобится «Словарь ИИ» для каждого игрока.
Джоэл

Ответы:

6

Я думаю, что ваше решение по-прежнему состоит в том, чтобы пойти с некоторым списком частот слов. Project Gutenberg может быть не для вас, поскольку он содержит в основном старые тексты, срок действия авторских прав которых истек, что дает странные частоты для современных носителей английского языка. Я предполагаю, что было время, когда слово «прилагательное» было более употребительным словом, чем «гепард» ...

Поэтому я думаю, что решение состоит в том, чтобы найти правильное список частот. Из-за небольшого поиска я наткнулся на 5000 наиболее часто используемых слов во всех эпизодах Симпсонов, что может быть немного более актуальным. Возможно, вы захотите сопоставить этот список с реальным словарем, хотя для сортировки таких слов, как, например, «krabappel» :)

Надеюсь, это поможет, я рад услышать, какое решение вы идете!

Микаэль Хегстрём
источник
1
У меня сложилось сильное впечатление, что проблемы с «словами, которые все знают, но никто не использует», все еще будут сохраняться в любом словаре, но это может быть лучшим, что я могу сделать - и, конечно, есть хороший шанс, что игроки не будут даже обратите внимание на простые слова, которые ИИ не знает, только жесткие слова, которые он знает.
Стивен Стадницкий,
+1 Вы можете быть правы, но почему? Вообще мне кажется, что люди должны выучить слова, которые они часто слышат. Если вы правы, было бы интересно узнать причину ... :) Я предполагаю, что это из-за смещения в используемом корпусе, как в случае проекта Гутенберга, поэтому я придерживаюсь решения, которое вам просто нужен правильный список частот.
Микаэль Хогстрём,
5

Толпа источник это. Используйте все многопользовательские игры, в которые играют ваши игроки, для составления таблицы частотности слов. Я думаю, что любая аналитическая служба могла бы помочь собрать и упорядочить эти данные. Вы можете даже взвесить записи по тому, насколько «хорош» игрок, использующий слово.

PT
источник
Мне это нравится, но все равно кажется, что он решает проблему «обновления», а не проблемы «запуска» (конечно, при условии, что я хочу запустить многопользовательские и сольные игры бок о бок, а это другой вопрос целиком).
Стивен Стадницкий,
2

Начните с базового словарного запаса в соответствии с вашим уровнем AI. Например, пусть ниже ваш список уровней ИИ.

  • базовый: словарный запас 1000 слов
  • средний: 2000 слов словарь
  • сложный: словарный запас 5000 слов

Вы можете выбрать эти слова из следующих веб-сайтов, которые вы можете увидеть с помощью поиска Google .

Эти сайты дадут вам стартовые слова, но я думаю, что Google N-граммы могут быть лучшим выбором. В любом случае, не беспокойтесь о ваших начальных словах, так как механизм обновления / добавления, описанный ниже, ваш словарь ИИ должен выровнять в соответствии с вашими игроками.

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

Например, 10 человек играли против вашего базового ИИ, они использовали 100 неизвестных слов, то есть слов, которых нет в вашем словаре ИИ. Выберите наиболее часто используемые слова и добавьте их в свой базовый словарь искусственного интеллекта, а также в свой средний и сложный словарь. Вы также должны обновить некоторые слова, которые не используются в вашем словаре, словами, которые используют люди. Таким образом, ваш стартовый словарь будет более подходящим для ваших знаний игроков. Вы можете начать с меньшего количества слов / группы разных слов, но ваш ИИ будет учиться, пока они играют против людей.

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

Атилла Озгур
источник
Это дает достойный способ обновления словаря, но все же оставляет вопрос стартапа - откуда берутся эти первоначальные словари?
Стивен Стадницки,