Edited at

【結果】平成の次の元号を、AIだけで決めさせる物語(@完結編)


前書き

2019年4月1日11:30、新元号が発表された。

新元号は「令和」とのこと。

その直前、フジテレビの特番にて、

本記事で作成したAIが選んだ元号が公開された。

さて、結果は・・・。


シリーズ記事一覧と、今までのサマリ

まだシリーズ一連の記事をご覧になっていない方は、

先に以下の記事を読んでいただいてから、

本記事をご覧いただくことを推奨します。


シリーズ記事一覧

初回の記事⇒

平成の次の元号を、AIだけで決めさせる物語

2回目の記事⇒

【続】平成の次の元号を、AIだけで決めさせる物語(@テレビ取材)

3回目の記事⇒

【続々】平成の次の元号を、AIだけで決めさせる物語(@直前スペシャル)


今までの内容サマリ

AI(機械学習モデル)で元号予想したよ。

「いい意味の漢字」を機械に理解させるためにChar2Vecを使ったよ。

Qiitaで公開したら、テレビ取材を受けることになったよ。

「出典」も含めてガチで当てがんばる、発表直前に放送するよ。

「俗用されていないこと」もGoogleやWikipediaなどで実装したよ。

VTRに入らない深い内容はQiitaで公開するよ。


予想方法の概要


  • 漢字の意味上の距離をベクトル化する機械学習モデルを作成(Char2Vec)

  • 過去元号の文字と「近い」文字(=いい意味)を候補漢字として設定

  • 日本古典/中国漢籍/落選元号から「出典」と言えそうな場所を全文検索

  • MTSH、画数、Wikipediaの俗用有無、常用/教育漢字など多数のフィルタ

  • 2文字のバランス=距離感や、漢字のいい意味度などから評価値を算出

  • Google検索の結果によって、俗用度合も再フィルタし、最終結果を出す

  • 【制約】数値設定/プログラム以外の、作者のキライな字を除く、ような操作は禁止


本投稿の内容



  • ①テレビをご覧になっていない方へ、結果を再度ご紹介


    • AIはどのような条件(出典)を与えられ、何を選んでいたのか?

    • それぞれの評価値と選定理由の詳細(テレビ放送分の詳細版)




  • ②「令和」を本作のAIで評価させると、どんな評価になるのか?


    • 「令」「和」の文字ごとの評価

    • 「令和」の全体としての評価値(2文字の「距離感」を含めた総評)

    • 「俗用度」についての考察




  • ③予想と現実の比較考察


    • 「漢字」をプログラムで扱う人には参考になるかも?




AIの予想した結果(テレビ放送の詳細版)


一位の発表と、テレビでの反応

本プログラムが出した結論は、

孝永

詩経の「子不匱,錫爾類」が出典である。

「孝 子(こうし) 匱(つき) 不(ず) 永(なが)く 爾(なんじ)に 類(るい)を 錫(たま)う」

→「こうしつきず ながくなんじにるいをたまう」とよむ。

その意味は、

「世継ぎが尽きることがなく 末永くあなたに一族の繁栄をもたらす」

要するに、

子孫繁栄という縁起のよい内容。

良い場所が出典になるかは少し運ゲーであったが、

偶然にもかなり良い出典になったと思う。

テレビ放送中では、以下の4予想が公開され、

視聴者投票が実施された。


  • 「宇拓」(by 金田一先生)

  • 「高光」(by 土屋先生)

  • 「寬安」(by フジテレビネット取材部)

  • 「孝永」(by AI)

視聴者投票の結果は、AIの圧勝

一位:「孝永」=72%

二位:「寬安」=11%

三位:「高光」= 9%

四位:「宇拓」= 8%

「AIにしては保守的だな」

「(視聴者のみんなは)今のまま(保守的な元号で)でいい、ということ」

と、金田一先生よりコメントをいただいていた。

保守的、との指摘はなかなか正しく、

過去のすべての元号を「平等に」扱って予想したため、

過去の元号に近しいものを出力した = とても(古い)元号っぽい、ため。

にしても、視聴者の方からここまで賛同をいただいたことは嬉しい限り。

後で考察を追記するが、実は今回完全に的中出来なかった要因として、

