文責: @ynupc(Twitter)
はじめに
情報処理学会の会誌「情報処理」2017年7月号Vol.58 No.7 通巻628号の小特集『「ロボットは東大に入れるか」という企て』の中の記事「7. 世界史:東大型 論述問題と語句記述問題への挑戦」p.611-612にも掲載されている 東大入試の二次試験世界史科目の第一問に自動解答するシステム(FelisCatus Zero-multilingual)の動かし方について解説します。 動かし方ではなく処理についても興味がある方は、小特集の記事には処理についての概要が書かれているので、そちらをご覧になってください。
システムの処理で使用するデータが配布不可能な為、取得不可能な人は代替物を作成する必要がありますが、 データを取得・作成せずに動かすことができるTrialがシステムの公開と共に用意されています。 Trialでは、サンプルとして用意されている論述問題の解答処理の中で非配布データが必要な処理が終わった中間状態から残りの処理を試すことができます。 今回はインストールからTrialを動かすまでを解説します。
サンプル問題と模範解答
サンプル問題として、次のディレクトリの下にあるファイルが用意されています。
https://github.com/ktr-skmt/FelisCatusZero-multilingual/tree/master/src/main/resources/qa_corpus
問題・解答のペアがanswer_sectionタグごとに区切られています。 answer_setタグの下に模範解答が含まれていますがこれらは著作権の都合上ダミーです。answer_setタグの下を除いた箇所が問題文です。
環境
FelisCatus Zero-multilingualは、macOS SierraとWindows 10 Pro上で動作確認済みですが、今回の解説ではmacOS Sierraのみを対象とします。
事前にインストールが必要なソフトウェア・データ:
- Oracle Java SE Development Kit 8
- プログラミング言語Scala 2.12.1
- ビルドツールSimple Build Tool 0.13.15
- 形態素解析器MeCab 0.996
- MeCab用辞書IPADic mecab-ipadic-2.7.0-20070801
- MeCab用辞書UniDic unidic-mecab 2.1.2
- 検索エンジンIndri 5.11(Trialでは不要)
- 世界史教科書データ(国際的ワークショップNTCIR-13 QA Lab-3に参加し覚書を提出し審査が通ると取得可能、Trialでは不要)
- 世界史用語集データ(非配布、Trialでは不要)
MeCabのインストール方法
http://taku910.github.io/mecab/#download からmecab-0.996.tar.gzをダウンロードし、次のコマンドを実行します。
tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
./configure --with-charset=utf8 --enable-utf8-only
make
make check
sudo make install
http://taku910.github.io/mecab/#download からmecab-ipadic-2.7.0-20070801.tar.gzをダウンロードし、次のコマンドを実行します。
tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
https://ja.osdn.net/projects/unidic/releases/ からunidic-mecab-2.1.2_bin.zipをダウンロードし、次のコマンドを実行します。
unzip unidic-mecab-2.1.2_bin.zip
mv unidic-mecab-2.1.2_bin /usr/local/lib/mecab/dic/unidic
UniDicのdicrcファイルを編集します。dicrcファイルを次のように開きます。
sudo vi /usr/local/lib/mecab/dic/unidic/dicrc
output-format-typeの行の先頭にセミコロン「;」を挿入して、コメントアウトします。
これを・・・
output-format-type = unidic
こう ↓
;output-format-type = unidic
FelisCatus Zero-multilingual
ここでは、FelisCatus Zero-multilingualのインストール方法、Trialの実行方法、出力について解説します。
インストール方法
Gitをインストールしてあれば、次のコマンドを実行してインストールします。
git clone git@github.com:ktr-skmt/FelisCatusZero-multilingual.git
Gitをインストールしていなければ、Gitをインストール後に上記のコマンドを実行するか、ダウンロード用URLをウェブブラウザで開いてZIPファイルをダウンロードし、解凍します。
unzip master.zip
Trialの実行方法
Gitでクローンしたファイル(または、ダウンロードし解凍したファイル)のルートディレクトリ(build.sbtが置かれているディレクトリ)上で次のコマンドを実行します。
bash trial.sh
出力
次のページ(Run.ipynb)にTrialを実行した際とほぼ同等の、実行中の出力例や最終出力の例があります。ただし、評価結果の数値は、模範解答がダミーである為、完全にでたらめです。 標準出力では、次の「Essay:」から始まる行にシステムの出力結果の論述解答が表示されています。
[info] >> Essay Generator Processing
[info] >> Japanese Essay Generator Processing
[info] Dataset:
[info] * A.xml
[info] Question:
[info] - K792W10_【1】
[info] System Answer
[info] Writer: Baseline
[info] Essay: また、ヒンドゥー教徒とイスラーム教徒の融和をはかるため、・・・
まとめ
- サンプル問題に対して、Trialとして途中の処理からの実行をmacOS Sierra上で試した。
参考資料
- 情報処理学会の会誌「情報処理」2017年7月号Vol.58 No.7 通巻628号の小特集『「ロボットは東大に入れるか」という企て』の中の記事「7. 世界史:東大型 論述問題と語句記述問題への挑戦」p.611-612
- FelisCatus Zero-multilingual (https://github.com/ktr-skmt/FelisCatusZero-multilingual)