機械学習周りのプログラミング中心。 イベント情報
ポケモンバトルAI本電子書籍通販中

【ジュウオウ】ポケモン名っぽい駅名 part03終 Character-level Recurrent Neural Networkによるポケモン名らしさの定量化【一発ネタ】

前回学習させた、ポケモン名を表現するCharacter-level RNNを用いて、ポケモン名っぽい駅名を探します。

select766.hatenablog.com

前回の実験ではCharacter-level RNNを用いてポケモン名っぽい文字列を生成しました。このモデルは、与えられた文字列の自然さ(ポケモン名っぽさ)を判定することにも使えます。 前回の例を再掲すると、モデルは文字列を受け取って次の文字の確率を出力するというものでした。例えばf(サ) => ン=40%, イ=30%, ...f(サン) => ド=60%, ダ=30%,...というような入出力になります。確率が高いほど自然、すなわちポケモン名っぽいということになります。「サンド」の自然さを計算するには次のようにします。f() => ア=2%, イ=1%, ..., サ=2%, ..., ン=0%のように1文字目にも確率があります。f()における「サ」の確率(2%)、f(サ)における「ン」の確率(40%)、f(サン)における「ド」の確率(60%)を掛け合わせた0.02×0.40×0.60=0.0048が「サンド」の出現確率であり、この値が高いほど自然であると考えます*1。確率は常に1以下なので、文字列が長くなると必ず出現確率が下がってしまいます。そのため自然さの値は確率の対数を文字列の長さで割った値を用いました。

上記のアルゴリズムに対して駅名(読み仮名)を与えて、自然さの順に並べることでポケモン名っぽい駅名が見つかるはずです。

実験結果を示します。自然さの符号は反転していて、小さいほど自然であることを示します。なお、ポケモン名には「ヅ」が全く含まれていなかったため、この文字を含む駅(真鶴(マナヅル)等)については判定できませんでした。

上位50駅は以下のようになりました。(同じ読みの別の駅は2段に分けています)

駅名 読み仮名 自然さ 所在地 路線
十王 ジュウオウ 1.38 茨城県 JR東日本常磐線
関目 セキメ 1.40 大阪府 京阪電気鉄道京阪本線
竜王 リュウオウ 1.51 山梨県 JR東日本中央本線
十三 ジュウソウ 1.76 大阪府 阪急電鉄神戸本線
咲花 サキハナ 1.83 新潟県 JR東日本磐越西線
モリ 1.98 北海道 JR北海道函館本線
モリ 1.98 大阪府 水間鉄道水間線
中田 チュウデン 2.00 徳島県 JR四国牟岐線
毘沙門 ビシャモン 2.03 青森県 津軽鉄道津軽鉄道線
田丸 タマル 2.04 三重県 JR東海参宮線
花園 ハナゾノ 2.10 京都府 JR西日本山陰本線
花園 ハナゾノ 2.10 香川県 高松琴平電気鉄道長尾線
郡中 グンチュウ 2.11 愛媛県 伊予鉄道郡中線
吉里吉里 キリキリ 2.12 岩手県 三陸鉄道リアス線
五郎丸 ゴロウマル 2.14 福岡県 西日本鉄道甘木線
花泉 ハナイズミ 2.16 岩手県 JR東日本東北本線
知立 リュウ 2.20 愛知県 名古屋鉄道名古屋本線
鶴丸 ツルマル 2.21 鹿児島県 JR九州吉都線
加太 カブト 2.23 三重県 JR西日本関西本線
カブト 2.23 福島県 阿武隈急行線
山隈 ヤマグマ 2.24 福岡県 甘木鉄道甘木線
薬院 ヤクイン 2.24 福岡県 西日本鉄道天神大牟田線
丸亀 マルガメ 2.25 香川県 JR四国予讃線
丸森 マルモリ 2.25 宮城県 阿武隈急行線
亀甲 カメノコウ 2.26 岡山県 JR西日本津山線
みのり台 ミノリダイ 2.26 千葉県 新京成電鉄新京成線
山東 サンドウ 2.29 和歌山県 和歌山電鐵貴志川線
御宿 オンジュク 2.30 千葉県 JR東日本外房線
大安 ダイアン 2.32 三重県 三岐鉄道三岐線
宝殿 ホウデン 2.32 兵庫県 JR西日本山陽本線
玉来 タマライ 2.33 大分県 JR九州豊肥本線
桐生 リュウ 2.34 群馬県 JR東日本両毛線
六甲 ロッコ 2.34 兵庫県 阪急電鉄神戸本線
平城 ヘイジョウ 2.34 奈良県 近畿日本鉄道京都線
梅林 バイリン 2.35 広島県 JR西日本可部線
伊集院 イジュウイン 2.35 鹿児島県 JR九州鹿児島本線
倶知安 クッチャン 2.36 北海道 JR北海道函館本線
雫石 シズクイシ 2.37 岩手県 JR東日本田沢湖線
崎守 キモリ 2.38 北海道 JR北海道室蘭本線
比布 ピップ 2.40 北海道 JR北海道宗谷本線
大道 ダイドウ 2.44 山口県 JR西日本山陽本線
三日市 ミッカイチ 2.44 三重県 近畿日本鉄道鈴鹿線
人丸 ヒトマル 2.45 山口県 JR西日本山陰本線
海王丸 カイオウマル 2.45 富山県 万葉線新湊港線
宿院 シュクイン 2.48 大阪府 阪堺電気軌道阪堺線
堀切 ホリキリ 2.49 東京都 東武鉄道伊勢崎線
やぐま台 ヤグマダイ 2.50 愛知県 豊橋鉄道渥美線
蔵宿 ゾウシュク 2.50 佐賀県 松浦鉄道西九州線
ヒメ 2.52 岐阜県 JR東海太多線
金光 コンコウ 2.52 岡山県 JR西日本山陽本線
大釈迦 ダイシャカ 2.52 青森県 JR東日本奥羽本線
積志 セキシ 2.52 静岡県 遠州鉄道鉄道線
醍醐 ダイゴ 2.54 京都府 京都市営地下鉄東西線
醍醐 ダイゴ 2.54 秋田県 JR東日本奥羽本線

