[PYTHON] Faire le contrôle d'un homme sandwich par l'apprentissage automatique ver4

Le 4ème à prendre le contrôle de Sandwichman par deep learning! !! !! !! !! !! !! !! !! !! !! !!

Je suis en charge de 14 traitements du langage naturel Calendrier de l'Avent 2019 (je suis désolé d'être en retard pour une journée !!!) https://qiita.com/advent-calendar/2019/nlp

Je veux faire automatiquement un contrôle comme un homme de sandwich, et je veux le vendre à un bureau qui rit pour 4000 billions de yens. Et je veux rencontrer Sandwich Man!

Cette fois, j'ai implémenté HRED avec pytorch!

Essai passé

Ver3 >> https://qiita.com/yoyoyo_/items/e03a1a5f99762352c95f Ver2 >> https://qiita.com/yoyoyo_/items/f30c538234e62dbaa081 Ver1 >> https://qiita.com/yoyoyo_/items/105879c386be1d8b0782

HRED

Le papier original est A Hierarchical Recurrent Encoder-Decoder For Generative Context-Aware Query Suggestion https://arxiv.org/abs/1507.02221 (2015)

En 3 lignes

--HRED est une abréviation pour Hierarchical Recurrent Encoder Decoder. ―― En termes simples, il génère automatiquement des conversations tout en s'appuyant sur le flux des conversations. seq2 Une évolution de seq. ――En insérant un RNN qui mémorise les réponses de conversation passées, il se développe en une "conversation" au lieu d'une question-réponse.

modèle

seq2 Comparez seq et HRED. HRED a ajouté le RNN hiérarchique (abrégé en HRNN) à seq2seq. HRNN est un RNN pour mémoriser le flux des conversations passées, et Decoder génère une réponse qui considère les conversations passées en initialisant l'état interne de HRNN.

Si vous utilisez ceci, pouvez-vous faire un bon contrôle? Voilà cette tentative! !!

seq2seq HRED
seq2seq.png HRED.png

algorithme

L'ordre est de répéter les étapes 1 à 5. Le nombre de répétitions est appelé le nombre de sessions, et il semble qu'il a été fixé à 5 fois dans le document.

  1. Apprenez Encoder avec une phrase
  2. Entrez la sortie du codeur dans HRNN
  3. Réglez l'état interne du HRNN sur l'état initial de l'état interne du décodeur
  4. Apprendre le décodeur
  5. Réglez la sortie du décodeur sur l'entrée de l'encodeur et passez à 1.

code

Je l'ai également mis sur Deep Learning Knock!

https://github.com/yoyoyo-yo/DeepLearningMugenKnock/tree/master/Question_nlp#q-hred

Je l'ai essayé

Le premier "A: Salut, je suis Sandwich" est ce que j'ai tapé Pas un mot, mais essayer de comprendre le contexte?

