メモ帳 or チラシの裏的な何か

ネット関係とかアニメとか。特に制限は無しです

Sprouts関連サイト リンク集

皆さんおはこんばんにちは。最近お絵かきやろうとして、自分が如何に工程を省いているか絵師さんの動画を見て知ったSysnetです。自分みたいに絵が下手でもチート(ドール)と時間を30-50時間ぐらい掛けたら絵師さんの100分の1ぐらいのクオリティの絵なら描けるのではないか。と一瞬思ったので今度の週末にでも試そうと思います。

 

さて、そんなことはどうでもいいので、表題に移りましょう。

そうです。Sproutsです。

最近Pythonに明け暮れてましたのでほぼ触れてませんでしたが、ちょっと関連サイトとか分からなくなったので自分用に纏めよう。と思った次第です。

 

と言っても公式サイトに飛べば基本はあるのですが。

こちらでは公式サイトに載せれなさそーなリンク書こうと思ったのですが......自分が見てる限りだと、Sprouts潔白すぎてそんなサイトないっぽいです。凄い。

強いて言うなら某PoSサイトですが、自分が利用してないサイトのリンク載せるのはブログ的に不味いっていう別の理由で掲載を見送りました。

 

 

では、流石に読み飽きてきたと思いますし、リンク貼りに移ります。

 

一番目に公式GitHub載せときます。

案外覗いてない人が多そうでしたので、サイト離れにくい上の方に貼っといた方がいいかなっと。

github.com

 

 

二番目には公式HP。

www.sprouts-coin.org

 

続いて公式Discord

discord.gg

 

ここからbitcointalkとTwitterどっち先に載せるか悩みましたが、日本人受け良いのはTwitterなのでTwitterから。

 

Twitter(JP)

twitter.com

 

Twitter(Eng)

twitter.com

 

次はbitcointalk。

偽スレ偶にありますが、ここが正しいスレです。

bitcointalk.org

 

えーっと...後は....Telegramですかね。

 

Telegram(Chat)

 

t.me

 

Telegram(Announcement)

t.me

 

最後に取引所。CoinExchangeです。(何故かこれだけ枠出てこなかった....)

CoinExchange.io - Crypto Currency Altcoin Exchange

 

ぐらいです。更に増えてきたらもうちょっと真面目に一覧にまとめたりするかもですが、今は半分ぐらい自分用です(;'∀')

 

何がともあれ、ここまでお付き合い頂きありがとうございました♪

jsonファイルでUserWarning: Attempting to set identical で始まるエラー

UserWarning: Attempting to set identical から始まる一連のエラーが出たのでメモがてら。

 

出た環境

Windows10

Python3.6

 

最近3.7出たらしいのですが、新しいのは怖いタイプの人間ですので、3.6です。

 

原因

今回、json.loadの部分で出ましたので、jsonファイルを確認すると、

jsonファイルに書き込みがされていない

jsonファイルへの書き込みが極小である(データ2つ等,自環境は3つ以上で出なくなりました。同じ数値の場合、2つだと出るみたいです※未検証)

jsonファイル内が極端に多い場合

 →一度データを減らしてみてください。

 

解決策

・外部からのjsonファイル貼り付けだとうまくいかないので一から取得しました

・書き込みがある程度溜まるまで放置しました

 

メモなのでこの辺りで失礼します。

SproutsHFされました!わーい!

Python AttributeError 対応方法

皆さんこんにちは。

 

今回は完全にメモです。最近忘れっぽいので....

 

 

AttributeErrorが出た時にまず見ること。

 

ファイル名とモジュール名が一緒じゃないか確認する。

 

というのも、ファイル名とモジュール名が同じだった場合、ファイル名が優先して見られるらしく、モジュールが見られないので実行時エラーになるっぽいです。

 

当たり前と言えば当たり前ですが、それを忘れてポカやらかしたのでメモ程度にです。

 

Discord マルコフ連鎖botで画像等ファイル送信時にエラーが出ない様にする方法

皆さんこんにちは。

短期間のうちに投稿しました。

ブログ記事折角更新したので、モチベ―ションが続く限りは積極的に更新していこうという意味があったりします。

 