「ジュウオウ」(十王)が最もポケモン名っぽいという結果です。いてもおかしくない名前に感じられます。次点のセキメ(関目)ですが、「セキ」が含まれる実在のポケモン名は「セキタンザン」のみ、「キメ」は「ユキメノコ」のみで、そんなにポケモンっぽさを感じません。個人的にしっくりきたのは「ジュウソウ(十三)」「ツルマル(鶴丸)」「クッチャン(倶知安)」あたりでしょうか。「~ュウ」や「~マル」という終わり方がポケモンっぽさの一端にも見えます。駅名というくくりの中では一定の妥当性があるランキングに見えます。一方、ポケモン名には「-」(伸ばし棒)がよく用いられる一方で駅名にはほぼ登場しない(京コンピュータ前駅など、わずかに存在)ので、伸ばし棒をポケモン名らしさとしてとらえると駅名はポケモンらしさを欠いている面があるかもしれません。「カイリュー」ではなく「カイリュウ」という表記に変換して学習すれば少しは違うかもしれません。

ちなみに、東京都には駅が多いはずなのにほとんど上位には入っていないことがわかります。一番上で43位の「ホリキリ」(堀切)です。偶然なのか、地域ごとの駅名のつけ方に偏りがあるのかはわかりませんが。東京から一番行きにくそうなのは鶴丸駅でしょうか。宮崎空港経由で7時間かかります。

下位20駅も示しておきます。

駅名 読み仮名 自然さ
長者ヶ浜潮騒はまなす公園前 チョウジャガハマシオサイハマナスコウエンマエ 34.10
南阿蘇水の生まれる里白水高原 ミナミアソミズノウマレルサトハクスイコウゲン 34.04
東京ディズニーランド・ステーション トウキョウディズニーランドステーション 28.21
東京ディズニーシー・ステーション トウキョウディズニーシーステーション 25.13
西線9条旭山公園通 ニシセンクジョウアサヒヤマコウエンドオリ 23.75
馬出九大病院前 マイダシキュウダイビョウインマエ 22.63
やながわ希望の森公園 ヤナガワキボウノモリコウエンマエ 22.23
射水市新湊庁舎前 イミズシシンミナトチョウシャマエ 21.22
上越国際スキー場 ジョウエツコクサイスキージョウマエ 21.20
羽田空港国際線ターミナル ハネダクウコウコクサイセンターミナル 21.18
出雲科学館パークタウン前 イズモカガクカンパークタウンマ 21.06
羽田空港国内線ターミナル ハネダクウコウコクナイセンターミナル 20.21
修大附属鈴峯前 シュウダイフゾクスズガミネマエ 20.08
北九州貨物ターミナル キタキュウシュウカモツターミナル 19.87
JA広島病院前 ジェイエーヒロシマビョウインマエ 19.82
急患医療センター前 キュウカンイリョウセンターマエ 19.75
松江イングリッシュガーデン前 マツエイングリッシュガーデンマエ 19.34
尼崎センタープール前 アマガサキセンタープールマエ 18.94
阿蘇下田城ふれあい温泉 アソシモダジョウフレアイオンセン 18.58
高崎商科大学前 タカサキショウカダイガクマエ 18.30

単に長い駅名が出てくるだけであまり意味がありません。6文字以下の駅に絞って表示します。

駅名 読み仮名 自然さ
清瀬 キヨセ 8.93
下川辺 モカワベ 8.74
早稲田 ワセダ 8.70
羽床 ハユカ 8.50
日生 ヒナセ 8.48
水無瀬 ミナセ 8.43
広瀬川 ヒロセガワラ 8.40
下川沿 モカワゾイ 8.38
遊佐 ユザ 8.25
検見川 ケミガワ 8.24
瀬戸石 セトイシ 8.21
打出 ウチデ 8.20
南千歳 ミナミチトセ 8.20
名寄 ナヨロ 8.16
湯江 ユエ 8.14
布施 フセ 8.14
庭瀬 ニワセ 8.13
瀬上 セノウエ 8.10
小千谷 オヂヤ 8.08
三溝 サミゾ 8.07

分かりやすい傾向として、「セ」で終わる駅が多いです。調べてみると、「セ」で終わるポケモンは存在せず、また途中に現れるポケモンも8種類しかいませんでした。「瀬」は頻繁に駅名に現れる一方でポケモンっぽくない、ということが言えるのではないでしょうか。ちなみに、清瀬、早稲田、東大前は東京都の駅です。

くだらない思い付きでしたが、ポケモン名っぽさをCharacter-level RNNで表現し、これを用いて駅名のランキングを作ることができました。

jupyter notebookおよび学習したモデルを公開しています。

https://github.com/select766/pokemon-name-char-rnn

*1:モデルを学習する際には、実在のポケモン名においてこの確率が大きくなるようにパラメータを調整します