たまごちゃんの中身解説しようのコーナー

ノンプログラマーにもわかりやすく説明する

こんにちはKuchiBashiです
さあ始まりました新コーナー「たまごちゃんの中身解説しようのコーナー」です
そろそろたまごちゃんの中身を公開する時期が来たかなということで
日頃からお世話になってる tamagodon 方々へ
プログラムを書いたことのない人にもわかりやすく説明していこうかなと思います

そして、初めに言っておくと正確性に欠ける場合があります(酒飲みながらなので)

たまごちゃんって何?

さて、たまごちゃんを知らない方ももちろんいると思いますので説明しておくと
たまごちゃんは マストドンに住んでいるbotです
マストドンの中でも特にtamagodonに寄生しているたまごです

tamagodonのローカルタイムラインの単語を拾ってそれっぽい言葉をつぶやきます
以下が一例です

f:id:KuchiBashi:20200127200822p:plain
けもエチ
f:id:KuchiBashi:20200127200842p:plain
みんなメンヘラビーハッピー

などなどおもしろい事をつぶやきます

"アイツ"じゃん

そうです
このたまごちゃんはしゅうまいくんの丸パクリなんです

じゃあ「各自しゅうまいくんの中身について調べてください!」では面白くないので
しゅうまいくん かつ、たまごちゃんの中身についてわかりやすく説明していこうと思います

たまごちゃんの中身

とりあえずソースコードです

https://github.com/mendakon/tamagochan

技術的にはマルコフ連鎖というらしいのですが、情弱過ぎてなにもわからず雰囲気でプログラムをしたので
それの中身が何をしているのかを解説します

ざっくりというと

  • みんなのトゥートを拾う
  • バラバラにして貯める
  • 並べ替えてトゥート

という流れです

解説

みんなのトゥートを拾う

まず、タイムラインに流れてきたトゥートを読み込みます(この記事を書く前までのバージョンはローカルタイムラインを一定時間ごとにさかのぼっていました(ので多分ほぼ全部のトゥートの単語を知っていたと思います))

バラバラにして貯める

そしてバラバラにして貯めます
どうやってバラバラにするかというと Mecabというバラバラマシンを使います(おいしそうですね)

f:id:KuchiBashi:20200127203426j:plain
メカブ

Mecabは言葉を解析して自動でバラバラにしてくれます たとえば、

そのメカブ...最近よく食べてるんだ

その 連体詞,,,,,,その,ソノ,ソノ
メカブ 名詞,一般,
,,,,
... 名詞,サ変接続,,,,,
最近 名詞,副詞可能,
,,,,最近,サイキン,サイキン
よく 副詞,一般,
,,,,よく,ヨク,ヨク
食べ 動詞,自立,
,,一段,連用形,食べる,タベ,タベ
てる 動詞,非自立,
,,一段,基本形,てる,テル,テル
名詞,非自立,一般,
,,,ん,ン,ン
助動詞,,,*,特殊・ダ,基本形,だ,ダ,ダ

という感じでバラしてくれます(英語だとスペースが開いているので簡単らしいのですが日本語はちょっと難しんですね)
ずいぶん複雑なことをしていますが超ハイパーすごい先人たちがボタン一つで使えるようにまとめてくれているので複雑ではありません

並べ替えてトゥート

ここが一番複雑だったりします
たとえば、誰かが

私はイーミアルのゼリーが大好きです

僕には30代のお姉さんがいます

とトゥートしたとしましょう

そしてそれらをバラバラにして蓄えます
「私 」「は」 「イーミアル」「の」「ゼリー」「が」「大好き」「です」
「僕」「に」「は」「30代」「の」「お姉さん」「が」「います」

そしてこれらのつながりを記録しておきます f:id:KuchiBashi:20200127210922j:plain

つまり
『「私」という単語の次には「は」という単語が来ることがあるんだな』
『「は」の次には「イーミアル」という単語が来ることがあるんだな』

というような情報をたまごちゃんはたくさん知っているということになります

そしてたまごちゃんはそれらをランダムに組み合わせます

例を挙げて紹介します
たまごちゃんはランダムに探した結果「私」という単語を拾いました
そしてたまごちゃんは「私」の次に「は」が来ることを知っています

f:id:KuchiBashi:20200127212026j:plain
かしこい!

つぎにたまごちゃんは「は」の次に何が来るかを探します その結果「は」の次は「イーミアル」と「30代」が来ることを知っています!

そこからたまごちゃんはランダムに選びます
今回はたまたま「30代」を選びました f:id:KuchiBashi:20200127212952j:plain

という感じで続けていきます

これを繰り返すことでたまごちゃんは、

f:id:KuchiBashi:20200127213952j:plain
私は30代のお姉さんが大好きです

「私は30代のお姉さんが大好きです」 という文を生成します

ほかにも可能性として
「私は30代のゼリーがいます」
「僕にはイーミアルのお姉さんが大好きです」
などの文章があり得ます

このようにしてたまごちゃんは文章を生成していました

どのくらい自然か

この方法はかなり自然です

今回はこちらのサイトを使わせていただきます
ゴーストライター

勝手ながら例としてこちらの文章をすべて読み込ませていただきます

はいみなさんこんにちは。
SeikinTVのセイキンです。
タカラトミィー!ねぇ皆さんご存知でしょうタカラトミーと言えば有名ですよ。
ん~。
普段ねまったく運動しない僕 は頑張ってダンスしたからね。
ダンスした後暑くてよりね、自分でなんでもね、ジュースとか入れて作ってみたら楽 しいんじゃないでしょうか。
今回使ったこのフルキャラアイス。
動画の概要欄にリンク貼っておきます のでぜひチェックしてみてください。
え~今回は質問コーナーはおやすみです。
それでは、いただきます。
どんな味なんだろん?ムムッ!お ぉ!?こぉれはwちょっと待てよこれうん、食感はかなりクリーミー。
大成功!はい、っていうことで 、今日は公式レシピ から1品、あとセイキンオリジナルレシピを1品作 ったんですけれど公式レシピに載ってるこれでいきましょう!ハッピー杏仁フルーツ。
材料はプリン、ヨーグルト、砂糖。
題して『ヨーグルトプリン』まぁちなみにこれは僕が考えたオリジナルレシピなので美味しいかどうか は わかりません。
はい、あっいい 感じだねこれは。
うん、うん! 杏仁豆腐固まっても美味しいねぇ。
うんうんうん!あ~最高!まぁあの味は杏仁豆腐なんですけど、まずは公式レシピ から1品、あとセイ キンオリジナルレシピを1品作ったんですけれど公式レシピ から1品、あとセイキンオリジナルレシピを1品作ったんですけれど公式レシピだけでも十分楽しめますよね。
さらに自分でなんでもね、ジュースとか入れて作ってみたら楽 しいんじゃないでしょうか。
それではまた次回のSeikin TVでお会いしましょう。
See you next time!~EDYoutube Youtube()SeikinTV、チャンネル登録してね!

わりとぐちゃぐちゃですがいちおう文章としては成り立っていますね (というよりかはそのままの文章が多いですが...) このくらいの自然さです(僕は結構自然だと思います)

さいごに

たまごちゃんはこのたびアップデートしましたのでかわいがってあげて下さい
疲れたので終わります