では、早速表題に入っていきますが、先日書いた記事(

プログラミング初心者がマルコフ連鎖で会話するDiscordBotを作ってみる - メモ帳 or チラシの裏的な何か

)

にて、Discordbotで対話AIをつくる方法を書きましたが、このコードのままだと写真等のファイル送信時にエラーメッセージが出てしまうので、ファイル送信時にエラーが出ない様に(エラー回避)するコードを追加しようかと思います。

 

と言っても数行追加するだけですが。

 

では、実際に書いていきます。

@client.event #Discordbotへの投稿とコメント取得
async def on_message(message):
    if client.user != message.author:
        text = message.content
        res = make_reply(text)
        await client.send_message(message.channel, res)


client.run('token')

 

というコードを

@client.event
async def on_message(message):
    if message.attachments:
        pass

    elif client.user != message.author:
            text = message.content
            res = make_reply(text)
            await client.send_message(message.channel, res)

client.run('token')

 

に変えます。

ホントは != 等を使ってすれば綺麗に済んだのですが、それを使うと何故かエラーが出ちゃうのでしぶしぶこの形にしました。

 

何がともあれ、これに変えると画像ファイルを無視できるかと思います。

ですが、これにした場合、画像添付時のコメントもBotは認識しませんので注意が必要です。

 

では、本日はこれぐらいにしておこうと思います。

ご覧いただきありがとうございました!

 

追記:上記編集はGithubにCommit済みです

github.com

プログラミング初心者がマルコフ連鎖で会話するDiscordBotを作ってみる

皆さんこんにちは。

久しぶりのブログ更新です。

 

今回はタイトル通りですが、自分のメモという面が大きいです。

ですので見にくいかもしれませんが、参考になれば幸いです。

 

今回は人口知能を作ってみます。マルコフ連鎖なので無能と言われればそこまでですが、AIですAI。

 

 

そもそも、マルコフ連鎖とは何か。という話なのですが、多くの他のブログさん同様、あまり理解できていませんが、こういう事だそうです。

マルコフ性Markov property)とは、次の状態が過去の状態に依存せず現在の状態のみによって決まる性質のことである。

マルコフ性が存在する場合、状態が {q0, q1, q2, q3, ……, qn-1} のn通りを取るような状態遷移において、現在の状態が qi であった時に次の状態 qj に遷移する確率は純に次の状態と現在の状態のみで記述され、 P(qj | qi) で決定される。

 

byニコニコ大百科

 

 Wikipediaさんや個人ブログさんでも良かったのですが、前者はもう何言ってるのか分からない、後者はなかなか簡単に説明しているのが無かったため、大百科さんにしました。

 

簡単に言っちゃうとユーザーが送信したメッセージに最適な返答を確率で求めよう!...だと思っています(間違っていたらどなたかコメントにお願いします(;'∀'))

 

さて、実際にやってみよう!なのですが、やろうとしたことは先人が大体やっているこの世の中。調べたら多数のサイトが出てきました。

 

ので、まずは参考になったサイトを紹介しようと思います。

 

TensorFlowで会話AIを作ってみた。

こちらのサイト(というかプレゼン)はまずは概念理解にお勧めです。

「AI?何それ?機械が学習するの?」

って方はまずこれを読んで概念理解から初めて頂けると分かりやすいと思います。

他のサイトとかはこんな感じです。

マルコフ連鎖でTwitter Botをつくりました | takuti.me

 

多分概念理解自体は上記でできますので(分からなかったら「マルコフ連鎖 python」とか「会話bot 作り方」とかでググってネサフすれば出てくると思います)取り敢えずはこれぐらいにしておきます。

 

次にコードで参考になった記事です。

マルコフ連鎖を使って自分らしい文章をツイートする

【エヴァンゲリオン】アスカっぽいセリフをDeepLearningで自動生成してみる

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

 

等々....

 

何十サイトと見ました。それぞれのサイトの執筆者さん、ありがとうございます。

 

上記のサイトでもコーディング能力がある方は十分できるかと思いますが、如何せん私は初心者。

もう少し簡単にしてあるサイトの方がいいと思い、ネサフを続けます。

 

....

 

そして、結局このサイトさんに書いてある内容を使わせて頂くことに。

ai-coordinator.jp

 

