LoginSignup
1
0

More than 3 years have passed since last update.

PAIPの2章 A Rule-Based Solutionでプリキュアの文章を作ってみた

Posted at

いつもプリキュアエンジニアになりたいと思っている46歳です。つまりこれはポエム枠です。

RustのマクロでPAIPの2章 A Rule-Based Solutionをやってみた

このアルゴリズムを使って、頭が悪そうなプリキュアの文章を作ってみました。マクロ定義などはそのままで、ルールだけ変更しました。

composite_rule!(sentence,   ->, shubu, jutubu);
composite_rule!(shubu,      ->, precure, joshi);
composite_rule!(jutubu,     ->, syusyokubu, jutugo);
composite_rule!(precure,    ->, pre, cure);
composite_rule!(syusyokubu, ->, obj, joshi2);

simple_rule!(joshi,  ->, "は が");
simple_rule!(joshi2, ->, "が を と");
simple_rule!(jutugo, ->, "好き 戦う 会う 食べる");
simple_rule!(pre,    ->, "キュア キュア キュア シャイニー");
simple_rule!(cure,   ->, "ブラック ホワイト ルミナス マリン エール ミルキー");
simple_rule!(obj,    ->, "ザケンナー たこやき キリヤくん カッパード");

単にcomposite_rule!(precure, ->, pre, cure);で面白いプリキュアできないかなと思っただけです。rustのマクロが上手く抽象度を上げているので、エラーに悩ませることなくルールを追加、修正できます。

このルールで先の実行してみると、頭悪そうなプリキュアの文章が無限に生成できます。やってから気が付いたんですが、ルールの再利用をしていないので適当にランダムに選んでいるだけですね。

キュア エール が たこやき を 戦う 。
シャイニー エール が キリヤくん を 食べる 。
キュア ミルキー は たこやき が 会う 。
キュア ホワイト が たこやき を 戦う 。
キュア ミルキー は ザケンナー と 戦う 。
キュア ブラック は キリヤくん を 会う 。
キュア マリン が たこやき と 食べる 。
キュア マリン は ザケンナー と 戦う 。
キュア ミルキー が カッパード と 会う 。
キュア エール が ザケンナー が 会う

キリヤくんが食べられてるけど、シャイニーエールという偽プリキュアなのでセーフ。
LSTMまで使わなくても、マルコフ連鎖でずいぶんまともになりそう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0