この「平等」であったこと、は大きな比重を占める。

一方で、そのためにいかにも「っぽい」ものになって、

視聴者からの納得感が高かった、という傾向はあると思う。


2位以下含めた候補の発表

テレビ上でも一瞬表示されていた、

AIの出した孝永以外の候補について、

評価値や出典を含めて掲載する。

元号候補
総合評価値
AI評価値
俗用度
出典
備考

安天
38.96
4.81
9.1
日中

郎久
36.65
4.36
7.0

常用

吉天
35.99
4.73
11.3
日中
常用

文竹
33.08
4.07
7.6
日中

幸皇
32.87
4.09
8.0

孝永
41.86
5.29
11.0

康享
40.45
4.74
7.0

常用

仁長
39.71
4.91
9.4
中落

仁元
38.31
5.06
12.3

喜氏
37.40
4.40
6.6

兼天
35.06
4.21
7.0
日中
常用

恭天
34.41
4.25
8.1
日中
常用

喜永
33.27
5.06
17.3

康天
31.30
4.79
16.6

功永
30.50
4.15
11.0

康承
29.38
4.22
12.8

文承
28.99
3.81
9.1

応久
23.38
3.56
8.4

補欠


表の見方


  • 総合評価値 = AI評価値×10 - 俗用度

  • AI評価値 = 文字の良さ+距離感の良さ、を基準に複雑な計算

  • 俗用度 = Google検索結果より求めた俗用度

  • 出典


    • 日:日本書紀、古事記、万葉集

    • 中:四書五経(大学,中庸,論語,孟子,易経,書経,詩経,礼記,春秋)、史記

    • 落:過去の落選元号



※詳細は過去記事をご参照


裏話として、個人的には「常用」は最初から除外しようと思っていたが、

「常用」を入れないと同じような文字の組み合わせが増えてしまい、

テレビ的に「見栄え」が悪いので、

「常用」については個数を限定して、

上位のものだけ最終候補として入れることになった。

「常用」が無いとも言い切れなかったため。


出典としてどの文章を使うか?

常用を入れる入れない、画数はいくつ以下?などの

「設定値」はどうしても決めざるを得ない。

ただ、その状態においては、どの漢字/候補も平等に扱っている。

個人的には、孝永をはじめとして、

吉天、文竹、喜永、仁元、文承、恭天、

など、どれもそんなに悪くは無い気がしている。

(どれも古い表現という印象はある)

なお、AIによる他候補に対する評点としては、

「宇拓」はAI評価値が0.66(※孝永5.29)

「高光」は俗用度が高すぎ(54)&Wikipediaに存在、でNG

というところであった。


令和を本作のAIで評価

さて、いよいよ本題の、令和に対する評価値は?

令和 : WIKIタイトル後チェックNG

がーん。

憲法学者の「川岸令和」さん

がWikipediaに乗っており、

高名な方で、出版もされている。

また、他にも一般人で「令和」さんは複数いらっしゃる。

そのために「WIKIタイトル後チェック」

=WIKIに乗っているレベルの人名はNG、

のチェックではじかれてしまっていた。

では該当のチェックを外して評価を行うと、

令和:AI評価値 = 2.59 (※実質2.99@後述)

今回候補に挙げた最低値が3.56のため、

少し評価値としては高くはない。

(宇拓が0.66であった通り、低い値ではない)


俗用度についての考察

発表後の今となってはGoogle俗用度関数は動作出来ない。

しかし、直後にGoogleを見た時の印象からすると、

俗用度としても(人名は、地名などに比べればかなり加減はしていたが)

少し高め=俗用されている、と判断されそうな状況であった。

ただの人名であれば「令和の画像検索結果」はそこそこ上位に入る。

しかし、川岸令和さんの著作/出版物が先にHITしていたため、

「令和の画像検索結果」は低順位となる。

元号候補が新単語で俗用されていない ⇒ 画像検索が上位になる傾向、

という値を使っていたために、新単語とみなされなかったということ。

これは「有名人レベルの人名は除外したい」という意図で

誤っていたわけではなく、正しく評価していたと言える。

個人名の一致レベルでは多少しょうがないが、

