9/3に、将棋の解説文を自動生成するサイト「将棋山脈」を公開しました。
棋譜を読み込ませると以下のような感じで、
- 一手ごとの評価値(形勢を表す数値)の推移
- 将棋AIが示す候補手
- 解説文(毎回ではない)
を出してくれます。
例えばこんな感じです。(2017年9月3日 NHK杯 森内俊之 九段 対 藤井聡太 四段)
相手の動かした駒を取ったらどうなるかの解説。
次にどういう手が厳しいか。
この例では、△3六歩打 とされると厳しいので、「 敵の打ちたいところに打て」で、先手が▲3六歩打 とせよ、と言っています。
後手優勢のようです。
詰めろ、もしくは、放っておくと受けなしになって詰む場合に、それを解説文で表示します。
解説文のサンプルは、トップページの下の方と、一覧ページにあります。
使い方
トップページで、kif形式のファイルをアップロード、もしくは、テキストを貼り付けて送信すると、解説文生成処理が始まります。
「kif形式」というのは、将棋ソフトが棋譜を出力する際の、よくあるファイル形式の一つで、対応しているソフトは多いと思います。
また、プロの公式戦のページでダウンロードできることもあるほか、過去の棋譜を閲覧できる将棋DB2でも、「棋譜の書き出し」の項目に「KIF形式」があります。
例えば、将棋対局アプリのぴよ将棋では、対局後に
メニュー→棋譜(KIF)をクリップボードにコピー
で、KIF形式で出力したテキストをコピーできるので、これを将棋山脈のトップページで貼り付けて送信すればOKです。
どういう仕組み?
裏で、将棋AIのやねうら王を使っており、評価関数にelmoを使っています。
2017年の世界コンピュータ将棋選手権で優勝した最強のAIですが、一手あたり500ミリ秒しか処理時間を使わせていないので、評価値と候補手の算出がちょっといまいちな場合があります。
将棋山脈で将棋AIに興味を持たれた方は、こちらのページを参考に、ご自身のPCで動かしてみることをお勧めします。
上記の将棋AIに、候補手と評価値を出してもらってそれを表示するのが基本ですが、それだけだと解説と呼ぶには味気ないので、
- 相手の動かした駒を単に「同歩」や「同銀」と取った場合の評価値とその後の候補手
- 相手の手の後、放っておくとどういう厳しい攻めがあるか
- 相手の手が詰めろかどうか(もしくは必至に追い込まれる筋があるか)
を調べて、表示するようにしています。
※一手当たりの処理時間は、サーバの混み具合を見て今後調整する可能性があります
どうしてこのサイトを作ろうと思ったか
藤井四段が連勝記録に並んだというニュースを見て、中学生の時以来、18年ぶりに将棋への興味が再燃したのですが、その時に、今は「将棋連盟ライブ中継」というすごいアプリがあることを知りました。
プロ棋士の対局全てに、1手ごとに解説をつけていて、それをリアルタイムで観戦できるという、運営に相当な手間をかけているアプリです。
ここまでのクオリティは当然無理だとしても、自分の対戦にもそれっぽい解説をつけてくれるサービスがあったら面白いんじゃないかな、と思って作った次第です。
解説文の質については、もうちょっとがんばりたいところが色々あるので、そのうち改善していきたいと考えています。