A:Salut, je suis Sandwichman.
B:Quoi? ". Dix vous. Je suis désolé. .. Hmm vous. .. Dix vous. main. ?? À. main? ". ?? Hmm. main? Je suis désolé que vous. main. main. main. Teyo vous. main? Dix. Teten. main. main. Dix. main? Tente. main? .. Dix. main. Dix. main? .. Dix. main? Dix
A:C'est toi. Quoi? main. ?? Mais? C'est comme Gaden. Quoi? main. C'est bon. Quoi? Hmm. main? .. alors. Hmm. .. main? .. .. Dix. main. .. Hmm. Dix. main. Hmm. .. Dix. main? .. main. .. main. ?? alors. Quoi? C'est vrai. .. .. Ouais. .. .. Hmm. Yo de. main
B:Mais il est. "
A:.. main? ".
B: 。
A: 。
B:n'est-ce pas.
A:.. main. main. tu. main. main. main. Quoi! ". ".
B:Il n'y en a pas.
A:Ha ".
B:Ha "aussi. ".
A:"Hateta"
B:"Hahata".
A:Hamoyo ". "Deta"
B:Au revoir.
A:, ".
B: 。
A:C'est ça? ".
B:Vraiment? "
A:Hamoyo "
B: 。
A:"
B:Comment c'est?
A:C'est ça? .. .. main? ". .. main. .. ?? .. .. Je suis désolé. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
B:Mona ". .. main. .. tu. .. .. .. .. .. Hmm. .. ". .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
A:, ".
B:Ha "aussi.
A:Est même".
B: 。
A: 。
B:est".
A:Ha "
B:Ha "aussi. Quoi?
A:Hahamo. "? "
B:Ha ".
A:Ha "
B:"Hateta".
A:Est
B:Ha "
A:"Hata".
B:Hamoyo ".
A:Il est. "
B:Bonjour "
A:J'étais heureux. "
B:Hamoyotétan "
A:Hamoyo vous. Vous êtes sorti. "
B:Hayo "
A:Bonjour.
B:Naha.
A:Il est. "
B:Il est. "
A:.. Vous êtes! "
B:Ha ".
A:Qu'Est-ce que c'est?
B:". .. main. tu. .. Quoi? .. .. .. .. ". .. main. .. ?? ". .. .. .. .. .. .. .. .. .. .. N'est-ce pas? .. Je me demande. .. .. .. .. .. .. .. .. .. .. .. .. .. .. main. .. .. .. .. Il est. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
A:C'est ça? "
B:Qu'Est-ce que c'est? " ?? ". .. main. .. tu. .. Hmm. main. .. Hmm. .. ". main. .. ". Quoi?
A:Absent".
B:Ha "
A:Ha ".
B:"
A:.. C'est tout. "
B:Ha "aussi.
A:"Hateta"
B:Hamoyo. Aussi". «Tate ni».
A:Ha "
B:Hamoyo. À "
A:Qu'est-ce que c'était? ".
B:Qu'Est-ce que c'est? main"

Pour résumer en 3 lignes

Lorsque le Sandwich Man est complètement terminé, pensez-vous que tout le code jusqu'à présent sera assemblé et mis à la disposition de Git et d'autres?

Recommended Posts

Faire le contrôle d'un homme sandwich par l'apprentissage automatique ver4
4 [/] Quatre arithmétiques par apprentissage automatique
Résumé de l'apprentissage automatique par les débutants de Python
Apprentissage automatique
[Échec] Trouvez Maki Horikita par apprentissage automatique
Quatre règles de fonctionnement avec l'apprentissage automatique 6 [Commercial]
Mémo d'étude Python & Machine Learning ④: Machine Learning par rétro-propagation
Essayez de prédire la demande de puissance par l'apprentissage automatique
Prédire les prix des logements (apprentissage automatique: deuxième semestre) ver1.1
Classer les informations liées à l'apprentissage automatique par modèle de sujet
Analyse de l'utilisation de l'espace partagé par l'apprentissage automatique
Prévision du cours de l'action par machine learning Numerai Signals
[Français] scikit-learn 0.18 Introduction de l'apprentissage automatique par le didacticiel scikit-learn
Estimation raisonnable du prix de Mercari par apprentissage automatique
[Memo] Apprentissage automatique
Classification des images de guitare par apprentissage automatique, partie 2
Classification de l'apprentissage automatique
Histoire de l'analyse de données par apprentissage automatique
Exemple d'apprentissage automatique
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer du chapitre 2
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Prédiction de données chronologiques par AutoML (apprentissage automatique automatique)
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique sur le surapprentissage
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Régression logistique d'apprentissage automatique
Machine de vecteur de support d'apprentissage automatique
Machine Sommelier par Keras-
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
Apprenez en quelque sorte le machine learning
Bibliothèque d'apprentissage automatique Shogun
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
Collectez des données d'apprentissage automatique en grattant des bases de données publiques biosourcées
"Apprenez en créant! Développement en deep learning par PyTorch" sur Colaboratory.
Prédire la présence ou l'absence d'infidélité par l'apprentissage automatique
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 7 Analyse de régression
Discriminer les chansons t + pazolite par apprentissage automatique (développement du défi NNC)
Prévisions du cours des actions par apprentissage automatique Commençons Numerai