こちらのサイトさんが直感的に理解できましたので採用。

ただ、SlackBotですので、適宜Discord用に変換しないといけません。

 

コードを読んでいくと、どうやらマルコフ連鎖のコード部分は最後のSlackbotに返事させる部分以外は丸ごと使えるみたいでしたので、ほぼ全部(一部変えた部分もあった記憶ですが)利用させて頂きます。

 

ちなみにその時SlackBotについては全く知りませんでしたのでちょっと調べました。

閲覧させて頂いたサイト様のリンクを載せときますので参考になれば幸いです。

Pythonを使ったSlackBotの作成方法

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

 

又、janomeという形態素解析を使用しているという事なのでjanomeについても調べました。

Welcome to janome’s documentation! (Japanese) — Janome v0.3 documentation (ja)

(タイトルは英語ですが、タイトルにも書いてあるように中身は日本語です)

 

そして、肝心のDiscord部分の実装です。

上記サイト様のコードを利用させてもらいつつ、適宜Discord用に改変していきます。

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

 

marcov # 名前は好きな物で大丈夫です
├─ main.py #ここにソースコードを書きます。好きな名前で大丈夫です

└─ chat_bot.json #自動生成されますので、最初は無いです

 

これだけです。

Slackbotは結構多くのフォルダ分けが必要みたいですが、DiscordBotなのでソースコード1個とデータ保存用のjsonファイルだけですみます。

 

そして、Slackbot部分を適宜Discordに適応させていく作業に入ります。

 

....ここで、今更ですが、環境を書きます。

Pycharm - Pythonコードを書くためのソフトです。なくても良いですが、滅茶苦茶使いやすいですのでもしよければ是非。

Python3.6 - インストールしていないのならこれだけはインストールお願いします。じゃないとPythonコード自体動きません(;・∀・)

 

そして、discord.py とjanomeもpipでインストールしておいてください。(pip?何それ?って人は「Python pip とは」で調べたら出てくると思います)

 

そこまで出来たら、次はDiscordbot側の登録に移ります。

Discordbot作ったことのない方は以下の記事が参考になりますので、以下の記事を参考にしてbot登録を行ってください。

Pythonで簡単なDiscord Botの作り方

 

作成が終わったら、コードを書いていきましょう。

先程のサイトにあったマルコフ連鎖のコードをそのまま持ってきてください。

そして以下の部分を

@default_reply()
def default_func(message):
    text = message.body['text']     # メッセージを取り出す
    res = make_reply(text)
    message.reply(res)

以下の様に変えます。(コピペで大丈夫です)

client = discord.Client()


@client.event #Discordbot起動確認
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

@client.event #Discordbotへの投稿とコメント取得
async def on_message(message):
    if client.user != message.author:
        text = message.content
        res = make_reply(text)
        await client.send_message(message.channel, res)


client.run('token')

注意点ですが、 

・import discord をコード最上部に記述してください

・'token'の部分はご自身のDiscordトークンに変えてください。

 

 

これでマルコフ連鎖での会話が可能なdiscordbotが出来ました。

 

恐らくとんでもない量の会話練習が必要ですが、複数人で数日に渡って教育を積めばそれっぽい会話をしてくれる気はします。

 

お疲れ様でした。質問などあればコメント欄や私のdiscordのDMへ送っていただければわかる範囲でお答えします~(分からなかったら申し訳ございません(;'∀'))

 

追記:ソースコード全文をGithubに公開しました。

github.com

SproutsとAuxilium(旧Sprouts+)との違いについて

皆さんおはこんにちばんは。Sysnetです。

 

久しぶりの新規記事更新ですが、MineCraftの記事ではなく申し訳ないです。
ですが、ある程度の注目をSproutsが集めている以上、誤解を生まないためにも現状を書いておこうかと思います。(あくまで私が理解している範囲ですので、間違っている点があるかもしれません。間違っている点がありましたら気兼ねなく指摘をお願いします)

 

さて、Auxilium(通称Aux)ですが、Auxは以前は、Sprouts+という通貨名でした。(

SproutsとSprouts+について - メモ帳 or チラシの裏的な何か

)