著作があるレベルの有名人と重複するのは

避けなくてよかったのだろうか?

当然、普通の個人との一致も何件も報告されている。

(負け惜しみ)


反省点①

評価値が低めであった原因の一つとして、

まず私の読み間違え的な設定ミスがあった。

「明治大正昭和平成」の文字が入っている場合、

ペナルティ(今回は0.4)を設定していたため、

その設定が無い場合は2.99、約「」であり、

これは候補には至らないもののそこそこ高い値だ。

直近の元号と同じ漢字は避ける設定は余計だった。

今回のAIによる元号的中はできず、

正解の元号に対する評価も、

決して高くはなかったため、完敗である。が・・・。

もう少し詳細に確認すると、大変興味深いことが分かった。


単一の漢字ごとの評価値

本作のAIでは漢字1文字ごとが「良い漢字かどうか」の評価値が

最終評価に最も大きく影響する仕組みであり、

各文字ごとにどうったのか、考察をしてみる。

」は意外な文字であったとの評判だ。

AIによる文字への評価値は0.31

これは、教育漢字1006字の中で、314位だ。

平均値よりは上であるものの「ふさわしい」レベルにはない。

」は、0.49 で71位。

自身が「お手本」でもあり、

お手本の中では低いもののまあ「ふさわしい」レベル。

ご参考までに、他の漢字いくつかの評価結果と、

教育漢字全てのランキングを掲載する。


適当な一文字ごとの評価結果

永: 0.885977994167

天: 0.737857870747
仁: 0.839549368644
桜: 0.353807618816
善: 0.41546696606
悪: 0.111052437414
安: 0.692865630207
危: 0.310356468143
貧: 0.2459302001
富: 0.331105676499
勝: 0.188771693601
負: 0.113797467234
鼠: 0.0771632984204
猫: 0.148012992302
衣: 0.236350125043
食: 0.258570181343
住: 0.247701718093
令: 0.3063162064
和: 0.490555337934
宇: 0.290160216298
拓: 0.156864300019
平: 0.528437411631
成: 0.31741135288
昭: 0.384988257387
大: 0.537594822018
正: 0.701011684154
明: 0.636209015976
治: 0.547203264259


上位順に、教育漢字全てを並べた結果

永徳仁忠久孝清元天康正安坂喜松田幸竹明宝養延氏長三皇五文保宮豊政城晴臣八守老蔵倉孫治宗六郷誠承光大里后志雲賀戸納平太家夫敬飯尊恩矢寺七父弟谷和池村武銭中化陽貴健丸応余浅四木観君将梅建羽漢府帳野肥幕朝福祖春山書盛憲満典兄策統良副泉朗官願閣石任善早省万厚王堂民百妻直栄財湯門則倍義男不円刀年乱景川秋九若子源測昭鏡億末至改灯師翌領親根革館職興母十議礼衛反原博屋死立司対祭玉院居晩実神図林派就風古乳説従条旧河拝宣討役遠近医千枝辞後権墓桜法縮資構兆象友豆党森護功蚕代橋温税酒創論筆句均務総拡裁美糖増熟冊約看積児史仏定土支科質国富台弁備広高減病費幼育町波室勤酸字信畑焼額著的認借仲諸理完績内絵成左磁牛京印益北首歴期済生預推危地塩陛庁量示律令会庭街委同防客柱聖金絹去西命青岩菜工舎静伝都園東座計毛祝張助花案農経員真刻小二適修申度結算婦宿学茶口教純樹島講宇許世章往遊授芸草胃制圧断展暖南右訳確害解給率路整寄談折周前横星造管性臨勢肺旗謝争尺物息貯形銅市刷遺鳥公独頂自腸詩値努術批熱庫紀模効課牧置簡燃県層営雪料責径産上有足幹宅勇相季順無俵亡弓仮炭垂厳洗校極族在沿補貨鉱処次昔利針者冷食道潔黄笛等寸起部際新程数芽想染並主短訪軍穀誤細強郡時運貸下湖共混然築辺住寒童通氷妹巻証間禁貧評羊賛再重演士基姉火我素州見買閉節復知力関検身綿糸進宙像事察好低非銀帰消夏粉吸腹精鳴所今衣飼導体月協裏由拾価卵薬用区弱変達水調束点単罪働駅労容記箱休来習退荷臓白問障雨望局社商歌暑写面覧衆深名続毒賃班判業警才席球予読米一残紙因災干刊卒感除返片夢慣冬集具悲列密域少系全洋準劇式本赤飲麦浴多票動編開版馬失留割第停能落植指線製耕株終昨両兵俳験鉄異角漁急階映求愛女人誕複転紅油港引側視暗位速招電待方陸激帯外皿個署標布序航件皮答現険服己頭提笑穴楽届略半犬心盟状常限材例唱念降意岸規射逆緑要秘選号報気聞液織受旅識奮覚暮散担勝快初肉挙雑賞英易採器板夕眼格鋼交苦日泣包血海筋決店注固黒否題品語可告秒行船得損毎郵希丁潮活配言査昼券移灰顔照流勉故仕輪当敗便止各境夜手難徒忘連誌葉類脳械比供殺特設週分私訓段先貿参存背機午入姿過曜情接欠疑未砂表収考縦打取発出飛述蒸似使候虫困追声貝付窓棒差技録専競巣囲底作投央級団詞揮回欲破切軽試耳加空迷界救型群犯骨痛種画始持枚絶他曲脈奏態魚汽思向場泳以別色練果優暴呼合音捨属探輸乗戦負究悪歩机歯胸様最放目味傷必札隊操登話装鼻組係着敵走舌売車何研番送



