Toukoの日記: eclipse ラ・ヨダソウ・スティアーナ プラグイン作成 7
日記 by
Touko
中二病的な呪文とかのコードアシストしてくれるプラグイン
作りたいのですが、作り方がわかりません。
「我 は 放つ 光 の 白刃」とか
「黄昏 よりも 暗きもの 血の流れ より 赤きもの」とか
「奉霊の時 来たりて 此へ集う 鴆の眷属 幾千が放つ 漆黒の炎」などなど
アシストしたいのですが、どなたかアドバイスお願いします。
中二病的な呪文とかのコードアシストしてくれるプラグイン
作りたいのですが、作り方がわかりません。
「我 は 放つ 光 の 白刃」とか
「黄昏 よりも 暗きもの 血の流れ より 赤きもの」とか
「奉霊の時 来たりて 此へ集う 鴆の眷属 幾千が放つ 漆黒の炎」などなど
アシストしたいのですが、どなたかアドバイスお願いします。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:1)
たとえば「独りよがりなヘミ猫近衛隊」とか。「万年β版のツワモノ労働組合」とか。
そこを作り出しているコードから見ては如何でしょう?
fjの教祖様
Re:/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:2)
自動生成が目的ではなく
アシストが目的なのです
日本語の形態素解析を行い
中二病的な「候補」となる続きの単語を出す感じで。
http://muimi.com/j/eclipse/useful.html [muimi.com]
誤記 FireFox
巫女 Firefox [mozdev.org]
Re:/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:1)
呪文というのは大抵、「前を入れたら後ろが出てくる」のではなく「後ろを入れたら前が決まる」ような文章になっています。「無駄な形容詞が多くて鬱陶しい」からこそ中二病なのであって。
「主命を受諾せよ(アクセプト) 最愛なる美の女神イーノ・マータの名に於いて封印よ退け」
がわかり易い例ですね。
「イーノ・マータ」という単語が「最愛なる」「美の女神」の2単語を導出している。
また、「封印よ退け」が「要点」であって、これは前の方を調べてもさっぱり予測できない。が、「封印よ退け」から、開封の許可を出す神として「善神」を選ぶ必要がある事が判る(間違っても「ルシフェル」の名において封印を退けることはない)。
.
この手のことは、自動生成プログラムを書いてみれば分かる話です。
自動生成する際に「どこから単語を決めていくと、全体として整合性が維持されるか」「そのためにどのような辞書が必要か」に基づいて考えれば、「どの単語を入れてもらう」と「残りを自動生成する」アシスト機能になり得るか(アシストなんぞ自動生成の一種に過ぎない)ということが判るはず。自動生成プログラムを真面目に作るというのは、決して「乱数で単語を決めるだけ」ではないのですよ。
# まぁ、それでもそこから始めるのが良いと思いますけどね。
fjの教祖様
Re:/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:2)
ありがとうございます、すばらしい洞察付けたいです。
コンパイル実行時に
ルシフェルの名の下に封印を退けようとしていたら
ちゃんとWarning出さないとダメってことですよね。
そうなりますとコード整形とリファクタリングも考えないといけないですし・・・
開発環境作るのって大変ですね・・・
前が決まると後ろが決まる文法の中間言語で書きつつ、専門辞書入れたときのATOKさんのように
日本語訳もその都度ヒント表示して
入力してる人が違和感なく中二病できるのが良いのでしょうか・・・・
これ、本気で10年くらい研究したらイグノーベル賞狙える研究課題かも?
中二病の海外知名度はわかりませんが
誤記 FireFox
巫女 Firefox [mozdev.org]
Re:/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:1)
イグノーベル賞が狙えるかどうかは知りませんが、必要な技術も発想も、40年も前にLispという言語上で「遅延評価(Lazy Evaluation)」という名前で開発されています。なので、なにか「本当に金になる実装を作る」のが目的でない限り、まるっきり無駄でしょう。
.
まぁ、文字列解析とかは正規表現とかがわかってないと棒にも箸にもならない、というのもあるので。まずはこのページに著者自身が置いてくれている「Higher-Order Perl」を読むことをお薦めする(というか、これを読んで理解できるレベルにまで、perl を理解する必要がある):
http://hop.perl.plover.com/book/ [plover.com]
で、その後でこの本を読む(こっちの実装は Python だけどね)
http://www.geocities.jp/kenichiokuyama/Book/read-computer/test-debug.h... [geocities.jp]
そうすれば、「呪文」の特徴をある程度理解した上で、必要な「神様/妖精/悪魔」データベースを作って、それを参照する「テンプレート」を作って、「テンプレート自体のデータベース」を作れば終わりだ、ということが判るはずだ(データベースを効率的に動作させるための知識は、ここでは無視する)。
で、その「テンプレート」の中身は(どのような形式の呪文を選ぶのか、選択するための人間用の項目を無視するなら)、実質的に「呪文を作り出すプログラムそのもの」になることが判るだろう。インタープリター言語で書かれていて、その場で評価される「遅延評価」を使えば、至極簡単なシロモノに過ぎないと判るはずだ。
fjの教祖様
Re:/.Jもログインしてトップページに行くと、似たようなのを出すよね (スコア:2)
難しいので、voidさんにお菓子を貢いで教えてもらうことにします。
誤記 FireFox
巫女 Firefox [mozdev.org]
日本語のほうが難しそう (スコア:1)
ギリシア語、ラテン語あたりなら、入力した音節をもつ単語の、そのつぎの音節だけを候補に示して、そこで選択された音節を持つ単語の、やはりそれに続く一音節のみをさらに候補に示し、というふうにしていくとそれっぽい単語も出来るかもしれません。
たとえば、 py- という音節で始まる、ないしは -py- を間に含む単語の、-py- のすぐ後に続く音節のみを候補に示します。
いまここで候補の中から -le- という音節を選んだとします。
すると、次は -le- という音節を含む単語の、-le- に続く音節の一覧が候補として示されます。
ここで、候補を選ばずに語を終端させ py-le という単語が出来あがります。
;; ほんらい希羅は語尾の形にはうるさいのだけれども、ドイツ語と英語とが混じっていて平気な人が気にすることではありません。
つぎは -la- という音節で探してみましょう。
候補の中に -pi- という音節があったのでこれを選びます。
すると、次は -pi- を含む単語の、-pi- に続く音節が候補に表示されます。
その中から -dis- を選択し、ここで終端し la-pi-dis という単語を得ます。
pyle lapidis (ピュレー・ラピディス)、厨二っぽくありませんか?
ただ、辞書を用意するのはどうにも面倒ですね。