Come posso simulare un vocabolario AI limitato per un gioco di parole?


14

Ho una manciata di giochi di parole competitivi in ​​corso, e mentre la preferenza è per il gioco (per lo più asincrono) contro altri avversari umani, vorrei offrire ai giocatori la possibilità di giocare contro un'intelligenza artificiale. Ho il mio dizionario e posso facilmente fornire all'IA piena conoscenza del dizionario mentre sta giocando, ma la mia preoccupazione è che avere l'IA che suona regolarmente parole che non conoscono sia un'esperienza frustrante per i giocatori: 'Avrei vinto quella partita se avesse usato solo parole, lo so! - anche se il livello di abilità generale dell'IA è abbassato.

Preferirei creare un'intelligenza artificiale più debole attraverso una combinazione di parametri di gioco (non) ottimizzati e un vocabolario più debole - ma non sono sicuro di come limitare quel vocabolario a parole "comuni". Ho esaminato diversi elenchi di frequenza di parole (ad esempio, l'elenco di tutte le parole che compaiono nei libri del Progetto Gutenberg, ordinati per numero di occorrenze) ma hanno tutti un numero di falsi negativi: parole che tutti sanno che semplicemente non ' t si presentano con qualsiasi frequenza reale (ad esempio, CHEETAH appare meno frequentemente nei testi PG rispetto a VOCATIVE o SUTTEE). Ho provato a utilizzare i risultati di ricerca per ottenere stime della popolarità di una parola, ma tendono anche a essere inclini a false stime spurie, e ovviamente '

Qualcuno ha suggerimenti su altri buoni mezzi per determinare una frequenza approssimativa di utilizzo delle parole o altri modi per limitare l'intelligenza artificiale dei giochi di parole che sembreranno naturali per i giocatori?


6
potresti lasciarlo imparare! Ogni volta che il giocatore usa una parola che non "conosce", potrebbe avere una probabilità del 6/10 di impararla, altrimenti impara una nuova parola casuale! (Di solito, quindi, impareranno le parole che il giocatore conosce, ma lentamente tirando fuori parole che il giocatore potrebbe non (educazione !!)) Naturalmente, ciò significherebbe che avresti bisogno di un "dizionario AI" per ogni giocatore.
Joel,

Risposte:


6

Penso che la tua soluzione sarebbe ancora quella di andare con un elenco di frequenza delle parole. Il Progetto Gutenberg potrebbe non essere quello per te in quanto contiene principalmente testi più vecchi in cui il copyright è scaduto, offrendo strane frequenze per i moderni madrelingua inglesi. Immagino ci sia stato un tempo in cui "vocativo" era in realtà una parola più comunemente usata di "ghepardo" ...

Quindi penso che la soluzione sia trovare la giusta lista di frequenze. Cercare un po 'mi ha fatto inciampare sulle 5000 parole più utilizzate in tutti gli episodi di Simpsons, che potrebbero essere un po' più aggiornate. Potresti voler fare un riferimento incrociato di questo elenco con un dizionario reale, anche se, per esempio, puoi ordinare parole come "krabappel" :)

Spero che sia d'aiuto, sono entusiasta di sapere quale soluzione scegli!


1
La mia impressione forte è che i problemi con "parole che tutti conoscono ma nessuno usa" continueranno a persistere con qualsiasi dizionario, ma potrebbe essere il migliore che io possa fare - e, naturalmente, ci sono buone probabilità che i giocatori non lo facciano nota anche le parole facili che l'IA non conosce, solo le parole dure che fa.
Steven Stadnicki,

+1 Potresti avere ragione, ma perché? Generalmente mi sembra che le persone dovrebbero imparare le parole che sentono spesso. Se hai ragione, sarebbe interessante conoscerne il motivo ... :) Il mio ipotesi sarebbe che sia a causa di un pregiudizio nel corpus usato, come nel caso del progetto Gutenberg, quindi mi attengo alla soluzione che hai solo bisogno del giusto elenco di frequenze.
Mikael Högström,

5

Folla lo fonte. Usa tutti i giochi multigiocatore a cui giocano i tuoi giocatori per costruire una tabella delle frequenze delle parole. Penso che qualsiasi servizio di analisi possa aiutare a raccogliere e organizzare questi dati. Puoi persino ponderare le voci in base a quanto "bravo" è il giocatore che usa la parola.


Mi piace, ma sembra ancora che stia risolvendo il problema di "aggiornamento" piuttosto che il problema di "avvio" (supponendo, ovviamente, che voglio lanciare il multiplayer e i giochi da solista fianco a fianco, che è una domanda diversa interamente).
Steven Stadnicki,

2

Inizia con il vocabolario di base in base al tuo livello di intelligenza artificiale. Ad esempio, di seguito è riportato l'elenco dei livelli AI.

  • base: vocabolario di 1000 parole
  • media: vocabolario di 2000 parole
  • difficile: vocabolario di 5000 parole

Puoi scegliere queste parole dai seguenti siti web che puoi vedere con la ricerca di Google .

Questi siti daranno le tue parole iniziali ma penso google n-grammi potrebbe essere la scelta migliore. Comunque non preoccuparti troppo delle tue parole iniziali, con il meccanismo di aggiornamento / aggiunta spiegato sotto il tuo dizionario AI dovrebbe raddrizzarsi secondo i tuoi giocatori.

poiché i tuoi giocatori imparano mentre giocano a questo gioco, anche la tua IA dovrebbe imparare. Permettigli di imparare le parole più utilizzate dai loro avversari.

Ad esempio, 10 persone hanno giocato contro la tua AI base, hanno usato 100 parole sconosciute, cioè parole che non sono nel tuo dizionario AI. Scegli le parole più utilizzate e aggiungile al dizionario AI di base, anche al dizionario medio e difficile. Dovresti anche scegliere di aggiornare alcune parole che non sono utilizzate nel tuo dizionario con le parole utilizzate dalle persone. In questo modo il tuo dizionario di partenza sarà più adatto alla conoscenza dei tuoi giocatori. Puoi iniziare con meno parole / un mucchio di parole diverse ma la tua IA imparerà mentre giocano contro gli umani.

Puoi anche considerare di iniziare la tua intelligenza artificiale con un livello base e di aggiornarla ad altri livelli solo quando ha imparato abbastanza parole.


Questo offre un modo decente di aggiornare il vocabolario, ma lascia ancora la domanda di avvio: da dove provengono quei vocabolari iniziali?
Steven Stadnicki,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.