GASでブルースカイのbotを作った
恐ろしく大昔にtwitterのAPIの有料化が始まり、それに伴って頓挫したbot開発が今回、ブルースカイでbotを作れると聞いて再燃しました。
今回作成したのは5分ごとにランダムな文字列を投稿するbot、通称「ツインメグ27」
…はい。適当に命名いたしました。
まあ名前は置いておいて作成に使ったもの。
・GAS
・blueskyのアカウント
・スプレッドシート
・ドキュメント
・chatgpt
以上の5つです。少ないでしょ?
私はプログラミング言語は多少読めるぐらいの浅はか人なので文明の利器(AI)を頼りましたが、おそらくある程度javascriptやGASの心得がある人ならいらないと思います。
でこれがそのbotが吐き出した文章。
簡単なアルゴリズムの組み合わせなのでやはり怪奇的。
アルゴリズム1[Rwpe法(Random word pool extraction method)]
適当に命名しました。直訳です。
こちらは非常に簡単で、ドキュメント上のランダムな単語を複数抜き取りつなげるというモノ。
金魚すくいですくった金魚を並べるようなもの。基本的に最も意味不明な文章を生み出すことができる方法だと思います。
動詞の次に動詞を用いたり、名詞が5個連なったり、あるいは海に福岡が現れたり… 最もシンプルで王道ながら最も破壊力のあるアルゴリズムです。てかアルゴリズムかも定義的に怪しい…
やはり化け物です。こちらは読もうと思えば読めます。なんか理解できます。人間の脳はすごいです。
また、このアルゴリズムには、日本語っぽさを導入するためにわずかながら途中に助詞や読点、句読点を挿入する機能も備えています。これらが無ければ完全なるカオスが実現していました。多少の偏りは起こるようになっているんですけど…
アルゴリズム2[Pptl法(Planar probability table lookup method)]
こちらは上記と違い少々複雑、スプレッドシートを使用したものです。確単語ごとにidを振り、各単語ごとに次くる単語の確率を事前に計算したスプレッドシートを用意します。文章生成の際はその表を基に確率を計算しながら文章を作り出します。Rwpe法にくらべて非常に微々たる差ですが正しい文法に近い文章が作れるでしょう。
前言撤回です。こいつに正規の日本語を求めてはいけません。
話は変わりますが、助詞や句点、句読点のシステムはRwpe法と同じです。なのでどちらも似通ったような文章を出力します。(特に句点・句読点)また、Pptl法には割と重大な欠点があります。それは、1000個しか単語を登録できない事。スプレッド―シートの上限が1000列・行なので、2次元の分布表をフルで展開するPptl法には拡張性がありません。多様性が生まれないということですね。また、分布表を生成するのに時間がかかりすぎてGASでは実行できないため、exelでvbaを動かし、ちまちまコピペしていかないといけません。不便。
所感
やはり扱える単語数が圧倒的に少ないので似通った文章になりがちなのと、助詞、読点・句読点がやや投げやりな状態で実装されているので文法が壊滅的、活用なども実装されていないので、あばよくば実装したいなと…
ランダムな文字列を投稿するbotを作っていたわけですが、やはり文章生成には何か惹かれるものがありますよね。
いつかランダムな文章発言botが作られるかもしれませんね。
ここまで読んでいただきありがとうございました!
リンクを置いておきます。ぜひ訪れてみてください!