こちらのブログはチャットボットAIを開発してみたのメモみたいなものです。 一段つつやっていくのボットの成長と変化が見えるようなブログになると思います。参考できるものは少ないと思いますが、癒されるし、何か新しいアイデアが発見するかもしれないです。
さて、今回紹介したい、私の可愛いボットちゃん
PIKABO
ピカチ〇ウと友達になるチャットAIです。
ピカチ〇ウと言う人気な物事がでましたけど、ただの趣味です。もし皆さんの場合は、自分の好きなキャラクターにしてみても構いません。ピカピカって変なメッセージが出てくる以外、このボットはピカチ〇ウらしいことをやってないのでw。
PIKABOってなに?
ぴかぼ とは ピカチ〇ウと話しているみたいなチャットボットです。
今は日本語を喋ってるですけど。ピカチュウの言葉をデコードした言葉だと思ってください。
ピカチ〇ウ + ボット = ぴかぼ
PIKABOってどうやって動く?
(一応Lineにも対応するつもりだってけど、Serverにデプロイはいまいちなので、今はメインでWebアプリからのみになります)
まだ開発チュウなので、期間限定しかAPIの方はPublicにしないですが、Webアプリの方はこちらのLinkでどうぞ
PIKABOってなにかできる?
これから最初からの開発ステップの説明になりますよ~
準備はいいですか!
よっし!行きます。
...ぴかぼと友達になれる
レベル1:ぴかぼとトモダチになりましょう
ぴかぼの動きは。。。
★送信さらてメッセージに 「友達」、「ともだち」、「友人」、「フレンド」と言う意味がある言葉が含まれているかどうかのチェック (言葉は 【単語】テーブルの中から調べる)
★あるとしたら、新しい友達の名前を聞くメッセージを返し、【友達】テーブルに【仮名前】で登録しといて【ユーザーから返事を待つ】カラムに 【友達機能】フラグを入れておく
★ユーザーから返事が来たら、そのメッセージを 【友達】テーブルに新しい友達の名前を更新、挨拶メッセージを新しいトモダチに返事 (友達のIDはLINEから送信した場合はLINEIDで、それいがいはUIからIDを決めるが必要)
いぬ:友達になりたいと言ったと、ぴかぼが嬉しそうで、名前聞いてきた。名前を教えたら、名前をよんでくれた!僕の名前覚えてくれたらしいんだ。嬉しい~
備考:このあたりの返事メッセージの作成は、まだプログラミングで固定なメッセージだけなんだけどね~
いぬ君に教えてもらった名前も、もし、名前以外のメッセージも含まれたなら、まだメッセージ解析出来ないぴかぼがそのまま全部名前だと思っちゃうのよ。
まだまだ生まれたばかり頭悪いぴかぼですけど、これからはぴかぼをいろんなことを教えて頼むよ~
...新しい言葉をぴかぼに教える
レベル2:ぴかぼに挨拶し方を教えましょう
ぴかぼの動きは。。。
★送信さらてメッセージを、【単語】テーブル探してみて、それっぽいの単語があったら、同じタイプの単語をRandomで返す。
★無いなら、その言葉を勉強しよう!【友達】テーブルに【勉強機能】フラグと、勉強したい言葉を入れといて、ユーザーにそのメッセージの意味を聞く返事メッセージを返す
★ユーザーから返事が来たら、説明をまた【単語】テーブルからそれっぽいなものを探して、あるとしたら、その新しい言葉を説明された言葉と同じタイプで【単語】に登録する
いぬ:挨拶してみたら、まだこの挨拶の言葉がわからなかったようだ。でも教えてみて、もう一回挨拶してみると、面白い挨拶言葉で返事してきた。誰から教わったんだろww
備考:ピカぼが何人かの友達から色んな挨拶し方を覚えたからだよ。だから、いぬ君が変な挨拶言葉をピカぼに教えてしまったら、ピカぼが誰かに変な挨拶言葉を使っちゃうかもよ~
まだまだ無邪気で素直なピカぼだから、意地悪しないで、大目に見てあげてね。
...ちょっと仲良くなったら、
ぴかぼが可愛い愛称をつけてくれるんです!
レベル3:ぴかぼが愛称をつけてくれる
ぴかぼの動きは。。。
★友達から色々教えてもらったとき【友達】の【仲良し度】が少しずつ上がりります。決まっているレベルまで達成したら、【ピカフレンド名】の機能が解禁されます。
★解禁される時、ピカぼが、「愛称で呼んでいいの」みたいな、許可を取るために友達に聞いてくる。【友達】テーブルに【ピカフレンド機能】のフラグを入れて、許可を待つ。
★「いいよ」と言ってくれたら、ピカぼがRandomで勝手に可愛い名前を作って、【友達】テーブル【ピカフレンド名】を登録して、その名前で友達に呼び始める
いぬ:ちょっと仲良くになったら、愛称も付けてくれるんだ。最初はちょっとからかって断ってみたけど、可哀想に泣いちゃったみたいで、もう一回聞いてくるとOKしてみたら、面白い愛称で呼んでくれたんだ~ かっわいい~w
備考:色々教えてくれたのお礼だよ。愛称を付けてくれてからには、これから時々この愛称で呼ばれちゃうよ。楽しみしててね。
EXTRAレベル:GoogleAPIメッセージ解析
今までのぴかぼはまだまだ言葉単位で、長いメッセージを送ったら困っちゃうので、もうちょっと赤ちゃんのぴかぼを賢くしてみましょう!
Google様はメッセージを解析できるAPIがあるそうだ それは 「自然言語」Natural Language と言うAPIなんだ。
公式サイトは これね → Link
「自然言語」って何か解析できる?
このPIKABOの中に使っているAPIは 3つありますよ それは
・構文解析
・エンティティ分析
・感情解析
- 「構文解析」
長いメッセージを解析してくれるAPIだよ。メッセージの中にどれぐらい単語があるか、その単語の種類などを教えてくれる
こんな感じね
- 「エンティティ分析」
長いメッセージから、人、物、場所などをピックアップしてくれる
こんな感じよ
- 「感情解析」
メッセージにはどんな感情があるのかを判断してくれるよ、結果は数字で教えてくれる Scoreは 「0以上」だったら「ポジティブ」な感情で「0以下」だったら「ネガティブ」な感想みたいんだ (結構ずれる時も多いけどね…)
いぬ:もっとぴかぼと楽しく話せそうだね!楽しみ~
備考:これを使うと、ピカぼが長いメッセージから言葉を分析できるようになったよ。これでもっと色んな言葉や、人や、モノを勉強できそうだね!
Googleの自然言語を使い始めたから、
新しい機能ができるようになった!
...人の名前だと分かって、
人のこと知りたくなってきた
レベル4:ぴかぼに「人」を紹介しよう
ぴかぼの動きは。。。
★メッセージをエンティティ分析して、「人」の名前が含まれているなら、【人】テーブルから名前で検索
★知っている人なら。その人の情報で返事メッセージを作成する
★知らない人なら、友達から聞くため【人紹介機能】のフラグを立て、質問を返す。
★友達が説明してもらった情報をエンティティ分析して、【人】テーブルに情報を登録
いぬ:会話している時、人の話だと分かってきたね。誰の事かを説明してもそんなに理解していなさそうだけど、頑張ってるように見えるね~
返事メッセージを自動作成
レベル5:おしゃべりぴかぼになった
ぴかぼの動きは。。。
★メッセージを構文解析して、構文の中全部の単語でペアを組んで、【単語ペア】テーブルに登録
★自動生成する時は、他の処理で判断終わった後、返事材料としてのKEYWORDで、【単語ペア】から関連している単語で繰り返し構文を追加する
いぬ:なんか突然色々じゃべれるようになったようだが、わけわかんない会話になったなぁ。意味もよくわからないし、酒飲んでるかよ!でも以外と面白くて、笑う止められないwwwww
備考:いっぱい話してあげたら、ぴかぼが色んな言葉使いができるようになると思うよう。なにが返事してくれるか分からないし、話にならないことも多いけど、面白いからいいでしょうw。まぁ~可愛がってあげてよろしくよ~。
長いブログになったけど、ぴかぼの成長はまだまだ続きますよ。
Google様のAPIの力を借りて、また色々できそうじゃないかと、楽しんでぴかぼを育っていこうと思いうますので、
NEXTレベルは楽しみにしてもらえば、ぴかぼもうれしいですよ~
じゃあね~