J'ai une petite poignée de jeux de mots compétitifs en cours, et bien que la préférence soit pour le jeu (principalement asynchrone) contre d'autres adversaires humains, j'aimerais offrir aux joueurs la possibilité de jouer contre une IA. J'ai mon dictionnaire et je peux facilement donner à l'IA une connaissance complète du dictionnaire pendant qu'il joue, mais ma préoccupation est que le fait que l'IA joue régulièrement des mots qu'ils ne connaissent pas sera une expérience frustrante pour les joueurs: `` J'aurais gagné ce jeu si elle venait d'utiliser des mots que je connais! - même si le niveau de compétence global de l'IA est diminué.
Je préfère créer une IA plus faible grâce à une combinaison de paramètres de jeu (non) réglés et d'un vocabulaire plus faible - mais je ne sais pas comment limiter ce vocabulaire aux mots `` courants ''. J'ai regardé plusieurs listes de fréquence de mots (par exemple, la liste de tous les mots qui apparaissent dans les livres du Projet Gutenberg, triés par nombre d'occurrences) mais ils ont tous un certain nombre de faux négatifs: des mots que tout le monde sait et qui ne font tout simplement pas '' t apparaître avec une fréquence réelle (par exemple, CHEETAH apparaît moins fréquemment dans les textes PG que VOCATIVE ou SUTTEE). J'ai essayé d'utiliser les résultats de recherche pour obtenir des estimations de la popularité d'un mot, mais ils ont également tendance à être sujets à de fausses estimations erronées, et bien sûr, il '
Quelqu'un a-t-il des suggestions sur d'autres bons moyens de déterminer une fréquence approximative d'utilisation des mots, ou d'autres moyens de limiter l'IA des jeux de mots qui sembleront naturels aux joueurs?
Réponses:
Je pense que votre solution serait toujours d'aller avec une liste de fréquence de mots. Le projet Gutenberg n'est peut-être pas celui qu'il vous faut, car il contient principalement des textes plus anciens où le droit d'auteur a expiré, donnant des fréquences étranges pour les anglophones modernes. Je suppose qu'il fut un temps où "vocatif" était en fait un mot plus couramment utilisé que "guépard" ...
Je pense donc que la solution est de trouver la bonne liste de fréquences. En cherchant un peu, je suis tombé sur les 5000 mots les plus utilisés dans tous les épisodes des Simpsons, ce qui pourrait être un peu plus à jour. Vous voudrez peut-être croiser cette liste avec un vrai dictionnaire pour trier des mots comme "krabappel" par exemple :)
J'espère que cela vous aide, je suis ravi d'entendre la solution avec laquelle vous allez!
la source
La foule l'approvisionne. Utilisez tous les jeux multi-joueurs auxquels vos joueurs jouent pour créer une table de fréquence de mots. Je pense que n'importe quel service d'analyse pourrait aider à collecter et à organiser ces données. Vous pouvez même pondérer les entrées en fonction de la «qualité» du joueur utilisant le mot.
la source
Commencez avec un vocabulaire de base en fonction de votre niveau d'IA. Par exemple, laissez ci-dessous est votre liste de niveau AI.
Vous pouvez choisir ces mots parmi les sites Web suivants que vous pouvez voir avec la recherche Google .
Ces sites vous donneront vos premiers mots mais je pense que google n-grammes peut être un meilleur choix. Quoi qu'il en soit, ne vous inquiétez pas trop de vos mots de départ, avec le mécanisme de mise à jour / ajout expliqué ci-dessous, votre dictionnaire d'IA devrait se redresser en fonction de vos joueurs.
puisque vos joueurs apprennent en jouant à ce jeu, votre intelligence artificielle devrait aussi apprendre. Permettez-lui d'apprendre les mots les plus utilisés par leurs adversaires.
Par exemple, 10 personnes ont joué contre votre base AI, elles ont utilisé 100 mots inconnus, c'est-à-dire des mots qui ne sont pas dans votre dictionnaire AI. Choisissez les mots les plus utilisés et ajoutez-les à votre dictionnaire d'IA de base, également à votre dictionnaire moyen et difficile. Vous devez également choisir de mettre à jour certains mots qui ne sont pas utilisés dans votre dictionnaire avec des mots que les gens utilisent. De cette façon, votre dictionnaire de départ sera plus adapté aux connaissances de vos joueurs. Vous pouvez commencer avec moins de mots / tas de mots différents, mais votre IA apprendra pendant qu'elle joue contre les humains.
Vous pouvez également envisager de démarrer votre IA avec un niveau de base et de la mettre à niveau vers d'autres niveaux uniquement lorsqu'elle a appris suffisamment de mots.
la source