興味深い結果:「令和」は「平成」と全く同じ傾向

平: 0.528437411631

成: 0.31741135288

二文字の距離=0.0353095354674

令: 0.3063162064

和: 0.490555337934

二文字の距離=0.102744130448

孝: 0.80602597523

永: 0.885977994167

二文字の距離=0.689883694307

「平成」は「成」の字が元号としては新字であった。

「令和」も「令」の字が元号としては新字。

「孝永」も「孝」の字が元号としては新字。

二文字の距離、は、前の記事で「平均0.3」が過去元号の平均値で、

それに近い方がより良い、としていた値だ。

「令和」の結果は、

新字の評価値も、旧字の評価値も、二文字の距離も、

全てが平成に酷似している。

この結果には大変驚いた。

二文字の距離感も、全体平均 = 0.3 ± 標準偏差 の範囲を満たし、

直近15個ほどの平均値=0.15にもかなり近い。

作成したAI(機械学習済みのchar2vecモデル)のモノサシは良かったのに、

私がそれをうまく設定して使うことができなかったということか。

「孝永」は、AIが見つけた新字。といいながら

「孝」はかなり過去元号のお手本に近いものとして

算出されており、AI評価値が高い。

また、二文字の距離も(全体的に過去元号は近似度が高めな値であり)

0.68というのは、かなり似ていて近い文字であることを示している。

今回の算出として、単純にどちらの文字ともに、

「過去元号のお手本に近いほど良い」という評価をしたため、

「孝永」が出てきており、

そのために視聴者からは「元号っぽい」と思われたと考えられる。

一方で「平成」の傾向を考えるとするならば、

一文字は高くて良いがもう一文字(新字相当)は、

0.3程度の普通よりちょっと上のゾーン(1000字中300位ほど)あたりから選ぶ、

というようなことをすれば、的中出来たのかもしれない。

つまり「いい意味度」をはかることはある程度成功したが、

元号を求める際には、やみくもに「いい意味」になるように組むのではなく、

「いい意味の旧字」と「意外な新字だけどそこまで悪い意味ではないやつ」を

組み合わせないといけなかった、のかもしれない。

古いものを学習させて、それを正としたAIだったため、

最近の元号の傾向=元号として新しい印象の文字を使う、

に全く追随できていなかったし、

「大化」と「平成」を同列に扱っていた点が敗因と言えそうだ。

(とはいえ、どういうロジックで「最近の傾向」を

 見ればよいのかは物凄く難しい。)


改めて、モデルの評価値、予想と現実の比較考察

改めて、上記のモデルの評価結果を眺めると、

超上位の漢字=「永徳仁忠久孝清元天康正安坂喜松田幸竹明宝養延」などは

