前回は、パラレル・コーパスからおかしなセンテンスを取り除くことで品質が向上するか検証した際のお話をしました。今回は、Mecabのユーザー辞書を使うことで品質が向上するか検証した際のお話です。
動詞がダメなら名詞だ
第6回で書いた「日本語の分かち書きの単位って、これでいいの?」という疑問が、どうしても頭に残ったままで、すっきりとしない状態が続いていました。第7回から第8回にかけて、動詞の活用部分をくっつけて試した際は、残念ながら思ったような効果を得られませんでしたが、名詞の類が必要以上に細かく分かれている必要はないはずです。(と、思うんですよね。。)
カタカナ | オークション | オーク ション |
---|---|---|
ダイヤルイン | ダイヤ ルイン | |
モーダル | モー ダル | |
ラボラトリ | ラボラ トリ | |
名詞 + 性 | 安全性 | 安全 性 |
互換性 | 互換 性 | |
生産性 | 生産 性 | |
利便性 | 利便 性 | |
名詞 + 化 | グループ化 | グループ 化 |
モジュール化 | モジュール 化 | |
暗号化 | 暗号 化 | |
正規化 | 正規 化 | |
再 + 名詞 | 再コンパイル | 再 コンパイル |
再テスト | 再 テスト | |
再確認 | 再 確認 | |
再送信 | 再 送信 |
いずれも、英語だと1ワードなのに日本語だと2ワードになってしまっています。しかも、カタカナに関しては、明らかにおかしなところで分離されています。まさに、百害あって一利なしとは、このことじゃないでしょうか。
この症状に関しては、日本語コーパスの分かち書きで使っているMecabのユーザー辞書に用語を登録することで、分割されなくなることが第7回の時点でわかっていました。ただ、10万センテンスの中から対象とすべき用語を抽出するのは、それなりに労力がかかります。しかも、その効果に見合った結果を得られるのかは、未知数です。
だからこそ、10万センテンスしかないうちに確認しておこうと思い、BLEUスコアを使った検証の、2番目のテーマに選びました。
またかよ
比較する条件は、以下のとおりです。
改善前 | Mecabの辞書はIPA辞書のみで、ユーザー辞書は使わない。(103,835センテンス) |
---|---|
改善後 | Mecabの辞書はIPA辞書に加えて、429語を登録したユーザー辞書も使う。(103,877センテンス) |
主な共通の条件は、以下のとおりです。
- パラレル・コーパスは、第9回で指摘したおかしなセンテンスも含む。
- デコード対象のセンテンスは、文章の類を手持ちのパラレル・コーパスから抽出。つまり、再現性の確認。
- ユーザー辞書の有無以外、分かち書きは素の状態から手を加えない。(明らかにおかしな分かち書きもそのまま。)
- デコード時のパラメータのチューニングはしない。(当時はチューニング方法がわからなかったため。)
そして、肝心なデコード結果のBLEUスコアですが、またもや期待外れ。。
改善前 | 0.6575 |
---|---|
改善後 | 0.6551 (-0.4%) |
これは完全に誤差の範囲内ですよね。ただ、実は厳密には正確な比較ができていないんです。ユーザー辞書の有無で、両者の分かち書きの単位が変わってしまったため、BLEUスコアを出すときのお手本の訳文のワード数が異なっているのです。
第8回でBLEUスコアの概念を書きましたが、お手本の訳文と比較して、どれくらいワードの並びが一致しているかという割合を数値化したものです。なので、変化を比較したい場合に、比較基準であるお手本の訳文は変えないというのが鉄則だと思うのですが、分かち書きの単位が変わると、結果的にお手本の訳文を変えたことになってしまいます。何かいい補正方法があればいいのですが、未だに思い付きません。
ともかく、この結果を踏まえ、当時はこんな結論を出しました。
- 各センテンスを比較すると、ほとんど一致するものがない(diffツールの結果の目視で1割以下)。差の大小はあれ、細かな部分で違いが出る。
- 結局、どちらがよいとは言い切れない。BLEUスコアを絶対視すれば「改善前」がよいのかもしれないが、各センテンスを比較すると、「改善前」がよい場合もあれば、「改善後」がよい場合もある。
- 従って、現時点では時間をかけてユーザー辞書を整備する必要性は薄いと思う。
- 唯一言えることは、ユーザー辞書を用いて分かち書きの単位を変えるだけで、ほぼ全てのセンテンスに何らかの影響を及ぼすということである。
もっと劇的に変化が現れるような改善策はないものか、苦悩の日々が続きます。
次回は押してダメなら引いてみろです。
[注] この回顧録は、かつて勤めていた会社で書いた連載を復元したもので、某I社の現在の状況を反映している訳ではありません。