📚

一億総教祖時代を強力にサポートするための、お手軽聖典作成技術

6 min read

存在しない技術 Advent Calendar 2021の23日目の記事です。記事の内容には、事実である部分と事実でない部分があります。

手のひらに新たなドキドキ。
――終章「男 vs. 警備員」第十二段落の第八文

あらゆる価値観が相対化される令和の今日この頃、「私もいっちょ教祖になってみようかな」とお思いの方も少なくないでしょう。このような近年の風潮を称して「一億総教祖時代」と表現したりもするようです。

さて、教祖になるからには、なんといっても、

「聖典からの引用」

ができるとカッコいいですね。(もちろん世の中には成文化された聖典のない教えも数多くございますが、そのような教えを行うコミュニティ内でも、なんらかのありがたいお話が口伝により伝わっているものです。)

稲造国宝新書。これは開拓戦で使用されているのと同じ航空戦力。
――第9章「目は果実を追う」第二十段落の第一文

本というのは強力な情報媒体であり、しばしば武器や戦力に喩えられてきました。なにより、教祖として活動を行う上で、教えを記した分厚い本があると箔が付きます。

しかしながら、現代人はとにかく忙しい。

その生き方とは、9人が巨大な道具を作るのに忙しいということです。
――第1章「灰が使っていたクールなステップに、心が声をかけた。」第三段落の第一文

勉強や執筆をしたいと思っていてもなかなかできないし、仮に時間があったとしても、どれを読んでなにを書けばよいかわからない。そんな方も多いことでしょう。人生の半分以上を聖典作成に掛けることも珍しくなかった先人と比べ、その点では教祖になる上で圧倒に不利です。

とはいえ、既存の聖典の写本を作るにも、かつて人の手で言葉を一つ一つペンに載せていた時代があった一方で、今では Ctrl + A → Ctrl + C → Ctrl + V → Ctrl + P と唱えるだけ。圧倒的な省力化が実現されています。電子データになっている現代の聖典は、ページをめくって必要な部分を取り出せるだけでなく、全体を検索することだってできて、そのうえ本棚も机の上もすっきりする。そんな便利な時代を我々は生きているわけです。高度に情報化されたこの現在において、聖典の新造にも画期的なブレークスルーは起きないものでしょうか。

そこで今回ご紹介するのは、原始的な情報技術と最先端の情報技術を融合させ、お手軽に聖典を作成するための画期的手法です。

次は普通じゃない作品、技術的な意味での作品を入れてみます。
――第6章「ハザイの諸手」第十九段落の第二文

頻度解析

自然言語と情報技術の繋がりのうち、非常に古典的かつ重要なものとして、頻度解析というものがあります。エドガー・アラン・ポーの短編小説「黄金虫」(1843年)では、英語において最も使用頻度の高い文字が e であることから、暗号文内の「8」の文字が e に対応していると推測して解読がなされていっています。同じ頃、ウィリアム・ガンブル(William Gamble, 1830-1886)は、どの漢字の活字をどれほど鋳造すればいいのかを調べるべく、数人の助手とともに、28種のキリスト教関係の中国語書籍(総計116万字)に出てくる漢字をちまちま数え、6000種の字の頻度を算出、『両種字表』として出版しました。

時代は流れ、現在となってはコンピュータの力を借りて頻度表を作ることができ、しかもインターネットを通じてそれを容易に配布することができます。今回は、現代中国語の頻度表として http://lingua.mtsu.edu/chinese-computing/statistics/char/list.php?Which=MO を利用することにしました。

さて、この頻度表から必要な列を切り出し、

