[PYTHON] J'ai essayé de vérifier la classification yin et yang des membres hololive par apprentissage automatique

Aperçu

Je voudrais d'abord montrer le résultat final. Les caractères représentatifs sont les membres sélectionnés lors de l'apprentissage du dispositif d'apprentissage, et les caractères positifs sont entourés d'un cadre rouge et les caractères négatifs sont entourés d'un cadre bleu (tous les autres membres sont vérifiés comme des données indépendantes). En fait, j'ai fait "** J'ai classé chaque membre hololive comme un caractère yin ou un caractère yang **". Pour plus de détails, veuillez vous référer aux chapitres suivants.

結果.png

La raison du démarrage de l'analyse

Êtes-vous un yin yang? Ou est-ce positif?

Quand je regardais la découpe de l'holo en direct sur youtube à l'époque de GW, j'ai trouvé quelque chose qui avait l'air intéressant. Récapitulatif de classification des membres Yin et Yang de Holo live qui commence soudainement à minuit

Cliquez ici pour la vidéo originale) [[#Holo Midnight Girls'Association] ♡ Dave Night Drink Chat Girls 'Association de GW ♡ [Kiryu Coco / Sakura Miko / Amane Kanata / Heitsuki Choco]](https://www.youtube.com/watch?v= HytCW6Yi8IM)

9a82f8e7-s.jpg

Il semble que cela ait été vérifié à l'association des filles de minuit de Hololive, et les personnages Yin et Yang des membres de Hololive ont été classés sous la forme ci-dessus. A ce moment, j'ai soudain pensé.

En conséquence, peut-il être bien reproduit à l'aide de l'apprentissage automatique?

J'ai donc essayé de vérifier la classification des caractères Yin et Yang des membres Holo Live **.

Des données d'utilisation

** Les données utilisées sont les données textuelles du Twitter des membres **. Les données textuelles du tweet sont obtenues à l'aide de Tweepy. Sur la base des résultats de classification réellement effectués dans la distribution, nous avons sélectionné le représentant du caractère Yin et le représentant du caractère Yang sous la forme suivante et collecté des données de tweet. ** Cette fois, nous procéderons sur la prémisse des résultats présentés dans les résultats de classification Yin et Yang dans la livraison **.

Nous avons collecté 8000 tweets pour chaque membre dans la dernière commande (s'il est inférieur à cela, nous obtiendrons le montant maximum). De plus, parmi les données du tweet, les données relatives à RT et à la réponse ne sont pas acquises. Ainsi, ** seuls les tweets des personnes elles-mêmes ** sont acquis.

De plus, la structure de répertoire est construite et exécutée sur Google Colab sous la forme suivante.

図1.png

Méthode analytique

Prétraitement

Êtes-vous vraiment une idole ou une femme ... ** Les données du tweet contenaient beaucoup de lettres de visage, de pictogrammes et d'URL ** (crié quand j'ai vu les données). Donc, après avoir éliminé autant que possible dans le prétraitement, je fais le partage avec mecab (malheureusement, il reste de la sueur). De plus, ** les données d'entraînement et les données de test ont été divisées au hasard dans un rapport de 8: 2 **.

Méthode d'analyse spécifiée

La méthode d'analyse était LSTM. Il est implémenté dans PyTorch et prend en charge les GPU et les lots parallèles.

Le nombre total de vocabulaire de mots divisé par mecab était de 17462. Si le texte contient des mots qui ne sont pas inclus dans ce vocabulaire pour les données de validation, une erreur se produira.

Résultats de la formation

À la suite d'un entraînement avec 100 époques, la précision de la prédiction était de 76% dans les données de test. J'ai l'impression que c'est assez cher pour la quantité de données sur Twitter.

Le résultat de la perte par époque est le suivant.

スクリーンショット 2020-05-12 17.02.13.png

Valider avec des données indépendantes

Les autres membres sont-ils des personnages yin? Caractère positif?

スクリーンショット 2020-05-04 21.33.16.png

Auparavant, nous avons clairement défini des représentants de caractères positifs et négatifs sur la distribution et dispensé une formation. Ensuite, les données de tweet des membres autres que les membres définis comme représentants sont classées comme données indépendantes sous forme de caractères yin ou de caractères positifs. J'ai vérifié ce qui se passerait si j'obtenais 8000 données de tweet de chaque membre par la même méthode et les analysais.

C'est une norme de classification du caractère Yin réel et du caractère Yin, mais ** Un dispositif d'apprentissage qui sépare les données de tweet de chaque membre sous forme de phrase pour chaque saut de ligne et indique si chaque phrase est une remarque de type Yin ou une remarque de type Yin Classez en utilisant **. Ensuite, toutes les données de texte de chaque membre sont classées, et ce qui suit est calculé comme un index pour classer dans quelle mesure la remarque est un caractère positif ou un caractère négatif.

Indice de classification = (nombre de remarques de caractères positifs) / (nombre de remarques de caractères positifs + nombre de remarques de caractères négatifs)

Cependant, pour les phrases pour lesquelles le résultat de la classification n'a pas été retourné par l'apprenant, c'est-à-dire pour les mots qui n'ont pas été appris pendant la formation, le résultat n'est retourné pour aucun membre (pour le moment, pour plus de la moitié des données de la phrase). Le résultat de la classification est renvoyé)

Résultat final

À la suite d'une vérification avec des données indépendantes, c'est comme suit.

結果.png

Voici les résultats réels tels que les indicateurs d'évaluation pour chaque membre. La sortie d'un caractère positif ou négatif est jugée selon si la valeur d'index est supérieure ou inférieure à 0,5.

#------------------------------
#Exemple de résultat de sortie
#hogehoge est ○
# (Valeur de l'indice de classification) (Le nombre total de phrases pour lesquelles le résultat de la classification a été renvoyé par l'apprenant) (Nombre de remarques positives sur les caractères) (Nombre total de données de phrase extraites pour chaque saut de ligne)
#------------------------------

Toki no Sora est un personnage positif
0.7045305318450427 3046 2146 4870
----------------------------
Hoshigai Suisei est une ombre
0.4129251700680272 2940 1214 4634
----------------------------
Yozora Mel est positive
0.5901213171577123 1154 681 1844
----------------------------
Fubuki Shirakami est un personnage positif
0.5638173302107728 1708 963 3570
----------------------------
Le festival des couleurs d'été est positif
0.5016304347826087 1840 923 2562
----------------------------
Himemori Luna est Yin et Yang
0.36826524570751923 1689 622 2306
----------------------------
Silver Noel est Yin et Yang
0.42934293429342935 3333 1431 4976
----------------------------
Akirose est un yin yang
0.470281124497992 2490 1171 4158
----------------------------
AZK est positif
0.862909090909091 2750 2373 2821
----------------------------
La poussée de Shiranui est positive
0.5693251533742332 1630 928 2525
----------------------------
Roboko est un personnage positif
0.5026868588177821 2047 1029 3153
----------------------------
Nekomata Okayu est un yin yang
0.41079199303742386 2298 944 3219
----------------------------
Kiryu Coco est un personnage positif
0.5164619164619164 2035 1051 2676
----------------------------
Towa est une ombre
0.41897720271102895 1623 680 2307
----------------------------
Akai est également positif
0.542777970211292 2887 1567 4144
----------------------------
Shisaki Zion est un yin yang
0.3823224468636599 3858 1475 4662
----------------------------
Hyakuki Ayame est un personnage positif
0.6027054108216433 1996 1203 2961
----------------------------
Treasure bell marine est un yin yang
0.40594059405940597 1515 615 2230
----------------------------
Junba Rushia est un yin yang
0.4146341463414634 861 357 1421
----------------------------

Cette fois, nous avons classé les caractères Yin et Yang en utilisant les données de tweet des membres Holo Live. Je pense qu'environ la moitié d'entre eux ont une forme similaire au résultat de la distribution, mais 7 ou 8 personnes ont été classées comme des personnages différents. Les causes possibles et les spéculations sont les suivantes. ・ ** Caractère Yin Il peut être influencé par le taux de collaboration et l'amitié plutôt que par le caractère positif ** (par exemple, membre de 3e génération. Personnellement, je pense que le capitaine Marin est un personnage positif) ・ ** La quantité de tweets est encore plus petite pour les nouveaux membres ** (en particulier, le nombre total de tweets pour les membres de 4e génération n'est que de 2000-3000, y compris RT, donc la quantité de données a un effet plus important que les autres membres) ・ ** Bien qu'il soit influencé par des caractères positifs et négatifs, il y a une forte possibilité qu'il y ait d'autres variables interdépendantes ** (élément geek, genre de jeu distribué, temps d'activité, etc.) ・ ** Le taux de remarque du caractère yin du représentant du caractère yin est élevé en premier lieu ...? ** (Sweat sans commentaire)

