ライトノベル風日本人名ジェネレーター 2/3


入力



自宅にあったライトノベルをひっぱり出してきて、片っ端から登場人物の苗字・名前の「読み」を入力していった。
ただし、全入力はあまりに面倒臭かったので、適当に進めて700人を超えたあたりで打ち切った。


<補足>
・良い語感は時代によって変化するかもしれないので、ここ5年以内に出版されたライトノベルに限定。
・小此木エリス、九条院ラミア、藤堂リリシアなど、ハーフっぽいキャラも入力。
・ネイト・イェレミーアス、リタ・フォレスタル・エドワース、強欲王など、明らかに外人・人外な名前は除外。
神庭(かんば) 幸宏、神庭(かんば) 希春、神庭(かんば) 小夏、神庭(かんば) 千秋、神庭(かんば) 美冬など、作意的に苗字が同じ集団の苗字は、全部あわせて1つとして扱う。
・神庭 幸宏(ゆきひろ)、吉田 行祐(ゆきひろ)、渡辺 雪比呂(ゆきひろ)など、名前に関しても同様。
・自宅にあるラノベの偏りは、ジェネレーターの性能にはそれほど影響を及ぼさないだろうと思われる。
・というか、自宅に異世界ファンタジーが多すぎて辟易した。使えねぇ。

前処理



(a)
入力データから、「苗字が『あ』で始まる確率」「苗字が『い』で始まる確率」「苗字が『う』で始まる確率」…………を計算する。
同様に、「苗字が『あ』で終わる確率」「苗字が『い』で終わる確率」「苗字が『う』で始まる確率」…………を計算する。
同様に、「苗字の末尾以外に『あ』が現れたとき、次の音が『あ』である条件付確率」「苗字の末尾以外に『あ』が現れたとき、次の音が『い』である条件付確率」…………を計算する。『い』が現れたとき、『う』が現れたとき、…………に関しても同じように計算する。


(b)
名前についても、苗字と同じことを計算する。


(c)
「キャラ名が苗字X音、名前Y音である確率」を、各(X,Y)について計算する。


<補足>
・ここで言う「確率」とは、たとえば入力が「みるく」「みくる」「くるみ」の3人だったら、『み』で始まる確率は2/3、末尾以外に『く』が現れたとき次が『る』である確率は1、程度の意味である。
・「文字」ではなく「音」なので、『あ』『ぞ』『ん』『ぱ』などと『しゃ』『りゅ』『きょ』などはどちらも一音である。

本処理



(A)
前処理の(c)で求めた確率にそって、今から生成するキャラ名の苗字・名前の音数を決める。


(B)
 (1) 前処理の(a)で求めた確率にそって、「苗字の始めの1音」を決める。
 (2) 「1音目」→「2音目」→「3音目」→…………と、求めた条件付確率にしたがって音の列を生成していく。
 (3) 前処理の(a)で求めた確率にそって、「苗字の終わりの1音」を決める。
 (4) (2)で求めた終わりの1音と、(3)で求めた終わりの1音が一致していたら終了。そうでなければ(1)に戻る。


(C)
名前についても苗字と同じようにする。


(D)
(B)と(C)を出力して終了。好きなだけ(A)に戻って繰りかえす。


<補足>
・加えて今回は、(B)や(C)で、各音の生成時に確率1/8でランダムな音が生じるようにした。いわゆるひとつの突然変異。