Python
C#
Windows10
discord
discordpy

Windows10+Python+C#でDiscord用マルコフ連鎖Botを作った話

More than 1 year has passed since last update.


はじめに

@kakunpc さんが動かしていたマルコフ連鎖のBotで楽しく遊んでいたのですが、ふとこういうBotを自分でも作ってみたいと思い、ソース公開していないんですか?と質問したら公開してもらえたので、それを利用してDiscordで動くBotを作りました


環境


  • Windows10

  • Python3.6.4


Botの動き

Botに話しかけると、特定のファイルから日本語文章を読み込んで、その文章と、Discordの特定の名前のチャンネルの発言をあわせたテキストからマルコフ連鎖で生成した文章が投稿されます


マルコフ連鎖の文章を生成するプログラム:MarkovInu

こちらでソースが公開されています

https://github.com/kakunpc/MarkovInu

MarkovInu(以下マルコフ犬)のソースコードは C# で書かれています。そのため、ビルドしてやる必要があります

VisualStudioがない場合、VisualStudioをダウンロードしてきましょう。コミュニティ版は無償で使えます。

https://www.microsoft.com/ja-jp/dev/compare-editions

コンパイルに先立って、以下の2点を修正しました

修正が終わったら、メニューの「ビルド」-「MarkovInuをビルド」を選択すると、MarkovInu\MarkovInu\bin\Debug の中にライブラリなど含めて一通りビルドされています。

ファイル内の Sample.txtbase_text.txt にリネームしてこのディレクトリに配置してください。

ここでコマンドプロンプトを立ち上げて、ファイル内のMarkovInu.exe を実行し、1行出力されたら、マルコフ連鎖の文章生成部分は完成です。


DiscordへのBotの登録

長くなったので記事をわけました

https://qiita.com/oosawa/items/e5b01e88a209d9087432


  • Bot用のアプリケーションを作成し、TOKENを得る

  • Botをディスコードのサーバに招待する

  • Botを招待したサーバに、maou-no-niwa というチャンネルを作る

という3つの作業が必要です


Botの実装

Botのソースは以下で公開しています

https://gist.github.com/oosawa/7c38797b602d8da04e4a1f8eb2f16a08

これを動かすためには、pythonのインストールと、discord.pyのインストールが必要です。



python -m pip install -U discord.py


ファイルの配置

以下のようにファイルを配置してください

ディレクトリ

└reply.py
└create_base_text.py
└Inu
├MarkovInu.exe
├base_text.txt
├dic
:


Botの実行

コマンドプロンプトを立ち上げて

python reply.py

でBotがたちあがります

#maou-no-niwa でいろいろ発言したあと、Botに話しかけてみてください


参考

https://github.com/Rapptz/discord.py

http://discordpy.readthedocs.io/en/latest/