Python基礎知識だけしか知らない初心者でも自動応答botが完全自作できるのか!?
苦労しつつも面白いものができました!
皆さん、こんにちは。アラサーサラリーマンです。
4日目から期間が空いてしまいましたが、pythonを一から学んだので、
python基礎レベルまで学んだ知識をもとに、めちゃくちゃ簡単な自動応答botを作ってみたいと思います!
1. ここまで学んだPython知識
今回作成したプログラムに使用したものをPython初心者なりにまとめました。
全部書くと情報量が多くなりすぎるので、一部にとどめておきます。
残りはまた別の日に!
⇒ プログラミング楽しいです
と表示されます。これは理解しやすいですね。文字通り括弧内をプリントしてくれます。
print("イケメンですね~")
else :
print("何とも言えませんね")
⇒ イケメンですね~
と表示されます。これは、「もし私がかっこいいならば、イケメンですねと言え」という命令ですので、ここは当然イケメンですねと言われます。
もしかっこよくなかったら、「何とも言えませんね」と言うのですが、ここはそうはなりませんでした。
print("私かっこいい?")
if me == "かっこいい" :
print("イケメンですね~")
break
else :
print("何とも言えませんね")
⇒ 『私』がかっこよくて「イケメンですね」と言われるまで、「私かっこいい?」「何とも言えませんね」をループすることになります。
whileループの中に break と書かれた箇所がありますが、break が実行された瞬間無限ループから抜け出せるのです。break に達するためには、if 文の me がかっこよくないといけないわけですね。
脱出ゲームみたいで面白いです。
if me == "かっこよくない" :
new_me = "かっこいい"
else :
new_me = me
return new_me
⇒ self_respect関数(自己肯定感関数)を定義(def)しています。かっこよくなければ、新しい自分(new_me)をかっこよくしてから返している(return)のです。
自分の中で「こうすればかっこよくなる」って思う仕草とかありますかね。それをルール化して名前つけているイメージです。
辞書型とかformat()とか面白いので解説したかったのですが、次回にします!
Pythonは本当に覚えやすくて初心者に優しい言語だな~と思いました!
2. 簡単な自動応答botって?
今回私が作る自動応答botはPython基礎知識を使ってできるものなので、
大層なものではありません。
(さすがに初心者が5日目にビッグデータを活用したAIなんてできないでしょ~)
作りたいのは下記のイメージです!
最初の挨拶はちゃんとしてくれるけど、二言目には適当なことしか言わなくなるちょっとシャイな感じのbotです!
事前にパターンを用意しておくっていうのが、AIには重要なことなんだな~とプログラミングをしていて実感しました。
(事前に学習させておくっていうイメージは、このパターンを用意しておくってことに似ていそうですよね!)
3. コードを書いてみた!
実際に自分が一からコードを書いてみました!
条件分岐( if文 )を多用していて、まだ全然AIになっていないですけど、Python基礎知識だけでここまで書けるようになったのは感動です!
基本的には、『1.ここまで学んだPython基礎知識』で解説した知識を使ってるので、ぜひ理解してみてください!
4. コードを実行した結果は???
自分が作ったコードを実行すると、下記のような会話ができるようになります。
「ペト:○○」が私が入力した言葉で、「BOT:○○」が自動応答文です。
ペト:こんにちは
BOT:こんにちは
ペト:午前の会議で上司に怒られちゃったよ
BOT:そんなことよりお腹減りました。何か食べたいものありますか?
ペト:え?僕の話無視?もしかして嫌われてる?
BOT:難しい質問ですね。検討することを検討させてください
『2.簡単な自動応答botって?』で定義した作りたいイメージ通りのものになっているのですが、
まだこれくらいしか作れなかったというのが本音です。
話がきれいに成立する自動応答botのレベルの高さを実感しました。
多くの会話パターンを学習させる必要があると感じましたし、
ワードから何を言いたいのかを予測させる技術が必要だなとも感じました。
もう少し技術が身に付いたら「入力ワードから連想語を出してくれるbot」を作ってみたいと思います。
これができるようになったら、私が本当にやりたい自動文章生成も、
連想語の技術を応用して作れる気がしているのです。
引き続き頑張ります!