floodgateで入手できる棋譜はアーカイブされてて非常に利用しやすいです。日付ごと、対局者ごとにまとめられているのがありますが、リンクを1個1個クリックしていくのがあまりにめんどいので、ひとまず2012年、2011年分の1年区切りのアーカイブを落としてみたら、1年の対局数が10万くらいあってlsコマンドがもの凄い遅い。だいたいは標準出力に吐いてるせいだろうし棋譜の学習にはそこまで差し障らないかと思うけど、1ディレクトリに10万もファイルがあるのは個人的に気持ち悪いなと思い、スクリプト使って月別に一括分類したいなーって考えた時の話。
棋譜を学習するにもまずは棋譜データ、あとそれを読み込むためのプログラムがないと始まらない。
棋譜の対象としては
手元のボナンザを使って棋譜を作るのは自動化できるならアリかもしれないけど、あいにくそういう方法は知らないし、自分の対局はサンプルが少ないし棋力的にもちょっと・・・なので、上2つが(当然ながら)本線。
棋譜でーたべーすのアーカイブとかあればいいけど、なさげ。また利用規約的な話もちゃんとチェックしてないので使用できるかどうかはまだ怪しい。可能だったとしても自分でダウンロードスクリプトかなんかを書かなきゃならないのが(そう難しくないとはいえ)めんどくさい。書くとしたらお手軽そうなのはPython + urllib2 + BeautifulSoupでしょうか。電王戦にインスパイアされた!コンピュータ将棋作りたい!でも棋譜収集めんどくさい!って人は結構いるだろうだし、コード書けば一定の需要はありそう。また向こうのサーバに負荷かけないように適当にインターバル掛けたり、とかはしとくべき。まぁ、floodgateの棋譜が使えればそれで十分でしょうけどね。
棋譜フォーマットまわりについてはGPSのソースをあたればいいかな?と思ってましたが、C++の書き方(templeteとか)イマイチ知らない+ファイル多すぎて迷子+ソース見ること自体不慣れ、ってことで萎えそうです。Bonanzaにその辺のコードがあるのならそっちをあたりたい。(機械学習を諦めれば済むけど、)思考に関係ない部分はできれば手出ししたくないなぁ。