[PYTHON] Créez un chat bot et entraînez-vous à être populaire.

introduction

Ces dernières années, la plupart des communications se déplacent vers le chat tel que LINE. Dans la société moderne où il est nécessaire d'écrire des phrases attrayantes pour être populaire, le lieu de pratique est limité en raison de l'environnement environnant, et de nombreuses personnes viendront soudainement à la performance réelle. ~~ Je le suis. ~~ Pour faire face aux défis de l'humanité vivant à l'ère actuelle, nous préparons un chat bot qui produit le degré d'intérêt pour nous-mêmes, nous nous entraînons à lui envoyer constamment des messages et nous adoptons une approche pour améliorer nos compétences en matière de messages.

La figure ci-dessous fait partie de la formation que je fais. 異性を映画に誘う修行の一部である

Le degré d'intérêt de l'autre partie est produit en trois étapes (positif, non intéressé, inconnu). Le message de l'autre partie lui-même n'a aucun sens. J'ai préparé ce qu'on m'a dit.

Vous gagnez si vous rendez votre adversaire positif. Il semble que la formation réelle ne viendra pas éternellement, mais dans cet article, je vais vous expliquer comment créer un chatbot et viser à améliorer les compétences de message de l'humanité.

line_bot.png [Mis à jour le 23 février 2020] J'ai créé un bot LINE.

créer

Même si j'essaye de le créer, le sexe opposé n'est pas familier en premier lieu. En d'autres termes, le degré d'intérêt ne peut être mesuré. Pendant ce temps, l'auteur a découvert des mariés / célibataires dans l'estimation des attributs utilisateur de la référence de l'API COTOHA, qui est une plateforme de traitement du langage naturel. Pour ceux qui ne sont pas populaires, les personnes mariées ont accompli des miracles qui ne peuvent normalement pas être accomplis, c'est-à-dire Dieu. J'ai pensé. Selon l'estimation par machine learning, on estime que la phrase est mariée, c'est-à-dire que c'est un message qui suscite l'intérêt. API COTOHA de la plate-forme d'API de traitement du langage naturel / de la voix

À l'aide de l'API COTOHA comme celle-ci, créez un robot qui génère (positif, non intéressé, inconnu) votre message.

Jetez à l'API COTOHA

Tout d'abord, inscrivez-vous auprès des développeurs à partir du lien API COTOHA ci-dessus. Le niveau gratuit est de 1 000 appels / jour chacun. (Au 13 février 2020) Avec tout cela, vous pouvez probablement pratiquer sans repos.

L'exigence minimale est

  1. Obtenez un jeton d'accès
  2. Lancez la chaîne saisie vers l'estimation des attributs utilisateur

Cette fois, comme espace de personnalisation, si le résultat de l'estimation est "célibataire" ou si le résultat n'est pas retourné, un message que vous avez vu est renvoyé au hasard. De plus, lorsque «marié» est rencontré, la chaîne de caractères saisie est renvoyée à «estimation du type de phrase», et un message relativement favorable est renvoyé selon le type d'acte de parole. Cela donnera l'impression que l'histoire est connectée et l'entraînement douloureux sera un peu plus léger.

Code à lancer vers l'API COTOHA

python


import random
import requests
import json

BASE_URL = "https://api.ce-cotoha.com/api/dev/nlp/"
CLIENT_ID = "******"
CLIENT_SECRET = "******"

def auth():
    token_url = "https://api.ce-cotoha.com/v1/oauth/accesstokens"
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8"
    }

    data = {
        "grantType": "client_credentials",
        "clientId": CLIENT_ID,
        "clientSecret": CLIENT_SECRET
    }
    r = requests.post(token_url,
                      headers=headers,
                      data=json.dumps(data))
    res = r.json()

    return res["access_token"]  # ["expires_in"]:temps restant

def sequence_anlysis(sentence):
    headers = {
        "Content-Type": "application/json",
        "charset": "UTF-8",
        "Authorization": "Bearer {}".format(access_token)
    }
    data = {
        "sentence": sentence,
        "type": "default"
    }
    r = requests.post(BASE_URL + "v1/sentence_type",
                      headers=headers,
                      data=json.dumps(data))
    res_type = r.json()
    if not res_type["status"] == 0:
        print('type API Error status', res_type["status"])
        exit(1)

    data = {
        "document": sentence,
        "type": "kuzure",  #Mode de réduction tel que les tweets
        "do_segment": False
    }
    r = requests.post(BASE_URL + "beta/user_attribute",
                        headers=headers,
                        data=json.dumps(data))

    res_attr = r.json()
    if not res_attr["status"] == 0:
        print('attr API Error status', res_attr["status"])
        exit(1)
    
    if not "civilstatus" in res_attr["result"].keys():
        civilstatus = "inconnue"
    else:
        civilstatus = res_attr["result"]["civilstatus"]
    return res_type["result"]["modality"], res_type["result"]["dialog_act"], civilstatus

