LoginSignup
3
1

More than 5 years have passed since last update.

Perlを使って新元号を予想する

Last updated at Posted at 2019-03-10

Perlを使って新元号を予想する

新元号発表まで残りわずか、新元号は何になるのか漠然と考えたりしていました。
明治(16)、大正(8)、昭和(17)、平成(11)と最近の元号は画数が少ない傾向がありそうと着目。
また、平成の「成」以外の漢字は過去に使われた元号の漢字に含まれている。
ということで、画数20未満で、過去に使われた漢字を洗い出すプログラムを書くことにしました。

過去に使われた元号のデータ

PerlはCPANという、モジュールリポジトリがあります。metacpanから、「Japanese Era」で検索しDateTime::Calendar::Japanese::Eraというモジュールを見つけました。このモジュールには日本の過去の元号が含まれ、registeredをいう関数で取得することができます。

漢字の画数を求める方法

MJ文字情報APIがIPAから公開されていました。漢字コードを指定してRESTAPIを投げると、JSON形式で漢字情報を取得することができます。その中に画数の情報が含まれます。

順列を求める

過去に使われた元号の漢字を重複を除いたのち、2文字の漢字の順列組み合わせを求める必要があります。Algorithm::Permuteというモジュールを使用しました。

Perlの醍醐味

CPANモジュールを組み合わせるだけで、簡単に予想することができました。元号のデータも自分で用意することなくコーディング出来るとは、思いませんでした。

予想結果

拙いコードと抽出結果もコミットしてあります。dokechin/gengo

先頭文字の読みも考慮

明治、大正、昭和、平成の頭文字であるマミムメモ、タチツテト、サシスセソ、ハヒフヘホを候補から外してみました。1445パターンまで減らせました。

一般名詞等を除去

形態素解析のText::MeCabを用いて、一般名詞などとして使われている物を除くように変更しました。1406パターンまで減らせました。

3
1
10

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1