[PYTHON] Lorsque j'ai fait une recherche de jeu recommandée avec YoutubeDataAPIv3 et fastText, j'ai trouvé un jeu qui semble intéressant que je ne connaissais pas auparavant

Je parlerai de la collecte de vidéos en direct sur Youtube, de la création d'expressions distribuées avec fastText et de la création d'un service qui vous permet de rechercher des jeux recommandés selon vos goûts.

Un service qui vous permet de rechercher des jeux que vous aimez "Game Concierge.AI"

Pourquoi j'ai décidé de faire

Il était difficile de trouver le jeu auquel je voulais jouer ensuite avec une recherche en ligne normale.

En premier lieu, il est difficile de trouver activement du contenu inconnu en recherchant sur le net. Il est assez difficile pour les personnes qui ne connaissent pas le mot «Splatoon 2» de trouver «Splatoon 2».

Eh bien, il est possible de trouver un travail que vous ne connaissez pas en recherchant "nouveau classement des travaux". Cependant, dans ce cas, vous devez trouver le jeu auquel vous voulez jouer parmi de nombreuses œuvres inconnues. Examinez le contour de chaque œuvre, comparez chacune d'elles et sélectionnez celle qui semble la plus intéressante. Le simple fait d'y penser est assez gênant. * Quand je l'ai fait, c'était trop gênant et mon cœur se brisait normalement.

Je voulais trouver un moyen de trouver le jeu auquel je veux jouer plus facilement et plus rapidement, alors je l'ai fait par développement personnel.

Quel genre d'idée as-tu fait

Tout d'abord, je ne pense pas aux gens qui ont déjà décidé à quel jeu ils veulent jouer ensuite. Je n'ai pas décidé à quel jeu je veux jouer ensuite, mais je considérerai les personnes qui veulent jouer quelque chose comme cible principale.

Un simple classement des ventes ou une nouvelle liste n'est pas bon. Si le nombre d'éléments répertoriés est important, il est difficile de vérifier plusieurs jeux un par un, c'est donc NG. Si le nombre est petit, vous n'aurez peut-être pas un jeu que vous aimez, donc ce n'est pas bon.

Ensuite, j'ai eu l'idée de «trouver un jeu recommandé dans le style Imozuru basé sur le jeu que j'aime».

Plus précisément, c'est comme ça.

――Imaginez un jeu que vous aimez ――Identifiez la personne qui aime le jeu

En bref, l'idée est similaire à «D'autres personnes regardent également ce produit» que l'on retrouve souvent sur les sites de la CE. Si on vous recommande que "les gens qui aiment ce jeu aiment aussi ce jeu", vous voudrez l'essayer.

Je l'ai fait tout de suite

Tout d'abord, j'ai cherché des jeux recommandés dans mon jeu préféré "Fire Emblem Fuka Yuzuki".

image.png

Considérant que "Fire Emblem Fuka Yuzuki" est caractérisé par des éléments de jeu de personnage, des éléments stratégiques, des éléments nourrissants, etc., tous les jeux recommandés sont raisonnablement convaincants. En même temps, il est bon que les jeux recommandés soient séparés les uns des autres. Ces 6 œuvres ont une durée d'environ 3 ans de 2017 à 2020 en termes de date de sortie. Quant à l'apparence de l'image de l'emballage, il est également intéressant que l'image rafraîchissante "Tales of Vesperia REMASTER" et le "Kowloon Youma Gakuenki ORIGIN OF ADVENTURE" légèrement sombre soient alignés. Je pense qu'il n'y a pas d'autre site qui commence par "Fire Emblem Fuka Yuzuki" et donne des résultats comme celui-ci.

En outre, non seulement les résultats de la recherche, mais également l'expérience de recherche sont importants.

Je ne connaissais aucun des jeux de résultats de recherche à l'origine, mais quand j'ai regardé le contour de chaque jeu pour écrire cet article, ils semblaient tous intéressants et j'ai voulu les essayer. C'était juste. De plus, tout ce que j'ai fait pour obtenir ce résultat de recherche était de penser au jeu que j'aimais. Avec cela seul, j'ai été un peu impressionné par le nombre de jeux que je voulais jouer ensuite. On peut remarquer que moi-même, je suis trop ignorant de la situation récente du jeu, mais je pense qu'il est étonnant que la recherche fonctionne sans connaissance préalable.

Encore plus intéressant est la "recherche de jeux que les gens qui aiment ce jeu pourraient aimer". Il s'agit d'une fonction permettant de rechercher à nouveau en utilisant le jeu qui apparaît dans les résultats de la recherche, mais c'est vraiment amusant de voir différents jeux apparaître dans le style Imozuru.

Il ne faut presque pas de temps pour trouver le jeu auquel vous voulez jouer, car vous pouvez garder une trace des connexions qui se concentrent sur les points communs que vous aimez le même jeu, et vous trouverez trop de jeux qui vous intéressent.

Chaque jeu a toujours des liens vers Amazon et Youtube, vous pouvez donc vérifier les notes de bouche à oreille et vérifier les vidéos de lecture en douceur. Je pense que cela vous aide à décider quel jeu semble le plus intéressant.

Une fois résumé

C'est Miso, mais je pense que nous avons créé un service Web assez sympa. S'il y a des données, il semble que diverses applications peuvent être envisagées, comme la recherche de films et de romans à la manière d'un ver.

J'entends que la demande de jeux augmente en raison de la consommation de la stagnation de la couronne. Si vous jouez à quelque chose pour la première fois depuis un moment et que vous ne savez pas lequel choisir, j'apprécierais que vous puissiez l'essayer.