Préparez un chat bot

Utilisez Python pour préparer un espace de discussion qui s'exécute sur la console. ~~ Il était difficile de préparer LINE Bot etc., donc cette fois je l'ai implémenté avec une entrée / sortie standard.

Code à lancer vers l'API COTOHA

python


print('Terminer par quitter')
while True:
    s = input('you: ')
    if s == "":
        continue
    elif s == 'quit':
        break
        exit(0)
    else:
        #Analyser l'entrée
        modality, dialog_act, civilstatus = sequence_anlysis(s)
        #Créer une réponse
        output = make_sentence(dialog_act, civilstatus)
        if civilstatus == "marié":
            print('bot (Positif):    ', output)
        elif civilstatus == "Célibataire":
            print('bot (Pas intéressé):  ', output)
        else:
            print('bot (inconnue):      ', output)

Résumé

Un espace de formation populaire a été créé par un chat bot utilisant l'API COTOHA. J'espère sincèrement que cela aidera dans une certaine mesure les réfugiés romantiques du monde entier.

Tâches futures

Recommended Posts

Créez un chat bot et entraînez-vous à être populaire.
[Introduction à Tensorflow] Comprendre correctement Tensorflow et essayer de créer un modèle
Comment faire une traduction japonais-anglais
Comment créer un bot slack
Comment créer un robot - Avancé
Comment créer une fonction récursive
[Blender] Comment créer un plug-in Blender
5 façons de créer un chatbot Python
Comment créer un robot - Basic
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
[Langage C] Comment créer, éviter et créer un processus zombie
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
Comment diviser et enregistrer un DataFrame
[Python] Comment rendre une classe itérable
Comment créer un bot Janken qui peut être facilement déplacé (commentaire)
Fractal pour faire et jouer avec Python
Comment rendre le nom du conteneur accessible dans Docker en tant que sous-domaine
J'ai créé une API Web
Pour rendre une propriété de type dict en lecture seule
Comment créer un indicateur personnalisé Backtrader
Comment créer un plan de site Pelican
Je souhaite créer une application Web en utilisant React et Python flask
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
J'ai essayé de créer une API de reconnaissance d'image simple avec Fast API et Tensorflow
Notez que j'étais accro à la configuration de TensowFlow
Comment créer un système de dialogue dédié aux débutants
Un mémorandum pour faire WebDAV uniquement avec nginx
Souhaitez-vous créer un CV Twitter?
Comment créer un dictionnaire avec une structure hiérarchique.
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Serveur de jeu avec deux PC
Comment créer un plug-in QGIS (génération de package)
J'ai lu "Comment créer un laboratoire de piratage"
Essayez de créer un groupe de dièdre avec Python
J'ai créé un jeu ○ ✕ avec TensorFlow
Explication de base de Lark (faites un gars comme une coquille avec Python, Lark)
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
Que faire si pvcreate produit beaucoup d'AVERTISSEMENT et ne peut pas être créé
Ce serait sage si vous pouviez écrire quelque chose comme booléen et "A" ou "B" [Python] [Mais]
J'ai essayé de faire une application mémo qui peut être pomodoro, mais un enregistrement de réflexion
J'ai essayé de faire un "putain de gros convertisseur de littérature"
Essayez de créer un module Python en langage C
Spécifiez le volume sous Linux et jouez le son
Faisons un outil de veille de commande avec python
Création d'un module pour surveiller les mises à jour des fichiers et des URL
Faisons un Makefile et construisons-le (super débutant)
[Pratique] Créez une application Watson avec Python! # 2 [Fonction de traduction]
[Pratique] Créez une application Watson avec Python! # 1 [Discrimination linguistique]
Comment faire un jeu de tir avec toio (partie 1)
Essayez de créer un jeu simple avec Python 3 et iPhone
Je veux trouver un package populaire sur PyPi
Créer une fonction pour décrire les polices japonaises avec OpenCV
Comment créer un package Python à l'aide de VS Code
[Python] Je veux faire d'une liste imbriquée un taple
Les débutants en apprentissage automatique essaient de créer un arbre de décision