参加者の国籍割合は、PDFファイルで公開されているプログラム冊子から情報を引き出してきた。スクリプトを使って参加者データをCSVファイルに落とし、Excelで読み込んでグラフを作成している。
スクリプトはPerlを使って1時間くらいでサクっと書いたものなので、コードは汚いしバグもあって恥ずかしいことこの上ないのだが、誰か使いたい人がいるかもしれないので置いておく(お手持ちのプラットフォーム用の処理系を用意して自由にご利用ください)。プログラム冊子のPDFファイルを、Adobe Readerを使ってテキストファイルに変換、$input_file = "<ファイル名>"でそのテキストファイル名を指定すると、$output_file = "<ファイル名>"のcsvファイルが出力される。
元データに表記の揺れがあり、完全な状態にはできないが、そこは何卒、手修正でお願いします…。全てを手作業で抽出するよりは楽なはず…。もしくは、どなたかデバッグしてくれると嬉しいなあ(ボソ)。
$input_file = "Londex-londex2014-web.txt"; $temp_file1 = "_temp1.txt"; $temp_file2 = "_temp2.txt"; $output_file = "output.csv"; @item = ("Name", "Nationality", "Date of Birth", "Music institution \(s\) attended", "Names of Principle Teachers", "Award", "Awards", "Professional Positions", "Profession Positions", "Professional Position", "The First Eliminatory Round", "The Second Eliminatory Round", "Final Round with orchestra", "List 1", "List 2" ); open(IN, $input_file); open(OUT, "> $temp_file1"); while() { if ( $_ =~ /^\d{2}\s\n|^\s\n/ ) { } else { chomp; print OUT $_; } } close(IN); close(OUT); open(IN, $temp_file1); open(OUT, "> $temp_file2"); while( ) { foreach $i (@item) { $_ =~ s/$i:/\n$i:/g; } print OUT $_; } close(IN); close(OUT); open(IN, $temp_file2); open(OUT, "> $output_file"); while( ) { chomp; if ( $_ =~ /Name: / ) { print OUT "\n\"$_\","; } else { print OUT "\"$_\","; } } close(IN); close(OUT); unlink ($temp_file1); unlink ($temp_file2);
0 件のコメント:
コメントを投稿