2018-10-30に更新

会話のかみ合わないチャットボットを作った

はじめに

チャットボット Advent Calendar 2016 - Qiita

21日目

チャットボット

適当にチャットボットを作ってみた。
本当は作るのが面倒だったので適当なAPI等は無いかと思ったが、
どうも登録に時間がかかったり費用がかかったり、
会話の流れを自分で登録していかなければならないものなどばかりだったため、
適当に作ってみることにした。

アルゴリズム

調べてみると下記のようなページがあった。

マルコフモデルを使った人工無能の作り方 - Hacking My Way ~ itogのhack日記

マルコフモデルというのを使うと会話が自動で生成できるらしく、
見て見る限り適当にデータをMySQLに保存していけばできそうだったのでこれでやってみることにした。
最近はやりの機械学習ライブラリなどは使っていない。

学習プログラムはpythonで作った。
そのうちTensorFlowなどを使う場合があればpythonがいいかと思ったが、
別に今回は小さなプログラムだったので結局何でも良かった。

学習

適当な会話データなどを拾って学習させてみた。
サーバーだとお金がかかるのでとりあえずある程度はPC上でDBに貯めこむ。
100ちょっとのファイルの会話データで、PCつけっぱなしで1週間ほどかかった。
HDDの寿命がだいぶ縮まったのではないだろうか…。

チャットアプリケーション

CakePHP3とAngularで作成した。
返事はpythonで作っていたのでコマンドを呼び出して連携している。

AiChatFront

LINE ボット

Message APIをつかってLINEボットも作ってみた。

Androidアプリ

CordovaでAndroidアプリも作ってみた。
ちなみにAndroidアプリの場合はボットが音声で話すので注意。
自分も声で話すことができる。

まとめ

やってみたが話はかみ合わない。
たまにドキッとする発言をするが。
もうちょっと調整や学習を増やせばもうちょっとまともになるかもしれない。


だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント