AI coordinator

人工知能 & ロボティクス

© AI coordinator All rights reserved.

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

マルコフ連鎖とは

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

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

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

 

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

今回はひたすら対話を繰り返すことで、勝手に自動学習していく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も作れそうな気がします。

 

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

 


その他の自然言語処理記事はこちらから

 

それではまた。

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

リアルタイム映像からの美人女優検出

リアルタイム映像から特定の人物検出 以前からやってみたかった映像からの特定人物検出にチャレンジしてみたので、その内容の紹介です。 S…

Tensolflowで映像からの美人女優顔検出学習モデルの見直し

以前の記事で紹介したモデルが使い物にならなかった 以前紹介したリアルタイム映像からの美人女優検出で作成した学習モデルは、とりあえず学習モデ…

Watson VisualRecognition を Python GUIで使ってみよう

Watson API 「VisualRecognition」をPythonで使ってみよう Watson API「VisualRecogni…

TensorFlowのオブジェクト検出APIで物体検出に挑戦

TensorFlowで物体検出APIがリリースされたので早速試してみた googleからの新しい物体検出APIがリリースされました。 …

Watson NLCに学習データを投入できるGUIの開発方法

Watson NLCに学習データを投入できる画面をPythonで実装する方法 Watson NLCに学習データを投入できる簡単な画面を開発…

wikipediaを学習した類義語を話すSlackbotの作成方法

wikipedia日本語全文データから類義語を話すSlackbotを作った話 前回の記事で日本語を学習するマルコフ連鎖を使ったSlackb…

20176/1

jupyter notebookの便利な使い方や起動しなくなった時の対処法

便利なショートカットキー jupyter notebookを便利に使用する上で、最低限知っておけば良いショートカットキーを紹介します。 …

誰でもできるtensorflowを使ったサンプル画像認識

tensorflowなら簡単に画像認識ができる tensorflowの入門編として、簡単にサンプルソースを使った画像認識を試してみたので、…

20177/25

カメラ映像から動く物体の輪郭検出が簡単にできた話

OpenCVを使って動く物体の輪郭検出をやってみた 今更ながらにOpenCVの凄さを実感しました。 まさか物体の輪郭検出までできると…

20178/12

監視カメラで撮影した画像を自動でSlackにアップロードする方法

画像確認はSlackが便利 前回紹介した動体撮影に特化した監視カメラの作成方法で、保存した写真をどうやって簡単に確認できるか模索していたと…

ページ上部へ戻る