Ce robot de ligne a été produit trois mois après le début de la programmation de la présentation du produit de l'école. Si quelqu'un se demande quoi faire après avoir commencé à apprendre, j'espère que ce sera utile. De plus, comme c'est le premier produit que j'ai fabriqué, il y a quelques parties où le code est approximatif. Et si c'était comme ça? S'il y a une partie, je vous serais reconnaissant si vous pouviez me le faire savoir dans les commentaires.
J'étais toujours insatisfaite de grossir et d'être trop difficile à perdre du poids. ** Un régime ne réussira que si vous faites de l'exercice idéalement et continuez à consommer les calories calculées de chaque repas pendant 3 mois, au moins 1 mois. ** Cependant, pour y parvenir, vous devez éviter les tentations comme Mara. Désir de repos insoutenable à la fin du travail. Ramen et envies de boire qui peuvent être dites chroniques. Une sensation de répulsion à l'exercice en raison du manque d'exercice. La bataille des gens modernes est toujours difficile. Donc ** Si vous mangez et grossissez, vous pouvez perdre du poids simplement en mangeant! ** Ce robot de ligne a été créé avec un service aussi simple à l'esprit.
Au fait, savez-vous combien de kilogrammes vous devez brûler pour perdre un kilogramme? ** En fait, on dit que c'est 7 000 kilokcal. ** ** Dans ce bot de ligne, le métabolisme de base est calculé en fonction de la taille, du poids, de l'âge et du sexe saisis, l'apport cible en kcal inférieur de 1000 kcal à celui-ci est calculé et un menu est créé au hasard à partir des produits LAWSON et Seven Eleven, et sur la ligne. Il l'enverra. ** En d'autres termes, vous pouvez économiser 7000 kcal par semaine et perdre 1 kg simplement en achetant et en mangeant les éléments de menu que vous avez reçus en ligne. Une alimentation mensuelle de 4 kg est une réussite! !! Tout ce que vous faites est de manger comme on vous le dit! !! !! ** **
Les personnes qui veulent perdre du poids sans faire d'exercice (en particulier les femmes qui ne sont pas douées pour faire de l'exercice) Les personnes qui souhaitent conserver leur morphologie actuelle (recommandé la veille et après une fête ou une soirée buvette!) Les personnes qui vivent seules et qui ont du mal à penser à quoi manger tous les jours
Si vous souhaitez essayer ce robot de ligne, veuillez ajouter un ami sur LINE parmi les suivants.
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/578416/0b681596-8685-e688-bf75-4ff3cdc4ac03.jpeg "width=70%>
Seuls le code de scraping et le code principal sont répertoriés. Si vous voulez voir le texte complet, veuillez visiter mon hub git. git hub
Puisqu'il est long d'y mettre Lawson, seul Seven est répertorié.
mk-data.py
import requests
from bs4 import BeautifulSoup as bs
import pickle
Grattage avec BeautifulSoup et enregistrement dans un fichier à l'aide de pickle.
mk-data.py
#Sept fonctions de grattage
def seven_scraping(url):
header = {"User-Agent" : "Mozilla/5.0"}
s = bs(requests.get(url, headers=header).content, 'html.parser')
#Nom
s_names = []
for i in s.find_all('div', class_='itemName'):
s_names.append(i.text)
#image
s_images = []
for i in s.find_all('div', class_='image'):
j = i.a.get("href")
s_images.append("https://www.sej.co.jp"+j)
#calorie
s_kcals = []
for i in s.find_all('div', class_='summary'):
j = i.find('li', class_ ='n1')
j = j.text
j = j.strip("* Les calories peuvent varier selon la région.")
j = j.split("kcal")[0]
j = int(j)
s_kcals.append(j)
return list(zip(s_kcals, s_names, s_images))
Créez des données récupérées sous forme de liste de noms, d'images et de calories. Une fonction qui les combine finalement en une seule liste et la renvoie.
mk-data.py
def main():
seven_url ="https://www.sej.co.jp/i/products/anshin/calorie/"
seven_list = seven_scraping(seven_url)
f = open('seven_list.txt', 'wb')
list_row02 = seven_list
pickle.dump(list_row02, f)
if __name__ == '__main__':
main()
Exécuter la fonction et enregistrer dans un fichier à l'aide de pickle
main.py
from flask import Flask, request, abort
import os
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
import re
import pickle
import random
import sqlite3
main.py
app = Flask(__name__)
LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
LINE_CHANNEL_SECRET = os.environ["LINE_CHANNEL_SECRET"]
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)
f = open("./lawson_list.txt","rb")
list_row = pickle.load(f)
f02 = open("./seven_list.txt","rb")
list_row02 = pickle.load(f02)
Appelez les données produit enregistrées précédemment.
main.py
#Fonction pour calculer le métabolisme de base et renvoyer la valeur cible
def base_energy(tall, weight, age, sex):
if sex == 1:
result = 13.397 * weight + 4.799 * tall - 5.677 * age + 88.362
return result
else:
result = 9.247 * weight + 3.098 * tall - 4.33 * age + 447.593
result = (result * 1.75) -1000
return round(result)
Le taux métabolique basal est calculé à l'aide de l'équation de Harris-Benedict (version améliorée). Mâle: 13,397 x poids kg + 4,799 x hauteur cm-5,677 x âge +88,362 Femelle: 9.247 x poids kg + 3.098 x hauteur cm-4.33 x âge +447.593 Référence: "https://keisan.casio.jp/exec/system/1161228736"
main.py
#Calculer les calories matin et jour / nuit
def create_before(aim_kcal):
return int(aim_kcal * 0.2)
def create_after(aim_kcal):
return int(aim_kcal * 0.4)
#Fonction pour sélectionner un menu au hasard
def make_menu(aim_num, conv_list):
menu = []
x = 0
#Bouclez jusqu'à ce que la calorie cible soit de 100 kcal
for i in range(150):
i = random.choice(conv_list)
if aim_num -100 <= x <= aim_num + 100:
return menu
break
if i[0] + x <= aim_num + 100:
x += i[0]
menu.append(i)
else:
continue
Réglez le kcal cible quotidien à un rapport de 2: 4: 4 matin: jour: nuit. La fonction de création de menu est un jeu de puissance qui continue d'appeler de la liste de produits au hasard jusqu'à ce qu'elle s'approche de la valeur cible. ↓ Un peu omis
main.py
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
word = event.message.text
if word in ["Lawson"]:
#Appeler les données métaboliques basales matin, jour et nuit
profile = line_bot_api.get_profile(event.source.user_id)
user_id = profile.user_id
conn = sqlite3.connect('database.sqlite3')
c = conn.cursor()
c.execute('SELECT * FROM user WHERE id=?', (user_id,))
list1 = c.fetchone()
before_noon = list1[1]
after_noon = list1[2]
conn.commit()
conn.close()
today_morning = make_menu(before_noon, list_row)
today_lunch = make_menu(after_noon, list_row)
today_dinner= make_menu(after_noon, list_row)
today_menu = []
for i in today_morning:
today_menu .append( "\n Petit déjeuner" + str(i))
for i in today_lunch:
today_menu.append("\n Déjeuner" + str(i))
for i in today_dinner:
today_menu.append("\n dîner" + str(i))
reply = ','.join(today_menu)
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=reply))
Lorsque vous recevez une demande de menu, récupérez user_id et appelez la calorie cible de l'utilisateur. Envoyez le numéro et le menu créés à partir de la liste de produits à l'utilisateur.
main.py
elif word in ["Réglage"]:
setup_text = """Veuillez saisir le format suivant\
Enregistrement. la taille-poids-âge-Sexe (1 homme ou 2 femmes)
* Veuillez utiliser tous les nombres demi-largeur
* Exemple: Inscription. 168-68-24-1
"""
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=setup_text))
elif 0 <= word.find('Enregistrement.') :
#Divisez les données reçues par taille, poids, âge et sexe
#Basez-le_Passer à l'énergie
personal_data = event.message.text
personal_data = personal_data.replace("Enregistrement.", "")
personal_data = personal_data.replace("-", ",")
personal_data = personal_data.split(',')
tall = int(personal_data[0])
weight = int(personal_data[1])
age = int(personal_data[2])
sex = int(personal_data[3])
aim_kcal = base_energy(tall, weight, age, sex)
#Calculez les calories pour chaque repas
#Écrire dans la base de données
profile = line_bot_api.get_profile(event.source.user_id)
prof_dict = {}
prof_dict["id"] = profile.user_id
prof_dict["before_noon"] = create_before(aim_kcal)
prof_dict["after_noon"] = create_after(aim_kcal)
conn = sqlite3.connect('database.sqlite3')
c = conn.cursor()
c.execute('insert into user(id, before_noon, after_noon) values(:id, :before_noon, :after_noon);', prof_dict)
conn.commit()
conn.close()
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="Le réglage est terminé"))
else:
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text="Entrez Lawson ou Seven ou Paramètres"))
if __name__ == "__main__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
app.run()
Traitez les données envoyées par l'utilisateur selon le format, définissez la valeur cible et divisez-la en matin, jour et nuit.
$ heroku login
heroku create <Nom de l'application>
Enregistrez l'application avec heroku
$ git init
$ git add .
$ git commit -m "new commit"
$ git push heroku master
Poussez et terminez.
Je l'ai utilisé moi-même pendant une semaine après avoir été terminé. Comme une impression
Avantages
Inconvénients
** Étant donné que le coût d'achat quotidien est de 1 500 yens ou plus, les ventes devraient augmenter d'environ 45 000 yens ou plus par mois avec un utilisateur actif. Si vous avez 100 personnes, vous pouvez vous attendre à plus de 4,5 millions de yens. ** ** De plus, l'effet publicitaire est plus rapide à conduire directement au comportement d'achat que les autres médias. Par exemple, lorsque nous apprenons l'existence d'un nouveau produit sur TV cm, nous avons un certain délai avant de l'acheter. Il est rare que vous voyiez réellement une publicité et que vous l'achetiez immédiatement, et l'effet publicitaire agit sur votre subconscient, ce qui conduit à un comportement d'achat au bout d'un certain temps. Dans ce cas, étant donné que cela a affecté sans le savoir le comportement des clients, le seul moyen de mesurer l'efficacité de la publicité est de déduire de l'augmentation ou de la diminution des ventes. D'un autre côté, avec ce service, on attend fortement des utilisateurs qu'ils effectuent un achat le jour où le menu est reçu, et il est facile pour les développeurs Line de déterminer combien d'utilisateurs actifs sont actuellement. De plus, le coût lui-même est le plus élevé, environ 30 000 yens par mois, ce qui est moins cher que les autres médias. ** En d'autres termes, il a une efficacité publicitaire élevée, un effet immédiat, un pouvoir de saisie et peut être mis en œuvre à faible coût. ** **
Si vous répondez "si vous voulez manger à nouveau", vous pouvez vous attendre à une augmentation du taux de répétition des utilisateurs et à l'acquisition d'évaluations de produits clients si vous ajoutez une fonction pour émettre des bons de réduction pour le lendemain uniquement. Du point de vue de l'utilisateur, on peut obtenir non seulement le mérite de "l'éclaircissage", mais aussi le mérite "d'acheter à bas prix" le lendemain, et le point faible de ce service, "non adapté à l'épargne", peut être couvert dans une certaine mesure. Cela aide également à poursuivre le régime. Du point de vue des entreprises, si le taux de maintien augmente, les ventes augmenteront, et comme les menus sont aléatoires, il y a un grand mérite que des données sur une large gamme de produits puissent être obtenues.
Les cartes de points pratiques collectent uniquement des données sur le sexe et l'âge des personnes qui ont acheté le produit. En d'autres termes, ce ne sont que les données jusqu'à l'achat. Cependant, l'entreprise ne se termine pas au moment de l'achat. Nous pensons que "ce produit répondra à nos besoins", l'achetons, l'utilisons, faisons une impression et décidons de le répéter. Il est important de collecter des données post-achat afin de créer un mécanisme d'acquisition continue de clients. ** Données de couche d'achat et données d'évaluation de produit pour chaque groupe de clients. ** Le mérite de combiner deux données est très important.
Divisez les produits en quatre groupes à partir des deux données ci-dessus. ① Les ventes sont élevées, </ font> l'évaluation est également high </ font> produits ② Les ventes sont élevées, </ font> l'évaluation est low </ font> produits ③ Les ventes sont faibles, </ font> l'évaluation est high </ font> produits ④ Les ventes sont faibles, </ font> l'évaluation est également low </ font> produits
La division dans les groupes ci-dessus sera grandement bénéfique en termes de stratégie de développement de produits et de gestion de la distribution. Tout d'abord, en termes de gestion de la distribution, on peut s'attendre à des ventes élevées pour le produit (1) à l'avenir, mais pour (4), il est peu probable que les clients l'achètent, et même s'il est acheté, on ne peut pas s'attendre à des répétitions. ** En arrêtant la production de ④ tôt et en augmentant la production de ①, il est prévu de réduire les déchets dans les magasins et d'améliorer le résultat opérationnel. ** ** Ensuite, en ce qui concerne l'aspect du développement de produit, un grand avantage peut être obtenu en analysant (2) et (3). ② est nuisible. Parce que c'est un produit qui déçoit les attentes de nombreux clients. Beaucoup de gens trouvent intéressant d'acheter, mais ils sont déçus lorsqu'ils rentrent chez eux et mangent. Cependant, il ne fait aucun doute que ** ② est un produit très attractif ** jusqu'à ce que vous l'achetiez, et il y a quelque chose que les clients peuvent obtenir. ** En d'autres termes, le marketing du produit lui-même est susceptible de réussir. ** ③ ne se vend pas maintenant, mais il peut commencer à se vendre avec des rides au fil du temps, ou il peut se vendre en modifiant le design ou le nom. Si l'analyse de (2) est utilisée, il est possible que les ventes augmentent considérablement.
Les dépanneurs sont les entreprises qui ont le potentiel de collecter des données sur les achats et les préférences les plus japonais. De plus, étant donné que nous gérons non seulement nos propres produits, mais également les produits d'autres entreprises (grandes entreprises de confiserie, entreprises alimentaires, etc.), nous pourrons peut-être faire plus de profits en vendant des données volumineuses et leurs analyses à ces entreprises. Je pense aussi qu'il serait intéressant d'essayer de produire des produits locaux à partir d'entreprises locales en utilisant le savoir-faire cultivé par l'analyse des données.
Recommended Posts