テキスト含意認識システムRITE-SDK

RITEはテキスト間の含意(推論)などを認識するテキスト理解システムのためのベンチマークタスクで、国立情報学研究所が主催する第9回NTCIR評価ワークショップのタスクになっています。

RITEは、Recognizing Inference in TExtを表していますが、こちらの元となったRTEはRecognizing Textual Entailmentの頭字語です。そもそもentailmentは論理的帰結として必然的に成り立つ関係を指しますが、RTEやRITEタスクでは、必ずしも成り立つ訳ではなくても可能性の高い関係や、常識的に成り立つと見なせる関係などの推論的な内容を扱います。2つのテキストの一方から他方が言えるかどうかを判定するテストは、RTEの他にも、FraCaS test suiteAQUAINT KB Evalなどが計算言語学(形式意味論)の枠組みで提案されています。ちなみに、FraCaS test suiteを評価対象とした次の論文は、Colingのベストペーパーに輝いています:
Modeling semantic containment and exclusion in natural language inference,
Bill MacCartney and Christopher D. Manning, Coling-08, 2008.

日本語のデータセットとしては、京大の黒橋・河原研が公開しているTextual Entailment 評価データがあります。関連する日本語の言語資源は、RITEのリソースのページにまとまっています。

Textual Entailmentについては、書籍「Natural Language Processing with Python (邦題:入門 自然言語処理)」の第6章でも取り上げられています。そこでは、単語の重複度合いを素性とした分類問題として解く方法が紹介されています。

先頃公開されたRITE SDKは、Textual Entailmentシステムを構築するためのJavaフレームワークです。サンプルとして文字列レベルの重複度に応じて答えを求める方法が実装されていて、評価結果を表示する機能もあります。

RITE SDKのホームページでは、Eclipseを使った動作方法が説明されていますが、コマンドラインで動作させる場合は例えば次のようになります:

$ curl -O http://rite-sdk.googlecode.com/files/ritesdk-1.0.zip
$ tar zxf ritesdk-1.0.zip
$ mkdir -p ritesdk-1.0/projects/edu.cmu.lti.ritesdk.sample/data
$ cd ritesdk-1.0/projects/edu.cmu.lti.ritesdk.sample/data
$ curl -O http://aclia.lti.cs.cmu.edu/rite_resources/data/RITE1_JA_dev_bc.txt
$ curl -O http://aclia.lti.cs.cmu.edu/rite_resources/data/RITE1_JA_dev_mc.txt
$ cd ..
$ mkdir bin
$ javac -encoding UTF-8 -cp ../../lib/ritesdk-1.0.jar -d bin src/edu/cmu/lti/ritesdk/sample/*.java
$ cd ../..
$ java -Dfile.encoding=UTF-8 -cp projects/edu.cmu.lti.ritesdk.sample/bin:lib/ritesdk-1.0.jar:projects/edu.cmu.lti.ritesdk/lib/commons-cli-1.2.jar edu.cmu.lti.ritesdk.MainClass -i projects/edu.cmu.lti.ritesdk.sample/data/RITE1_JA_dev_bc.txt -t bc -s edu.cmu.lti.ritesdk.sample.CharOverlapBasedSystem