ですが、あまりに旧開発(現Sprouts開発は日本に代わっています)の反発が強かったのか、名前変更に至ったようです。(一説ではWebデザインチーム離脱のためともいわれています)

 さて、そのAux、本日(25日)がTestnetの終了日です。

どうやら、ETHベースの初のPoSだそうなのですが、延期に延期してその程度かという意見も見られました(本来なら二月にはTestnetが始まるはずでした)。

 

では、今のSproutsとAuxの関係性を時系列順に見ていきたいと思います。

 

 

1、Sprouts開発放棄

2、Anton氏を中心とするグループが,Sprouts+を旧開発の反対の中、Sprouts保有ユーザーの支持を得て開発開始

~~~~~~~~

3、日本ユーザー、非公式コミュニティを始動

4、Sprouts+、日本の非公式コミュニティと連絡を取る

5、現状(SproutsとAuxの状況)を理解した日本非公式コミュ、SproutsとSprouts+に分裂

6、Sprouts+公式Twitter等始動

7、Sprouts+、Discord開設と共に公式に日本コミュ介入(日本コミュトップ、Sprouts+モデレータ入り)

8、Sprouts+、Auxiliumに名称変更

9、Sprouts旧開発とSprouts日本非公式コミュ、連絡が取れる

10、Sprouts日本非公式コミュ、Sprouts旧開発の許可を得て公式化(これにより、Sprouts+非公式日本コミュが形骸化)

11、Sprouts新開発(日本人開発)、HF決行を発表

 

という流れとなっています。

 

さて、SproutsとAuxの違いを列挙してみます。

 

Sprouts

・PeerCoinベースで開発

・PoS年率約1300%(日率2%)

 →HFでの修正が発表,HFで修正しても価格是正が見られない場合にSwapの可能性もあるとのこと

・PoW形式:SHA-256D

・現時点(3月25日)で発行枚数4兆超え

 

Auxilium

・ETHベースでの開発

・ETH初のPoS通貨

・PoWは不明(知ってる方コメントにてお願いします)

・公開日未定,ただし、本日(3月25日)TestNet終了

・SproutsでのSwap通貨(簡単に言うと、Sproutsで参加できるICO通貨)

 

 

となっております。

 

どちらを選択するのか、両方選択するのかは皆さんの自由ですが、あくまで筆者(私)の見解を言わせてもらいますと、Auxの方は何度もTestnet公開延期をしており、更に持ち逃げリスクまでありますので、余りオススメ出来ないなと思っております。

 

では、今回はこれぐらいしようと思います。

ご覧いただきありがとうございました。

 

MineCraft経済Modを使って何とかSproutsを利用できないか考えてみた

皆さんどうもおはこんにちばんは、Sysnetです。

どうやらSprouts運営は仕手グループという情報が出回っていたようで。そんな訳ないじゃないですか。.....とは思うんですけど、こういう噂はすぐ広まるんですよねぇ。まぁ、原因は自分にもあったようなので謝罪します。(詳細はTwitter投稿をご覧ください)

では、タイトル通りの事を考えていこうかと。

今回は大分趣味関連に走ってます。

そもそもこれをやろうと考えてたきっかけがVPSを契約したからという....ConohaですConoha、キャラで選びました(直球)

 

まぁ、それは置いといて、流石に本題に入ります。

 

まず、一番最初にしなければならない法律確認からしていこうかなと思いました。

 

仮想通貨をそのままMineCraftに移した場合、恐らく取引所の業者と同じ扱いになって違法になると推測しました。

なら、Discordを経由すれば問題ないのでは?と考えこの記事を書いている次第です。

 

何故、Discordを経由すれば問題ないと判断したかといいますと、Sproutsの水やりBotの仕組みが判断基準です。

そもそも、現在Discordでの水やりは、入金されたSPRTSを数値上の栽培中で置き換えることによって、水やり等を潤滑化しています。
とすると、その数値上のやり取りだけなので、仮想通貨の取引ではないのです。

それが根拠の一つになっています。

 

まぁ、本日はこれぐらいにして〆ようかなと思います。

もしかしたらPartⅡやるかもです。

 

Conohaは下のリンクからどうぞー(キャラ可愛いですキャラ)

VPSならConoHa|登録者数12万アカウント突破 - 期間限定キャンペーン実施中