見出し画像

GASでブルースカイのbotを作った

恐ろしく大昔にtwitterのAPIの有料化が始まり、それに伴って頓挫したbot開発が今回、ブルースカイでbotを作れると聞いて再燃しました。
今回作成したのは5分ごとにランダムな文字列を投稿するbot、通称「ツインメグ27」

…はい。適当に命名いたしました。

まあ名前は置いておいて作成に使ったもの。
・GAS
・blueskyのアカウント
・スプレッドシート
・ドキュメント
・chatgpt
以上の5つです。少ないでしょ?
私はプログラミング言語は多少読めるぐらいの浅はか人なので文明の利器(AI)を頼りましたが、おそらくある程度javascriptやGASの心得がある人ならいらないと思います。
でこれがそのbotが吐き出した文章。

スープまでわざとらしく消極的にマニラ🥺、消極的な向かうも調査ねパスタ。ノートパソコンさ売るから信頼またはこちらニューヨークそれって目の前で現代のや具体的に愚かなマフィンまたは誠実なそれに対して敗北。たくさん分析新しいまで知識その上に

編集確定するでいつも(゚∀゚)アヒャ結果かもあるいはから払う。経験とそして魅力的だ。鍋よ不幸なに福岡または確保するが、驚くべきだv( ̄Д ̄)v既に

統合する、探求するコミュニケーションか支える引き継ぐ挫折または

簡単なアルゴリズムの組み合わせなのでやはり怪奇的。

アルゴリズム1[Rwpe法(Random word pool extraction method)]

適当に命名しました。直訳です。
こちらは非常に簡単で、ドキュメント上のランダムな単語を複数抜き取りつなげるというモノ。
金魚すくいですくった金魚を並べるようなもの。基本的に最も意味不明な文章を生み出すことができる方法だと思います。
動詞の次に動詞を用いたり、名詞が5個連なったり、あるいは海に福岡が現れたり… 最もシンプルで王道ながら最も破壊力のあるアルゴリズムです。てかアルゴリズムかも定義的に怪しい…

短い出会うよ豊かな、果てしない希望静か。夢懐かしむね新しい失望癒し、叶うで忘れる結びつく運命生きるとして育む。駆け抜ける微細熱い帰る海感動、立ち向かう溢れる

やはり化け物です。こちらは読もうと思えば読めます。なんか理解できます。人間の脳はすごいです。
また、このアルゴリズムには、日本語っぽさを導入するためにわずかながら途中に助詞や読点、句読点を挿入する機能も備えています。これらが無ければ完全なるカオスが実現していました。多少の偏りは起こるようになっているんですけど…

アルゴリズム2[Pptl法(Planar probability table lookup method)]

こちらは上記と違い少々複雑、スプレッドシートを使用したものです。確単語ごとにidを振り、各単語ごとに次くる単語の確率を事前に計算したスプレッドシートを用意します。文章生成の際はその表を基に確率を計算しながら文章を作り出します。Rwpe法にくらべて非常に微々たる差ですが正しい文法に近い文章が作れるでしょう。

自分v( ̄Д ̄)vどのとともに。立派だよぶどうピザඞඞඞおいしいしたがいましてとともにシャツが、有名だそうして私が生まれてわけだけど説明古い🥺魚なんて聞く下がるそれって一千簡単だはまだ送り出す結局その、新しいからナイフそうして私が生まれてわけだけど接続するよ。パフォーマンス札幌分析ね探す目の前で一般的な経験元気な(゚∀゚)アヒャその代わりにまたは直す(゚∀゚)アヒャ、

前言撤回です。こいつに正規の日本語を求めてはいけません。
話は変わりますが、助詞や句点、句読点のシステムはRwpe法と同じです。なのでどちらも似通ったような文章を出力します。(特に句点・句読点)また、Pptl法には割と重大な欠点があります。それは、1000個しか単語を登録できない事。スプレッド―シートの上限が1000列・行なので、2次元の分布表をフルで展開するPptl法には拡張性がありません。多様性が生まれないということですね。また、分布表を生成するのに時間がかかりすぎてGASでは実行できないため、exelでvbaを動かし、ちまちまコピペしていかないといけません。不便。

所感

やはり扱える単語数が圧倒的に少ないので似通った文章になりがちなのと、助詞、読点・句読点がやや投げやりな状態で実装されているので文法が壊滅的、活用なども実装されていないので、あばよくば実装したいなと…
ランダムな文字列を投稿するbotを作っていたわけですが、やはり文章生成には何か惹かれるものがありますよね。
いつかランダムな文章発言botが作られるかもしれませんね。


ここまで読んでいただきありがとうございました!
リンクを置いておきます。ぜひ訪れてみてください!


いいなと思ったら応援しよう!