言葉を自動学習するSlackbotをマルコフ連鎖で実装

言葉を自動学習するSlackbotをマルコフ連鎖で実装

マルコフ連鎖とは

こんにちは。

AI coordinatorの清水秀樹です。

簡単に説明すると、マルコフ連鎖を使用すれば既存の文章を元にして自動で文章を生成することができるようになります。

ロシアの数学者マルコフによって研究されたモデルだそうです。

このモデルには物理学や統計学が使われているようです。

 

まあ、難しいことはよく分かりませんが、使って見ることでその効果を確認していきたいと思います。

今回はひたすら対話を繰り返すことで、勝手に自動学習していくSlackbotを作成します。

 

開発環境

macOS Sierra

Anaconda3-4.2.0-MacOSX-x86_64

python 3.5.2

 

参考にさせて頂いたサイトと書籍の紹介

Slackbotを作成する上で、下記サイトを参考にさせて頂きました。

PythonのslackbotライブラリでSlackボットを作る

 

マルコフ連鎖については以下の書籍を参考にさせて頂いています。

書籍名:Pythonによるスクレイピング&機械学習

書籍の詳細についてはこちら

 

Slackbotの環境準備

基本的Slackbotの作成方法は参考元サイトの通りで実装できますが、ハマった点だけを紹介します。

まずはbotにするユーザーを登録する必要がありますでの、グループを作成しただけではユーザーが自分しかいません。

そのためbot用にユーザーを紹介しましょう。

 

続いて、API_TOKENの取得方法です。

こちらもググればすぐに取得方法が分かると思いますので、ここでは紹介を割愛します。

 

開発用のフォルダ構成は以下の通りです。

参考元サイトの丸パクリです。

 

ソースコードは以下の通りです。

参考元と異なる部分のみ紹介します。

slackbot_settings.py

API_TOKENは取得したトークンを指定してください。

 

マルコフ連鎖

my_mention.py のソースコードにマルコフ連鎖を実装しています。

 

対話を続ければ勝手に自動学習するようになっています。

学習モデルも chatbot-data.json に保存しますので、処理を中断しても継続して再利用することができます。

 

学習結果の検証

ひたすら機械学習について対話をして見ました。

起動方法はターミナルで起動します。

 

最初はおうむ返しになりますが、すでに既出済の単語を放り込むとSlackbotの反応が変わってきます。

言葉を自動学習するSlackbotをマルコフ連鎖で実装

 

・・・正直実用には絶えないでしょうね。

ただ、もう少し複雑にソースコードを組み込めば可能性もあるような気がします。

 

何かに特化した学習モデルを準備して自動学習しないように対応することも可能なので、そうすればバカにならず対話を続けることができるSlackbotも作れそうな気がします。

 

この辺はもう少し模索していきたいですね。

 

それではまた。

この記事の内容について、相談したい方へ

技術選定・実装の進め方・組織での導入など、AI/IoT全般のご相談を受け付けています。

無料相談会(30分・オンライン)

About The Author

Hideki
東京大学発AIスタートアップでロボット開発室室長・画像解析室室長・動画解析室室長を務め、画像認識関連のAI特許を在籍中に3件取得。その後、KDDIグループでプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRIST株式会社の執行役員CTO 兼 VPoEとして、農業の人手不足解決に向けた収穫ロボットの開発組織を統括しています。AI・ハード・エレキ・通信・クラウド・IoTまでを一気通貫で設計できる視点を強みに、性能だけでなく「感動やワクワク体験」までデザインできるロボットの研究を進めています。並行して、AI coordinatorとして企業のAI導入・教育機関のAI授業・地域の技術相談を月額契約で継続伴走しています。

COMMENTS & TRACKBACKS

  • Comments ( 0 )
  • Trackbacks ( 1 )

コメントはまだありません。

  1. […] 前回の記事「言葉を自動学習するSlackbotをマルコフ連鎖で実装」を参考にSlackbotを作成してみてください。 […]

LEAVE A REPLY

*
*
* (公開されません)