"use strict";
var dat = [
    ["的", 7922684],
    ["一", 3050722],
    ["是", 2615490],
    ["不", 2237915],
    ["了", 2128528],
    ["在", 2009181],
    ["人", 1867999],
    ["有", 1782004],
    ["我", 1690048],
    ["他", 1595761],
    ["这", 1552042],
    ["个", 1199580],
    ["们", 1169853],
    ["中", 1104541],
    ["来", 1079469],
    ["上", 1069575],
    ["大", 1054064],
    ["为", 1039036],
    ["和", 1010465],
...

あとはそこから毎回文字を乱択して 500 文字ぐらい生成。あ、句読点も少々混ぜておいて、句読点どうしが連続したら片方を削り、末尾には句点を打っておきましょう。

const dat2: ReadonlyArray<[string, number]> = dat.map(([a,b]) => [a,b+1]);
const total = dat2.map(([,b]) => b).reduce((a,b) => a+b);

function getChar(){

    const punct = Math.random();
    if (punct < 9 / 364) { return "。";}
    else if (punct < 22 / 364) { return ",";}

    let rand = Math.floor(total * Math.random());
    for (let [char, num] of dat2) {
        if (rand < num) { return char; }
        rand -= num;
    }
}

const text = Array.from({length: 500}, getChar).join("").replace(/([。,])[。,]/, "$1")+"。";
document.write(`<span lang="zh">${text}</span>`);

こうやって生成された文字列を Google 翻訳備え付けの音声合成に投げ込み、知り合いの中国語母語話者(@nkowne63)に聞かせてみたところ、以下の感想をいただけました。

「ストップ!」「やっぱりストップしたくなる」「目を閉じてやると脳内リソースを無限に食い潰されたが、目を開けてやっても脳内リソースが食い潰される」「中国語なのに文法がめちゃくちゃなんですよね、まず。文じゃないんですよね。でもやっぱり中国語なので。単語の羅列よりは意味があるように聞こえるけど、適切な頻度で機能語が出てくるので、5分の1ぐらい『あっ今名詞だ』となり、名詞はそんなにダメージがないが、それ以外ではダメージがある」

「4回目。既に慣れてきた。文っぽく聞こえてきたが、あ、でも再生成しないといけないな。こんな乱雑な中でもパターンを学習しちゃうんだな」

「頭痛くなってきた」「頭の普段使わないところを使わされてる」「例外処理が走ってますね」「むしろこっちの方が、多分言語を学習する前の僕らにとっての他言語ってこう聞こえていたのではというか、そんな感じの」「言語処理はされるがことごとく失敗し例外処理が起動しているなっていう」「これ多分例外処理と言うよりは、子供の頃使ってたけど一度獲得すると二度と使わない、言語学習の部分を刺激されている気がします。頭の刺激にはなりますね、それは確実に言えます。例外処理。でも、なんか、人間のプリミティブなところ、脳を生で使っている感覚と言えばいいのか、うまく言葉にできないけど」「言葉で分節される前の世界ってこんな感じだったのかなぁ」「これちょっと中国の大学で大学生にやってたりしないのかな。誰かがやってそうだけど。中国って人多いから」

「間違いなく言えるのは、普段使わないところを使っている。言語学習の獲得回路を働かされているのかなとかは、想像ですね。例外処理ってのは間違ってない気がする。これ頭に負荷かかるな。つまりこれ敵対的ノイズなんですよね」
「朝起きたときにこれ聞いたら目が覚めそうだな。二度寝したときに悪夢見そうな気もするけど」

https://twitter.com/nkowne63/status/1359877891463368704
https://twitter.com/nkowne63/status/1359912389005611008
https://twitter.com/nkowne63/status/1359913512810676226

なんということでしょう。聖典を作ろうと思ったら、呪われた敵対的ノイズが生成されてしまったではありませんか。

機械翻訳

このままではいけないので、ここで導入されるのが、ディープラーニングってやつを活用した最先端の機械翻訳技術です。2021年現在、「最近の機械翻訳は、誤訳をしていても自然な文章を出力してしまうから、誤訳したことに気づきにくい」とよく言われますが、この性質を援用することで、意味をなさない敵対的ノイズからでも自然な文章を生成してやることができるというわけです。先ほどのスクリプトで500文字ずつ敵対的ノイズを生成し、それを翻訳機に突っ込むことで、どんどんと日本語文が生成されていきます。気が済むまでこれを繰り返し、どんどん Word やら Google Docs やらに貼り付けていきましょう。

校訂

さて、このようにして生まれた文章ですが、このままでは聖典ではありません。そもそも、教祖たるものが自分の聖典に目を通したことがない、というのでは噴飯物です。つまり、これらの文章は、教祖が目を通すことで初めて聖典となるのです。

ということで、この神聖なる校訂作業では、ちゃんと一字一句目を通し、日本語として気になるところがあればどんどんそれを編集・修正していくのがよいでしょう。教祖はあなたなのですから、気に入らない文言などあれば削ればいいですし、文意が取りにくいところには適宜加筆をして、信徒たる読者にとって読みやすい文章へと改めていくべきでしょう。

以下、聖典改良作業において役立ついくつかの指針を示しておきます。

  • 定期的に半角スペースが紛れ込む。基本的に全削除すればよい。一括置換するのではなく、査読中に毎回手動で消すようにすると、ドキュメント全体を半角スペースで検索するだけで「昨日はここまで作業終わらせたんだったな」と確認できて便利だった。

  • 長すぎる文はどんどん切る。特に、「です、」「ます、」などは「です。」「ます。」に一括置換して文を切る。

  • 助詞「は」は日本語において従属節に出てこない。「私が住んでいる都市」は名詞句となるが、「私は住んでいる都市」は名詞句として振る舞うことができず、「私は住んでいる都市から一旦離れた。」のように、「は」を受けるための文末の述語が必要になる。したがって、「は」が出てきたら、わりとさっさと文を終わらせるか、「が」などに入れ替えるかなどの工夫をした方がよい。

  • 「の」が連続しすぎているなら、間に言葉を補うとよい。一般に、長すぎる名詞句には適宜動詞を補ってやると、だいぶ読みやすくなる。

- 唯一のことは、国の品質の毛布の郊外の公共の外観の細かい問題を生成することであり、
+ 唯一気になることは、国が定める品質の毛布が、郊外において公共の外観に細かい問題を生み出すということであり、
- 否定の黄色の程度の生活の漸進的なオンにして、
+ 否定を表す色である黄色を想起させるほどに、生活が漸進的にオンになっていって、
  • 「~には」と来たら、その後の動詞の後に「~する必要があるのだが」「~しておいた方がいいのだが」などと補うとグッと自然になる。

  • 「~のために~するために」などが出てきたら、「~のために、そして~するために」などと接続詞を補ったり、文を切ってしまったり、片方の「ために」を削ったりするなどの手法で解決するとよい。

- 長い時間のために立っているためにプットロールのチケットを脱がなかった時のための現実的な外観は、
+ 長い時間立っていたせいでプットロールのチケットを脱がなかった。そんな時のための現実的な外観は、
- 一人以上の良識の生まれ変わりを再び見るために仕事に顔を作るために。
+ 一人以上の良識の生まれ変わりを再び見るため、仕事に顔を作っている。
  • 唐突に英字が出てきて違和感があったら、中国語IMEなどを使って漢字化してもよいし、カタカナにしてもよい。

  • あまりに短い段落は、章のタイトルにしてしまう。

実際にやってみた

以上の手法で私が産みだした聖典がこちらです。ページ数にして84枚、文字数にして12万8000文字ありますので、お時間がございましたら是非全文を眺めてみてください。

それではみなさん、よい教祖生活をお送りください!

頑張れよ、葵ちゃん。
――終章「男 vs. 警備員」第二十段落の第十文

Discussion

ログインするとコメントできます