Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

評価方法

このページでは、Akaza のかな漢字変換精度の評価方法を説明する。

評価コーパス

評価には anthy-unicode プロジェクトに含まれるコーパスを利用している。このコーパスは public domain で公開されており、calctrans ディレクトリから取得できる。

anthy-unicode プロジェクトおよびコーパスの作成者に感謝する。このコーパスのおかげで、Akaza の変換精度を定量的に評価し、改善の効果を客観的に測定できている。

コーパスのフォーマット

各行は | で文節を区切った読みと正解表記のペアで構成される:

|読み1|読み2|...|読みN| |正解1|正解2|...|正解N|

例:

|uim-fepの|あたらしい|ばーじょん| |uim-fepの|新しい|バージョン|

# で始まる行はコメント、空行は無視される。

使用するファイル

ファイル行数(データ行)内容
corpus.0.txt0デバッグ用(データなし)
corpus.1.txt1,743一般的な変換テスト
corpus.2.txt23追加テスト
corpus.3.txt9,252大規模テスト
corpus.4.txt10誤変換の例示(評価には使用しない
corpus.5.txt47追加テスト

corpus.4.txt~! で誤変換パターンを記録したファイルであり、正解データではないため評価から除外している。

評価に使用するのは corpus.0, 1, 2, 3, 5 の 5 ファイルで、合計約 11,065 件のテストケースとなる。

評価指標

参考文献

評価方法は以下の論文に記載の手法を採用している:

日本語かな漢字変換における識別モデルの適用とその考察 ANLP 2011 C4-6

指標の定義

指標説明
GoodTop-1(最上位候補)がコーパスの正解と完全一致した件数
Top-kTop-1 では不正解だが、上位 k 個の候補のいずれかに正解が含まれる件数
Bad上位 k 個のどの候補にも正解が含まれない件数
再現率LCS(最長共通部分列)ベースの文字レベル再現率

再現率の計算

再現率は、変換結果とコーパスの正解の間の**最長共通部分列(LCS)**を用いて計算する:

再現率 = 100 × Σ LCS(正解, 変換結果) / Σ |変換結果|
  • LCS(正解, 変換結果): 正解文字列と変換結果の最長共通部分列の文字数
  • |変換結果|: 変換結果の文字数
  • 全テストケースについて分子・分母をそれぞれ合計してから割合を求める

完全一致であれば再現率 100% となる。部分的な一致(例: 一部の文節だけ正解)も定量的に評価できる点が利点である。

前処理

評価時に以下の前処理を行う:

  • 文節区切りの除去: | を除去して平文に変換
  • 全角数字の正規化: を半角 09 に変換

評価の実行

akaza-data evaluate コマンドで評価を実行する。akaza-default-model リポジトリ内で以下のように使用する:

akaza-data evaluate \
  --corpus anthy-corpus/corpus.0.txt \
  --corpus anthy-corpus/corpus.1.txt \
  --corpus anthy-corpus/corpus.2.txt \
  --corpus anthy-corpus/corpus.3.txt \
  --corpus anthy-corpus/corpus.5.txt \
  --eucjp-dict skk-dev-dict/SKK-JISYO.L \
  --utf8-dict data/SKK-JISYO.akaza \
  --model-dir data/ -vv

評価はマルチスレッドで並列実行される。

リランキング重みの評価

リランキング重みを変更して評価する場合は、--bigram-weight--unknown-bigram-weight--length-weight--skip-bigram-weight オプションを指定する:

akaza-data evaluate \
  --corpus ... \
  --length-weight 2.5 \
  ...

実装

実装: akaza-data/src/subcmd/evaluate.rs