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

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

【Discord】.net framework This application could not be started.の解消方法

Discordにて上記メッセージが発生するエラーが出たのでメモまで。

実行時は自己責任にてお願いします。

 

上記エラーの解消方法は簡単です。

①C:\Users\username\AppData\Local\Discordにアクセス

②そこにあるUpdate.exeを削除

③C:\Users\username\AppData\Local\Discord\app-0.0.305にアクセスし、Discord.exeを起動

 

ただ、こちらに関してはDiscordを無理やり起動させてるだけですので、根本的な解決にはなってません。

根本的な解決をするためには別手段が必要だと思われますので見つけ次第報告させて頂きます。

 

【追記】判明しました

.configで足すといい模様

アプリ名+.configファイルを作成し、以下の様に記述でOKみたいです

<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

 

 

Unnamed ExchangeにBTCが送金出来ない事象への対処法

あくまでメモ程度ですが。

 

本日Sproutsコミュニティ内で,UnnamedExchangeに送金できないという事案が発生しました。

その時の解決法をメモ程度に残しておきます。

※この対処法でロストしても当方は責任を負いかねます。

 

目次

 

問題発生時の状況

 国内取引所からUnnamed Exchangeに送金しようとしたが、送金できない。

アドレスをコピー&ペーストしているので、アドレスが間違っているという事は考えにくい。

といった状況です。

解決法

 海外の方に教えて頂いたのですが,どうやらBTCには幾つかのアドレス形式があるようで(現状は3つ...?)日本の取引所とUnnamed Exchangeで対応しているアドレスが違うのではないか? とご教授頂きました。

対処法としては、以下の2通りがあります。

 

1,Unnamedと同じ形式を採用している取引所から送金する(記事執筆時点では、Unnamedは接頭句が"b"から始まる形式でした)

2,他の通貨(DOGE,ETH等)に変換してから送金する

 

1の方法は,対応している取引所と対応していない取引所があり,ロストのリスクもありますので,あまりオススメは出来ません。(更に、取引所を一つ経由する事になりますので、余計に手数料がかかります...)

無難な方法は2の方法なのかなと。

自分のメモついでですが、お役に立てれば幸いです。

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