学習データ
学習にはrecords.csaというcsa形式のデータが必要です。これを準備します。
ボナンザはプロ棋譜3万+将棋クラブ3万(24万局のデータは6000円くらいで売っている模様)
のデータを学習させたらしいけど、手元にないので、2chkifu.csaというもので学習させています。
江戸時代からのプロ棋譜が5万局くらい入っている。
ただし、2chkifu.csaをボナンザに入れてもうまく読み込めなかったので
以下の適当なコードで変換しました。
2chkifu.csaは1局が1行・差手が6文字ずつならんでいるので、それを切り出して
recoards.csaに保存する。このコードではとりあえず、4万局切り出します。
#include <stdio.h> #include <stdlib.h> void main() { FILE *fp = fopen("./2chkifu.csa", "r"); if(fp) { FILE *fp_o = fopen("./records.csa", "w"); char buf[10000]; char pm[] = {'+','-'}; int i, n, l, p; for(i = 0;i < 40000;i++) { fgets(buf, 10000, fp); fgets(buf, 10000, fp); l = strlen(buf) - 6; if(i>0) fprintf(fp_o, "/\n"); fprintf(fp_o, "PI\n+\n"); p = 0; for(n = 0;n < l;n += 6) { fprintf(fp_o, "%c%c%c%c%c%c%c\n", pm[p], buf[n + 0], buf[n + 1], buf[n + 2], buf[n + 3], buf[n + 4], buf[n + 5]); p = 1 - p; } fprintf(fp_o, "%%TORYO\n"); } fclose(fp); fclose(fp_o); } }