¿Cómo puedo simular vocabulario limitado de IA para un juego de palabras?


14

Tengo un pequeño puñado de juegos de palabras competitivos en progreso, y aunque la preferencia es jugar (principalmente asincrónica) contra otros oponentes humanos, me gustaría ofrecer a los jugadores la opción de jugar contra una IA. Tengo mi diccionario y puedo darle fácilmente a la IA un conocimiento completo del diccionario mientras está jugando, pero mi preocupación es que tener a la IA jugando regularmente palabras con las que no están familiarizados será una experiencia frustrante para los jugadores: 'Habría ganado ese juego ¡Si solo hubiera usado palabras que sé! - incluso si el nivel de habilidad general de la IA se rechaza.

Prefiero crear una IA más débil a través de una combinación de parámetros de juego (no) sintonizados y un vocabulario más débil, pero no estoy seguro de cómo limitar ese vocabulario a palabras 'comunes'. He visto varias listas de frecuencia de palabras (por ejemplo, la lista de todas las palabras que aparecen en los libros del Proyecto Gutenberg, ordenadas por número de ocurrencias) pero todas tienen una serie de falsos negativos: palabras que todos saben que simplemente no t aparece con cualquier frecuencia real (por ejemplo, CHEETAH aparece con menos frecuencia en los textos de PG que VOCATIVE o SUTTEE). He intentado usar los resultados de búsqueda para obtener estimaciones de la popularidad de una palabra, pero también tienden a ser falsas estimaciones erróneas, y por supuesto que '

¿Alguien tiene sugerencias sobre otros buenos medios para determinar una frecuencia aproximada del uso de palabras, u otras formas de limitar la IA del juego de palabras que se sentirán naturales para los jugadores?


66
¡podrías dejarlo aprender! Cada vez que el jugador usa una palabra que no "sabe", podría tener una probabilidad de 6/10 de aprenderla, de lo contrario, ¡aprende una nueva palabra al azar! (Por lo tanto, generalmente aprenderá palabras que el jugador conoce, pero lentamente mostrará palabras que el jugador podría no (¡educación!)) Por supuesto, esto significaría que necesitaría un "diccionario de IA" para cada jugador.
Joel

Respuestas:


6

Creo que su solución aún sería ir con alguna lista de frecuencia de palabras. El Proyecto Gutenberg podría no ser el indicado para usted, ya que contiene principalmente textos antiguos en los que el derecho de autor ha expirado, dando frecuencias extrañas para los hablantes modernos de inglés. Supongo que hubo un momento en que "vocativo" era en realidad una palabra más utilizada que "guepardo" ...

Así que creo que la solución es encontrar la lista de frecuencias correcta . Buscar un poco me hizo tropezar con las 5000 palabras más utilizadas en todos los episodios de Simpson, que podrían estar un poco más actualizadas. Sin embargo, es posible que desee hacer una referencia cruzada de esta lista con un diccionario real para ordenar palabras como "krabappel", por ejemplo :)

Espero que ayude, ¡estoy emocionado de saber con qué solución vas!


1
Mi fuerte impresión es que los problemas con 'palabras que todos conocen pero nadie usa' aún persistirán con cualquier diccionario, pero puede ser lo mejor que puedo hacer, y por supuesto, hay una buena posibilidad de que los jugadores no lo hagan. incluso note las palabras fáciles que la IA no conoce, solo las palabras difíciles que sí sabe.
Steven Stadnicki

+1 Puede que tengas razón, pero ¿por qué es eso? En general, me parece que las personas deberían aprender las palabras que escuchan con frecuencia. Si está en lo correcto, sería interesante saber la razón ... :) Mi hipótesis sería que se debe a un sesgo en el corpus utilizado, como en el caso del proyecto Gutenberg, por lo que me estoy aferrando a la solución que solo necesitas la lista de frecuencias correcta.
Mikael Högström

5

La multitud lo busca. Utiliza todos los juegos multijugador que juegan tus jugadores para construir una tabla de frecuencia de palabras. Creo que cualquier servicio de análisis podría ayudar a recopilar y organizar estos datos. Incluso podría ponderar las entradas según cuán "bueno" sea el jugador que usa la palabra.


Me gusta esto, pero todavía parece que está resolviendo el problema de 'actualización' en lugar del problema de 'inicio' (suponiendo, por supuesto, que quiero lanzar los juegos multijugador y en solitario uno al lado del otro, lo cual es una pregunta diferente enteramente).
Steven Stadnicki

2

Comience con vocabulario básico de acuerdo con su nivel de IA. Por ejemplo, a continuación se muestra su lista de niveles de IA.

  • básico: vocabulario de 1000 palabras
  • promedio: vocabulario de 2000 palabras
  • duro: vocabulario de 5000 palabras

Puede elegir estas palabras de los siguientes sitios web que puede ver con la búsqueda de Google .

Estos sitios le darán sus palabras iniciales, pero creo que google n-grams puede ser una mejor opción. De todos modos, no se preocupe demasiado por sus palabras iniciales, con el mecanismo de actualización / adición que se explica a continuación, su diccionario de inteligencia artificial debería enderezarse según sus jugadores.

Como tus jugadores aprenden mientras juegan, tu IA también debería aprender. Permita que aprenda las palabras más utilizadas por sus oponentes.

Por ejemplo, 10 personas jugaron contra tu IA básica, usaron 100 palabras desconocidas, es decir, palabras que no están en tu diccionario de IA. Elija las palabras más utilizadas y agréguelas a su diccionario básico de IA, también a su diccionario promedio y difícil. También debe optar por actualizar algunas palabras que no se usan en su diccionario con las palabras que usa la gente. De esta manera, su diccionario inicial será más adecuado para el conocimiento de sus jugadores. Puede comenzar con menos palabras / grupo de palabras diferentes, pero su IA aprenderá mientras juegan contra humanos.

También puede considerar comenzar su IA con un nivel básico y actualizarla a otros niveles solo cuando haya aprendido suficientes palabras.


Esto proporciona una forma decente de actualizar el vocabulario, pero aún deja la pregunta de inicio: ¿de dónde provienen esos vocabularios iniciales?
Steven Stadnicki
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.