なるほど、と思うピックアップになっているし、

似た属性での比較(安vs危、善vs悪、勝vs負、貧vs富)は

正しい結果、つまり良い意味の方が高い傾向になっている。

一方、「危」は0.31で、「成」や「令」と同レベル。

他にも、イマイチな文字が数字上高くなったりはしている。

これは「安」が高評価であることに引きずられ、

その対義語であるところの「危」も

高い評価値になっているためと思われる。

Word2VecやChar2Vecを扱う上で注意するべきポイントは、

「対義」というのは、実は文字のベクトル上では、

真逆ではなくむしろ「近い」ことを意味するという点だ。

真逆=完全に無関係に見えるもの。「安」vs「鼠」など。

対義語のベクトル空間上での扱いの考察は、以前下記に記載した。

よって、

「お手本の過去元号に近い」=「良い意味」まではOKとして、

超TOPは抽出できているとしても、

少し順位が下がると雑音的な要素が増えてくるという事態が生じている。

(上位の「安」に引っ張られて「危」がそれなりの値になったように)

この点を解決しないと、

「300位あたりの文字から拾えば良かった」と言っても

結果論でそう見えるだけで、実際の300位近辺は

「危」なども含まれていて、あまり良い結果が期待できない。

Qiitaでは、

1年後の自分が見て嬉しい記事を書く

が良記事の一つのベストプラクティスであるため、

25年後の再挑戦時の自分が見て嬉しいように、解決案を記載する


解決案

漢字のクラスタリングによって、

元号に使われるクラスタと、使われないクラスタを事前に振り分けておき、

各使われるクラスタ内での上位を拾う、という案だ。

例えばChar2Vecの結果をクラスタリングすると、

「東西南北」などが同じクラスタに入ったりすることは確認済み。

こうした似た漢字をグルーピングするのがクラスタリング。

今回の結果では、上位100位ほどに、以下が出現している。

城、倉、家、寺、など

孫、夫、父、弟、など

これらは、恐らく場所クラスタ、家系クラスタ、などに属するはず。

場所や家系は相対的に良い意味なのだろうが、

本来は元号としてはイマイチだろう。

クラスタ内に、過去元号で採用された文字がなければ

「使われないクラスタ」として、これらの文字を除外できる。

そうすれば1006字から真に使われる可能性のある文字に絞れる。

「安危」は同じクラスタに入ってしまうとして、

そのクラスタ内での上位の文字だけを拾えば、

「危」のように、良い方の意味に引っ張られたものも削除できる。

仮に、動物クラスタは、鶴、亀、竜などでOKだとしても、

鼠、馬、犬、などは下位で除外する、というような話。

イメージとしては、1次元で数値で比較してしまうと、

危 > 勝、になってしまうのだが、

以下のようにグルーピングして、各グループの上側だけ取るということ。

「安 > > 危(0.31)」>「勝(0.19) > > 負」

この考え方であれば、雑音的な文字は減らせ、

かつ「危」などのグループ内でザコい文字、も消去できそうだ。

実際にやる際には、クラスタリングの数や各種分類の設定など

かなりのチューニングを要するだろう。

もっとそもそもの問題点として、

折角char2vecのモデルを「60次元」で作っていたのに、

過去元号に似ているかどうかの値として、

良い意味or悪い意味、の「1次元」に射影して扱っていた点もある。

クラスタリングの話は、複数次元で見る必要があったの意味だ。

今回は、良いor悪い(元号に近いor近くない)の

1次元に全てを射影して評価していた。

本来は、各次元(属性)ごとに考慮して、

そもそも元号に使われないような「魚鮪鰯」などの魚属性は除外、とか、

各次元(属性)ごとの良悪の評価を行うとか、

そういったより複雑な評価が必要であったのだろう。

「令」(や「成」)は単純に「良い意味」を追求して出る文字ではないため、

いまどきの元号を求めるには、こういった複雑な工程が必要になる。

200年前の元号制定であれば、このAIがあれば

かなりいい線いっていたのかもしれない。

令和天皇(皇太子さま)が平成天皇(今上天皇)の

現在の年齢になるのは25年後、

25年後にまた挑戦してみる材料が出来た。


反省点②