J'espère que Game Concierge.AI vous aidera à trouver le prochain jeu. Si vous avez des inquiétudes, veuillez commenter quoi que ce soit, y compris vos impressions et vos critiques.

Nous avons lancé le service, mais nous continuons de collecter et d'analyser des données en parallèle. S'il y a un jeu qui n'est pas disponible sur le site, veuillez nous contacter et nous lui donnerons la priorité, et si le site a une bonne réputation, je voudrais le mettre à jour afin qu'il puisse couvrir les jeux de smartphone, donc par tous les moyens Jeu Essayez d'utiliser Concierge.AI.


Enfin, j'écrirai une petite réflexion sur la création de ce service.

Algorithme de base

Le flux de traitement général est le suivant.

--Recueillir les données vidéo de YoutubeDataAPIv3 ――Déterminez à quel jeu chaque vidéo joue

En d'autres termes, c'est un mécanisme qui «crée une expression distribuée à partir des informations historiques des jeux auxquels de nombreuses personnes ont réellement joué, et les personnes qui ont joué à un jeu recommandent d'autres jeux».

En adoptant un tel mécanisme, même une personne (I) qui n'est pas familière avec la situation dans la zone de jeu récente peut rechercher un jeu qui semble être intéressant parmi les jeux préférés auxquels il a joué dans le passé.

Désormais, pour créer une représentation distribuée, il est nécessaire de collecter des informations historiques sur les jeux auxquels de nombreuses personnes ont réellement joué. Mais, bien sûr, je n'ai pas de telles données. Donc, cette fois, j'ai utilisé YoutubeDataAPIv3 pour collecter beaucoup d'historique de jeu. Les jeux joués dans les vidéos de la chaîne sont classés par ordre chronologique et utilisés comme données d'entrée fastText pour créer une représentation distribuée.

Référence) Image de données: 1 ligne correspond à 1 canal


Jeu A Jeu A Jeu B ・ ・ ・ Jeu X
Jeu a Jeu b Jeu c ・ ・ ・ Jeu y Jeu z

Il y a quelques précautions à prendre lors de la collecte de données à l'aide de YoutubeDataAPIv3. Tout d'abord, la limite par défaut d'utilisation de l'API est de 100 demandes par jour. Il est possible d'obtenir jusqu'à 50 données vidéo avec une seule demande, mais comme il existe un certain nombre de chaînes avec moins de 50 vidéos, 5000 vidéos ne peuvent pas être collectées par jour. En outre, le nombre de vidéos pouvant être acquises à partir d'une chaîne est d'environ 500 (cela semble changer en fonction du moment, mais les détails sont un mystère), et toutes les vidéos ne peuvent pas être acquises à partir de chaînes qui incluent plus de vidéos. De plus, indépendamment de cela, il y a eu des cas où toutes les vidéos de la chaîne n'ont pas pu être acquises (par exemple, même s'il y a 10 vidéos, seules 5 peuvent être acquises). Dans mon cas, j'ai décidé qu'il n'y avait pas de problème même si l'historique de jeu n'était pas strict à cet effet, alors j'ai procédé comme il était.

Après avoir collecté une grande quantité de données vidéo à partir de YoutubeDataAPIv3, il est nécessaire de déterminer la vidéo de jeu de chaque vidéo. Je pense qu'il y a plusieurs façons de le faire, mais cette fois j'ai décidé de la considérer comme une vidéo de jeu du jeu si le titre ou la description de la vidéo contient le titre du jeu.

De cette façon, j'ai créé un historique de lecture pour chaque chaîne à partir de vidéos Youtube et l'ai transmis à fastText pour créer une expression distribuée. Game Concierge. En utilisant le titre du jeu entré depuis l'écran AI comme clé, les 15 meilleurs jeux avec des distances proches sur l'expression distribuée sont renvoyés.


Dans cet article, je voudrais terminer ici. Des détails tels que l'acquisition de données, l'analyse des données et la construction de l'application seront résumés dans un article distinct à une date ultérieure.

En particulier, nous hébergeons gratuitement Heroku cette fois-ci, mais comme nous sommes très particuliers sur la vitesse de réponse, nous prévoyons d'approfondir l'optimisation de la réponse du site. S'il vous plaît restez à l'écoute.

Recommended Posts

Lorsque j'ai fait une recherche de jeu recommandée avec YoutubeDataAPIv3 et fastText, j'ai trouvé un jeu qui semble intéressant que je ne connaissais pas auparavant
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Lors de l'écriture dans un fichier csv avec python, une histoire que j'ai fait une légère erreur et n'a pas respecté la date de livraison
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
J'ai fait un shuffle qui peut être réinitialisé (inversé) avec Python
J'ai créé un système qui décide automatiquement de s'exécuter demain avec Python et l'ajoute à Google Agenda.
J'ai fait un jeu de vie avec Numpy
J'ai fait un jeu rogue-like avec Python
Je veux faire un jeu avec Python
J'ai fait un jeu de cueillette avec Python
J'ai créé un programme pour convertir des images en art ASCII avec Python et OpenCV
Création d'une application Web qui mappe les informations sur les événements informatiques avec Vue et Flask
Je n'aime pas être frustré par la sortie de Pokemon Go, j'ai donc créé un script pour détecter la sortie et le tweeter
J'ai créé un outil pour générer automatiquement un diagramme de transition d'état pouvant être utilisé à la fois pour le développement Web et le développement d'applications