En outre, en tant qu'élément à effectuer pour la vérification des effets futurs, ・ ** Par exemple, introduisez de nouvelles étiquettes telles que "Geek / Non-Geek" ** ・ ** Obtenez les données de tweet de l'auditeur à partir des balises de hachage ainsi que de Twitter, et intégrez les discussions de l'auditeur sur youtube comme données d'entraînement ** ・ ** Je réessayerai après que le nombre de tweets des membres aura augmenté un peu plus ** ・ Effectuer correctement l'évaluation des performances (paresseux) Etc. ont été considérés.

Résumé

Cette fois, nous avons vérifié le résultat de la classification sur la base des données de tweet du membre, en se référant aux résultats de classification yin et yang du membre que les membres hololive ont effectivement essayés lors de la distribution.

Dans l'analyse matérielle précédente, nous avons visualisé le réseau des acteurs de la voix, mais nous aimerions continuer à fournir diverses analyses matérielles, alors merci.

Cliquez ici pour l'analyse des matériaux précédente: Analyse du réseau des acteurs de la voix (à l'aide de word2vec et networkx) (1/2) Analyse du réseau des acteurs de la voix (à l'aide de word2vec et networkx) (2/2)

Recommended Posts

J'ai essayé de vérifier la classification yin et yang des membres hololive par apprentissage automatique
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé de prédire la présence ou l'absence de neige par apprentissage automatique.
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
J'ai essayé de prédire l'évolution de la quantité de neige pendant 2 ans par apprentissage automatique
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
[Keras] J'ai essayé de résoudre le problème de classification des zones de type beignet par apprentissage automatique [Étude]
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
J'ai essayé de comparer la précision des modèles d'apprentissage automatique en utilisant kaggle comme thème.
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Introduction ~
[API Qiita] [Statistiques • Apprentissage automatique] J'ai essayé de résumer et d'analyser les articles publiés jusqu'à présent.
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 1
J'ai essayé de vérifier l'identification du locuteur par l'API de reconnaissance du locuteur d'Azure Cognitive Services avec Python. # 2
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Implémentation ~
J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé d'appeler l'API de prédiction du modèle d'apprentissage automatique de WordPress
J'ai essayé de trouver l'itinéraire optimal du pays des rêves par recuit (quantique)
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé de visualiser le modèle avec la bibliothèque d'apprentissage automatique low-code "PyCaret"
[Linux] J'ai essayé de vérifier la méthode de confirmation sécurisée du FQDN (CentOS7)
J'ai essayé de classer Oba Hanana et Otani Emiri par apprentissage profond
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Battle Edition ~
Classification des images de guitare par apprentissage automatique Partie 1
Classification des images de guitare par apprentissage automatique, partie 2
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
J'ai essayé d'organiser les index d'évaluation utilisés en machine learning (modèle de régression)
J'ai essayé de récupérer les données de l'ordinateur portable en le démarrant sur Ubuntu
J'ai essayé de passer le test G et la qualification E en m'entraînant à partir de 50
J'ai essayé de classer Hanana Oba et Emiri Otani par apprentissage profond (partie 2)
J'ai essayé de comparer la précision de la classification des phrases BERT japonaises et japonaises Distil BERT avec PyTorch et introduction de la technique d'amélioration de la précision BERT
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (première moitié)
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé la méthode la plus simple de classification de documents multi-étiquettes
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
J'ai essayé "Lobe" qui peut facilement entraîner le modèle d'apprentissage automatique publié par Microsoft.
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
J'ai essayé de trouver l'entropie de l'image avec python
[Courses de chevaux] J'ai essayé de quantifier la force du cheval de course
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé d'implémenter la détection d'anomalies par apprentissage de structure clairsemée
[Bouclier d'épée Pokémon] J'ai essayé de visualiser la base de jugement de l'apprentissage en profondeur en utilisant la classification des trois familles comme exemple
J'ai essayé de classer le nombre de décès par habitant de COVID-19 (nouveau virus corona) par pays
J'ai essayé de bien le comprendre en implémentant l'algorithme Adaboost en machine learning (+ j'ai approfondi ma compréhension du calcul de tableaux)