では、「令」の字は今までの方法では全く見込みが無かったのか?

いや、落選候補元号に「令徳」があり、一度だけ出現する。

令徳 : 2文字目13画以上NG

がーん。

「徳」の字の画数で引っ掛かり落ちていた。

過去の平均値等を元に12画を上限として設定していたのだ。

画数のペナルティを外すと・・・

令徳:AI評価値 = 4.15

これは余裕で最終候補に残る高評価だ。

もしかしたら、13画まで合格ラインに設定していれば、

最終候補字の中には「令」もいたぜ!

っていうくらいのことは出来たようだ。


ご参考:他の元号候補に対する検証

本来は公開されないはずの、

令和以外の候補について

「万保」「万和」「広至」「久化」「英弘」

とネット上ではウワサされている。

これらについてはどれくらいの評価値だろうか?

あまり深くは述べないが軽く記載しておく。

(一部読み方などで万=マン=Mと誤読されていた、

 などのチェックは外して評価。1000字程度であれば、

 冒頭の読み方は、手動で設定しておくのもアリだった?)

万保:AI評価値 = 3.59237004099

万: 0.412605058736

保: 0.583840449043

万和 : WIKIタイトル前チェックNG

(右翼の会社名?がwikiで出てくるのでありえない。捨て案?)

広至:AI評価値 = 2.79708493969

広: 0.326555400899

至: 0.38284076335

久化:AI評価値 = 4.16381808331

久: 0.807551234777

化: 0.478564698777

英弘 : WIKIタイトル前チェックNG

(会社名や、有名人名などでNG、ありえない。捨て案?)

 なお、「弘」は常用漢字だが、

 お手本漢字であり、AI評価値は驚愕の0.84

どれも、評価はかなり高めであった。

「古い元号っぽさ」を数値化するという意味では

AI評価値はそこそこ信頼出来る気がしてしまう。

古さの順では、個人的には以下の感覚。

孝永 > 久化 > 万保 > 広至 ≒ 令和 > 宇拓


反省点③

当初のプログラムの進め方上、

最初に「使う対象の漢字」を絞って、

さらに各候補にフィルタを連続でかけていき、対象を絞り込む、

という方法を採用していた。

この方法では最終結果も少なくなりすぎたし、

実は良かったという候補を

敗者復活的に獲得することが難しくなってしまっていた。

フィルタ>フィルタで絞っていくよりも、

マシンリソースを気にせずに全探索系して、

各候補に「落選理由」を付与するような進め方にして、

1理由で落選しても他で良いものはOKとする、

ようなやり方も良かった気がする。

(「令徳」が画数だけで落ちていたり、「広至」も、

 0.3程度の字から出ている。など。)

 


あとがき

もしかしたら・・・

という気持ちもありながら、的中はやはり難しかった。

候補漢字50文字を当てたとしても約2450分の1。

外すこと自体は仕方がなかったかもしれない。

応援していただいたみなさま、投票していただいたみなさま、

フジテレビのみなさまへ改めて感謝。

万葉集までは入手済みであったため、

平成と完全に一致した傾向ということを踏まえると、

過去元号に近いように当てにいくのではなく、

平成にひたすら近いもの、という手法でも

結果を出力していたら?

未来に何か影響を与える可能性はあった。

なお、次回からは新番組、

令和の次の元号を、AIだけで決めさせる物語

が始まる予定。

次回は恐らく国書(=古事記or日本書記or万葉集)になり、

かつ、平成、令和、の流れを踏襲すると考えると、

かなり犯人像は絞られている。

平成の名探偵は無事に令和の名探偵になれるのだろうか?

こうご期待である。

もしかしたら、次回は

選定者側にも当然AIが加わっている

という良きライバル登場、探偵が犯人だった?

みたいな時代になるのかもしれない。

今回の件で「AIも元号選定に加われることを世間に示せた」

ということがその理由の一つになっていれば、

この遊びプロジェクトの意義も大きいことになる。

超超長い戦いにお付き合いいただいたみなさまへ、

改めて感謝の意を示し、

平成最後の漢字分散表現との戦いに幕を下ろすことにする。

ご愛読ありがとうございました!!

平成31年4月7日(初版投稿)