Jak mogę zasymulować ograniczone słownictwo AI dla gry słownej?

14

Trwa kilka garści konkurencyjnych gier słownych i chociaż preferuję (głównie asynchroniczną) grę z innymi ludzkimi przeciwnikami, chciałbym zapewnić graczom możliwość gry przeciwko AI. Mam słownik i mogę z łatwością przekazać AI pełną wiedzę podczas gry, ale martwię się, że regularne odtwarzanie AI, których nie znają, będzie frustrującym doświadczeniem dla graczy: „Wygrałbym tę grę gdyby użył tylko słów, które znam! - nawet jeśli ogólny poziom umiejętności AI zostanie odrzucony.

Wolę stworzyć słabszą sztuczną inteligencję dzięki kombinacji (nie) dostrojonych parametrów gry i słabszego słownictwa - ale nie jestem pewien, jak ograniczyć to słownictwo do „zwykłych” słów. Przejrzałem kilka list częstotliwości słów (na przykład listę wszystkich słów, które pojawiają się w książkach Project Gutenberg, posortowanych według liczby wystąpień), ale wszystkie mają wiele fałszywych negatywów: słowa, które wszyscy wiedzą, że po prostu nie „ t pojawia się z dowolną rzeczywistą częstotliwością (na przykład CHEETAH pojawia się rzadziej w tekstach PG niż VOCATIVE lub SUTTEE). Próbowałem użyć wyników wyszukiwania, aby uzyskać szacunki popularności słowa, ale są one również podatne na fałszywe błędne oszacowania i oczywiście ”

Czy ktoś ma sugestie dotyczące innych dobrych sposobów określania zgrubnej częstotliwości używania słów lub innych sposobów ograniczania sztucznej inteligencji w grach, które będą dla graczy naturalne?

Steven Stadnicki
źródło
6
możesz pozwolić mu się uczyć! Za każdym razem, gdy gracz używa słowa, którego nie „zna”, może mieć 6/10 szans na jego naukę, w przeciwnym razie uczy się nowego losowego słowa! (W ten sposób zwykle będą uczyć się słów, które zna gracz, ale powoli wydobywają słowa, których gracz może nie znać (edukacja !!)) Oczywiście oznaczałoby to, że będziesz potrzebować „słownika AI” dla każdego gracza.
Joel

Odpowiedzi:

6

Myślę, że twoim rozwiązaniem byłoby nadal wprowadzenie listy częstotliwości słów. Projekt Gutenberg może nie być dla Ciebie, ponieważ zawiera głównie starsze teksty, w których wygasło prawo autorskie, dając dziwne częstotliwości dla współczesnych użytkowników języka angielskiego. Wydaje mi się, że był taki czas, kiedy „wołanie” było w rzeczywistości bardziej popularnym słowem niż „gepard” ...

Myślę więc, że rozwiązaniem jest znalezienie odpowiedniej listy częstotliwości. Przeszukując trochę, natknąłem się na 5000 najczęściej używanych słów we wszystkich odcinkach Simpsonów, co może być nieco bardziej aktualne. Możesz jednak odnieść się do tej listy do prawdziwego słownika, aby uporządkować słowa takie jak na przykład „krabappel” :)

Mam nadzieję, że to pomoże. Jestem podekscytowany, słysząc, jakie rozwiązanie wybierzesz!

Mikael Högström
źródło
1
Mam silne wrażenie, że problemy ze słowami „wszyscy wiedzą, ale nikt ich nie używa” nadal będą występować w każdym słowniku, ale może to być najlepsze, co mogę zrobić - i oczywiście istnieje duża szansa, że ​​gracze nie będą zauważ nawet proste słowa, których AI nie zna, tylko twarde słowa, które zna.
Steven Stadnicki
+1 Być może masz rację, ale dlaczego tak jest? Generalnie wydaje mi się, że ludzie powinni uczyć się często słyszanych słów. Jeśli masz rację, warto poznać przyczynę ... :) Moja hipoteza byłaby taka, że ​​wynika to z błędu w używanym korpusie, tak jak w przypadku projektu Gutenberga, więc trzymam się rozwiązania, które potrzebujesz tylko odpowiedniej listy częstotliwości.
Mikael Högström
5

Tłum to źródło. Użyj wszystkich gier wieloosobowych, w które grają gracze, aby zbudować tabelę częstotliwości słów. Myślę, że każda usługa analityczna mogłaby pomóc w gromadzeniu i organizowaniu tych danych. Możesz nawet zważyć wyniki według tego, jak „dobry” jest gracz posługujący się tym słowem.

PT
źródło
Podoba mi się to, ale nadal wydaje mi się, że rozwiązuje on problem „aktualizacji”, a nie „uruchamiania” (oczywiście zakładając, że chcę uruchomić gry wieloosobowe i gry solo obok siebie, co jest innym pytaniem całkowicie).
Steven Stadnicki
2

Zacznij od podstawowego słownictwa stosownie do poziomu AI. Na przykład poniżej znajduje się lista poziomów AI.

  • podstawowa: 1000 słów
  • średnio: 2000 słów
  • trudny: 5000 słów

Możesz wybrać te słowa z następujących stron internetowych, które możesz zobaczyć w wyszukiwarce Google .

Te strony podadzą Twoje początkowe słowa, ale myślę, że Google n-gram może być lepszym wyborem. W każdym razie nie przejmuj się zbytnio słowami początkowymi, ponieważ mechanizm aktualizacji / dodawania wyjaśniony poniżej słownik AI powinien wyprostować się w zależności od graczy.

ponieważ twoi gracze uczą się podczas gry, twoja sztuczna inteligencja również powinna się uczyć. Pozwól mu nauczyć się najczęściej używanych słów przez ich przeciwników.

Na przykład 10 osób grało przeciwko twojej sztucznej inteligencji, użyło 100 nieznanych słów, to znaczy słów, których nie ma w twoim słowniku sztucznej inteligencji. Wybierz najczęściej używane słowa i dodaj je do podstawowego słownika AI, a także do średniego i twardego słownika. Powinieneś także zaktualizować niektóre słowa, które nie są używane w słowniku, słowami, których używają ludzie. W ten sposób słownik początkowy będzie bardziej odpowiedni dla wiedzy graczy. Możesz zacząć od mniejszej liczby słów / kilku różnych słów, ale twoja sztuczna inteligencja nauczy się podczas gry przeciwko ludziom.

Możesz także rozważyć uruchomienie sztucznej inteligencji na poziomie podstawowym i uaktualnienie jej do innych poziomów tylko wtedy, gdy nauczy się wystarczającej liczby słów.

Atilla Ozgur
źródło
Daje to dobry sposób na aktualizację słownictwa, ale wciąż pozostawia pytanie startowe - skąd pochodzą te początkowe słowniki?
Steven Stadnicki