• [まろぐ]
  • [簡単で正しいHTMLの書き方]
  • [Moses奮闘記]
[まろぐ] [簡単で正しいHTMLの書き方] [Moses奮闘記]

第20回 品詞情報を活かせるか (2010年12月)

前回は、分散処理によって処理時間を減らせるかというお話をしました。今回は、デコード時に品詞情報も活用することで品質が向上するかというお話です。

始まりはエラーから

前々回と前回にお話した2つの課題を調査している間、品質向上のための調査は同僚のFさんに任せていました。品詞情報を活かせるかというテーマを追いかけてもらったのですが、きっかけは実に意外なところから始まっていました。

あるファイルをデコードしたとき、見たこともないエラーが出て、処理が途中で止まってしまったんです。

[ERROR] Malformed input at
  Expected input to have words composed of 1 factor(s) (form FAC1|FAC2|...)
  but instead received input with 2 factor(s).
Aborted

最初は意味がまったくわかりませんでした。調べていくうちに、デコード対象に|という文字が含まれているのが原因だということがわかりました。どうやら、factored modelというもので使われるべき文字のようです。

で、factored modelって何だ??

factored modelとは

それが、Mosesのマニュアルには、factored modelが何なのかという直球の説明がなく、factored modelを使ってデコードするための方法しか書かれていません。なので、そこから逆算した筆者なりの理解で説明します。

分かち書きした後の各センテンスは、単語がブランクで区切られた状態で並んでいます。その各単語に、それ以外の情報をくっつけた状態のものを、どうもfactored modelと呼んでいるようなのです。で、各単語に情報をくっつけるときに、単語と付加情報の区切り文字として|を使っているというわけです。

英語での例
unfactored modelHe opened the window .
factored modelHe|PRP opened|VBD the|DT window|NN .|.
日本語での例
unfactored model彼 が 窓 を 開け た 。
factored model彼|名詞 が|助詞 窓|名詞 を|助詞 開け|動詞 た|助動詞 。|句点

そんなことして何が嬉しいのって話ですが、普通の状態だと、単語の並びの統計情報しかデコードに使えませんが、例えば、前述の例のように品詞を付加情報としてくっつけると、品詞の並びの統計情報も加味してデコードすることができ、それが品質向上につながるのではないかと期待できるわけです。

パラレル・コーパスのセンテンス数以外のところで、何か差別化できることはないかという思いもあり、品詞情報の活用について、同僚のFさんに調べてもらうことにしました。

大苦戦

まずは、品詞を付けるツールが必要です。英語に関しては、Mosesのマニュアルで紹介されていたMXPOSTを使いました。日本語に関しては、分かち書きで使っているMecabの出力形式をカスタマイズして対応しました。

さて、品詞情報をどう活かすかですが、とりあえず稼動確認という意味で、Mosesのマニュアルで紹介されていた例に倣い、訳語である日本語だけ品詞情報を使うことにしました。何とか動きましたが、予想外の結果が。

なんと、BLEUスコアが89%も下がってしまったのです。。品詞情報を使わないときの、1/10ですよ。なんだ、それ。というか、結果を聞いて、何が起こっているのか、よく理解できませんでした。原因を調べていくと、某I社で使っているコーパスに含まれる用語が、すべてMecabの辞書に入っているわけではないので、未知語になってしまって品詞を付けられないものが多いということがわかりました。

正しい品詞が付かないことには、品詞情報として意味を成しません。しかし、完全に未知語をなくすには辞書のメンテナンスが必須になってしまいます。これにはかなりの労力が必要になりそうなので、Mecabの標準機能を使って、未知語に対して推測した品詞を付けるようにしてみました。それでも、品詞情報を付けない場合より、8%程度低いBLEUスコアになってしまいました。

さらに、品詞情報を付けてしまった結果、すべてのセンテンスの文字数が2倍程度になってしまい、翻訳モデルの作成時の制限に引っかかって、強制的に短縮されるようになってしまいました。これだとおかしなセンテンスになってしまうので、制限に引っかかる長さのセンテンスを取り除くと、センテンス数が30%も減ってしまいました。そこで、付加する品詞情報を1桁の数字で表すことにしましたが、結局、BLEUスコアが逆転することはありませんでした。

品詞情報は、正しく活用できれば、品質向上につながる可能性はあります。しかし、労力に対する効果を考えると、少なくとも某I社で実験した範囲では、いい結果が出ませんでした。品質向上に関しては、他にも案があったので、品詞情報の活用に関しては、ここで打ち切ることにしました。

次回はカンニングは効果ありです。


[注] この回顧録は、かつて勤めていた会社で書いた連載を復元したもので、某I社の現在の状況を反映している訳ではありません。

投稿情報: 19:49 | 個別ページ

|

検索

フォトアルバム

コンテンツ

  • [まろぐ]
  • [簡単で正しいHTMLの書き方]
  • [Moses奮闘記]

出会い編

  • 第1回 Moses? (2010年3月)
  • 第2回 夜明け前の出来事 (2010年4月頃)
  • 第3回 機械翻訳で行くぞ (2010年8月頃)
  • 第4回 異動 (2010年9月頃)

手探り編

  • 第5回 Linuxの壁 (2010年10月)
  • 第6回 最初の疑問 (2010年11月)
  • 第7回 日本語との格闘 (2010年11月)
  • 第8回 BLEUスコア導入 (2010年11月)
  • 第9回 おかしなセンテンスを取り除くと (2010年11月)
  • 第10回 ユーザー辞書を使うと (2010年11月)
  • 第11回 押してダメなら引いてみろ (2010年11月)
  • 第12回 英ママは善か悪か (2010年11月)
  • 第13回 言語モデルは偉大なり (2010年11月)
  • 第14回 ある程度の数は必要 (2010年11月)
  • 第15回 チューニングは必須 (2010年12月)
  • 第16回 最初のブレイクスルー (2010年12月)

独自の工夫編

  • 第17回 ついに100万センテンスへ (2010年12月)
  • 第18回 メモリ不足を解消せよ (2010年12月)
  • 第19回 処理速度を改善せよ (2010年12月)
  • 第20回 品詞情報を活かせるか (2010年12月)
  • 第21回 カンニングは効果あり (2010年12月)
  • 第22回 前進と挫折で始まった2011年 (2011年1月)
  • 第23回 某I社独自のシステム化 (2011年2月頃)
  • 第24回 再び品質改善へ (2011年3月)
  • 第25回 長文対策の発見 (2011年3月)
  • 第26回 都合のいいコーパス (2011年3月)
  • 第27回 パラレル・コーパスの加工 (2011年4月)
  • 第28回 評価結果に潜むヒント (2011年5月)
  • 第29回 現在も続く改良 (2011年6月以降)

著作権

  • © 1995-2021, "Toda, Masalu", All Rights Reserved.
Powered by Typepad
  • Moses奮闘記 •
  • Powered by Typepad
上