LoginSignup
6
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-02

はじめに

@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/

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1