Getting Started

本チャレンジについて

対話破綻検出チャレンジの参加者は,人間と対話システムの対話データが与えられ,そこからシステムが文脈的に不適切な応答をした箇所を検出する(対話破綻検出)アルゴリズムを開発します.当サイトでは現在,対話破綻情報がアノテーションされている対話データ(json形式)が公開されており,このデータを学習用・開発用に使用することができます.チャレンジの参加者には,対話破綻情報が付与されていない対話データが後日配布され,そのデータの破綻検出結果を用いて開発したアルゴリズムの性能を競います.

当サイトでは,ベースラインとなる破綻検出プログラム,および破綻検出結果を評価するための評価スクリプトを公開しています.

以下ではそれぞれの使い方について解説します.

対話データと検出する対話破綻について

当サイトで配布している対話データには,1つの対話システムの発話に対し,複数のアノテータが付与した複数の対話破綻情報が付与されています.対話破綻情報はO(破綻ではない),T(破綻とは言い切れないが,違和感を感じる),X(破綻)の3種類となっています.例えば,公開しているデータのうち,init100の対話データでは,1つの発話に対し24名のアノテータがアノテーションを行っていますので,ある発話に対し,3名がO,6名がT,15名がXを付与したといった情報が発話ごとにアノテーションされています.チャレンジの参加者は各発話に対して多数を占めるアノテーションは何かを当てる(先の例では,Xが正解となる)と同時に,3種類のそれぞれの割合(先の例では[0.125, 0.250, 0.625]が正解となる)を当てるタスクに取り組むことになります.

実行環境

ベースラインプログラム,および評価スクリプトの実行には,以下がインストールされている必要があります.

プログラムの実行はコマンドプロンプト(Windows) / ターミナル(Mac, Linux)上で行います.それぞれのプログラムが正しくインストールされているかは以下のコマンドを実行することで確認できます.

$java -version

$python -V

実行した結果,バージョン情報が表示されない場合は,インストールされていないか,もしくはパスが通っていない可能性があります.

ベースラインプログラムの実行方法

本プログラムは,対話中の各発話に含まれる単語(Bag-of-Words)を素性とし,Conditional Random Fields(CRF)により対話の破綻を検出します.

実行方法は以下の通りです.

baseline/

    | sampleTagger.jar

    | eval.py

   ├ train/

    |    | 1407219916log.json

    |    | 1407287164log.json

    |    | ・・・

    |   └1408219169log.json

   └ test/

         | 1408261480log.json

         | 1408278293log.json

         | ・・・

        └11409463385log.json

$java -jar SampleTagger.jar -l ./train/ -p ./test/ -o ./out/ -t 0.5

評価スクリプトの実行方法

本スクリプトは,破綻検出アルゴリズムが出力した破綻検出結果と,その正解データである対話データに対するアノテーションを照合することにより,アルゴリズムの性能評価を行います.

実行方法は以下の通りです.

$python eval.py -p ./test/ -o ./out/ -t 0.5

######### Data Stats #########

File Num :              50

System Utterance Num :  550

O Label Num :           460

T Label Num :           33

X Label Num :           57

######### Results #########

Accuracy :              0.818182 (450/550)

Precision (X) :         0.348837 (15/43)

Recall    (X) :         0.263158 (15/57)

F-measure (X) :         0.300000

Precision (T+X) :       0.733333 (33/45)

Recall    (T+X) :       0.170984 (33/193)

F-measure (T+X) :       0.277311

JS divergence (O,T,X) :         0.268677

JS divergence (O,T+X) :         0.248749

JS divergence (O+T,X) :         0.124489

Mean squared error (O,T,X) :    0.129114

Mean squared error (O,T+X) :    0.223539

Mean squared error (O+T,X) :    0.094419

###########################