BioCreative Evaluation library使い方
BioCreativeの出力を自動で評価するツールが配布されています。正しい出力形式の確認にも使えるので活用しましょう。
BioCreative IV Track2 CHEMDNER CEMのみで確認しました。
当環境は以下の通り
- macOS High Sierra 10.13.6
- Python 2.7 (by pyenv)
- fish
インストール
ツールはコマンドとしてインストールされます。
まず以下のページからBioCreative Evaluation Library – v3.2 (as zip)をダウンロードして展開します。
ディレクトリの内容物はこんな感じのファイル群。
README.txt読めば大抵のことは書いてあります。
Python 2.5-2.7対応とのことなので、pyenvなりでPythonのバージョンを切り替えます。
ディレクトリ内に移動して以下のコマンドでユーザのディレクトリにコマンドがインストールされます。
python setup.py install --user
-hオプションでヘルプを確認できます。
bc-evaluate -h
実際に使ってみる
BioCreative Track2 CHEMDNER CEMで試してみます。
以下のリンクからサンプルファイルをダウンロードできます。展開。
こんな感じ。
ここで触るの3つのファイル。
- chemdner_sample_cem_gold_standard.txt: ゴールドスタンダード(答え)
- chemdner_cem_prediction_1.txt: 予測サンプル
- chemdner_cem_prediction_1_EVAL.txt: サンプル評価の出力
chemdner_cem_prediction_1.txtの中身を見ます。
各行に論文のID、オフセット、文書内での出現順位、確信度がタブ区切りです。
6780324 A:104:107 1 0.5
6780324 A:1136:1147 2 0.5
6780324 A:1497:1500 3 0.5
6780324 A:162:167 4 0.5
6780324 A:17:21 5 0.5
6780324 A:319:330 6 0.5…
chemdner_cem_prediction_1.txt
詳しいフォーマットはReadmeに書いてあります。
In short you have to provide a tab separated file with:
Readme.txt
1- Article identifier (PMID)
2- Offset string consisting in a triplet joined by the ‘:’ character. You have to provide
the text type (T: Title, A:Abstract), the start offset and the end offset.
3- The rank of the chemical entity returned for this document
4- A confidence score
あとは、bc-evaluateコマンドを使って出力ファイル、スタンダードファイルの順に渡せばオッケー。
bc-evaluate chemdner_cem_prediction_1.txt
chemdner_sample_cem_gold_standard.txt
出力はこんな感じ。
=================================================
Evaluation result for 'chemdner_cem_prediction_1'
Evaluated documents: 29
Evaluated results: 528
Hits TP: 226 FP: 302 FN: 334
Macro-averaged results
StdDev precs.: 0.18317 recall: 0.21462 F-scr.: 0.17466
Macro precs.: 0.39447 recall: 0.41683
Macro F-scr.: 0.38878 Avrg P: 0.17810
Macro FAP-s.: 0.24429
Micro-averaged results
Micro precs.: 0.42803 recall: 0.40357
Micro F-scr.: 0.41544 Avrg P: 0.18295
Micro FAP-s.: 0.25403
便利。自分で評価プログラム作らなくて済んで助かりました。
以下のQ&Aにいくつかのエラーに対して回答されているので、詰まった時はご参考に。