前回は、既存のパラレル・コーパスを加工することに舵を切ったときのお話をしました。今回は、既存のパラレル・コーパスをどのように加工したかというお話です。
揺らぎを減らしたい
前回お話したように、さすがに300万センテンスもあると、おかしなセンテンスがそれなりに紛れていることがわかったので、それらを修正してみることにしました。とはいえ、膨大な量のセンテンスを相手に、何から始めればいいのか、見当も付きません。そこで、センテンスを分類してみることにしました。
当時、気になっていたことの1つに、ピリオドと句点や括弧の有無が、英語と日本語のコーパスで1対1の関係になっていなくて、規則性がなく、揺らぎがある状態だということでした。例えば、以下のような対のパラレル・コーパスが存在するということです。
例1 | [英] 文末はピリオドなし |
---|---|
[日] 文末は句点あり | |
例2 | [英] 文末はピリオドあり |
[日] 文末は句点なし | |
例3 | [英] (対応する文字や記号なし) |
[日] 「」もしくは『』が出現 |
適切な分類になるかどうかはわからなかったのですが、英語と日本語のコーパスの文末の文字を見てパラレル・コーパスを分類したところ、10種類程度になりました。これくらいに分類できると、それぞれの傾向が浮かび上がってきたので、主に以下のような処理をしました。
- センテンスごと "" や () や「」で囲まれているものは、中の文章だけを残す。
- 先頭が " や ( や「で始まっているのに、文末まで対になる " や ) や」がない場合は、中の文章だけを残す。逆も同様。
- 文章と思われるセンテンスは、文末が . や。等で終わるようにする。
- 文章ではないと思われるセンテンスは、文末から . や。等を取り除く。
この処理を行なったことで、パラレル・コーパスがある程度標準化され、更なる加工がしやすくなりました。
ピリオドと句点がたくさん
既存のパラレル・コーパスの中に、英語は1文なのに日本語は2文に分けているものや、その逆のものがあることは把握していました。これは、お客様の翻訳ルールに従った結果、このようになっているので仕方ないのですが、それとは別に、偶然に1センテンスが複数の文章になっているものを発見してしまいました。例えば、こんな感じです。
例1 | Double DNS Lookup - Server does a double DNS lookup for every client so that it can include the client's DNS name in the access log. After the server looks up the DNS name, it maps the name to an IP address to validate that it is correct. |
---|---|
ダブルDNS参照: アクセス・ログにクライアントのDNS名を表示できるよう、すべてのクライアントに対してダブルDNS参照を実行します。サーバーは、DNS名を参照した後でその名前をIPアドレスにマップし、名前が正しいことを確認します。 | |
例2 | Use this field to specify how long to use analyzed summary data. After this period, folders will be re-analyzed when you run ASM. The default for this is 30 days. |
このフィールドを使用して、分析済のサマリー・データの使用期間を指定します。この周期の経過後、ASMを実行するとフォルダは再分析されます。デフォルト値は30日です。 |
試しにピリオドと句点の数(3個以上)が一致しているセンテンスを数えてみたところ、なんと42,051センテンスもありました。今まで、こんな状態のセンテンスを使っていたとは。。
これらのセンテンスを1文ずつに分離して、1センテンスが1つの文章という状態にしたいのですが、分離後の文章が正しく英語と日本語で対になっていないといけないので、分離対象のセンテンスは慎重に選ぶ必要があります。だからと言って、1文ずつ目視で確認していては処理しきれないので、ピリオドや句点の前後の言葉を手がかりに、機械的に分離してもほぼ問題ないと思われる対象を絞り込んでいきました。こうやって選んだ33,152センテンスを対象に機械的に分離を行ない、71,407センテンスを自動生成しました。
しかし、これらは氷山の一角。この後も都合の悪いセンテンスを何パターンか発見し、パラレル・コーパスの修正が続いたのでした。
次回は評価結果に潜むヒントです。
[注] この回顧録は、かつて勤めていた会社で書いた連載を復元したもので、某I社の現在の状況を反映している訳ではありません。